Nothing to see here, move along meow
0

Configure Feed

Select the types of activity you want to include in your feed.

at main 2.7 kB View raw
1use limine::BaseRevision; 2use limine::request::{ 3 ExecutableAddressRequest, FramebufferRequest, HhdmRequest, MemoryMapRequest, ModuleRequest, 4 RequestsEndMarker, RequestsStartMarker, RsdpRequest, StackSizeRequest, 5}; 6 7#[used] 8#[unsafe(link_section = ".limine_requests")] 9static BASE_REVISION: BaseRevision = BaseRevision::new(); 10 11#[used] 12#[unsafe(link_section = ".limine_requests")] 13static HHDM_REQUEST: HhdmRequest = HhdmRequest::new(); 14 15#[used] 16#[unsafe(link_section = ".limine_requests")] 17static MEMORY_MAP_REQUEST: MemoryMapRequest = MemoryMapRequest::new(); 18 19#[used] 20#[unsafe(link_section = ".limine_requests")] 21static EXECUTABLE_ADDRESS_REQUEST: ExecutableAddressRequest = ExecutableAddressRequest::new(); 22 23#[used] 24#[unsafe(link_section = ".limine_requests")] 25static MODULE_REQUEST: ModuleRequest = ModuleRequest::new(); 26 27#[used] 28#[unsafe(link_section = ".limine_requests")] 29static RSDP_REQUEST: RsdpRequest = RsdpRequest::new(); 30 31#[used] 32#[unsafe(link_section = ".limine_requests")] 33static FRAMEBUFFER_REQUEST: FramebufferRequest = FramebufferRequest::new(); 34 35#[used] 36#[unsafe(link_section = ".limine_requests")] 37static STACK_SIZE_REQUEST: StackSizeRequest = StackSizeRequest::new().with_size(2 * 1024 * 1024); 38 39#[used] 40#[unsafe(link_section = ".limine_requests_start")] 41static _REQUESTS_START: RequestsStartMarker = RequestsStartMarker::new(); 42 43#[used] 44#[unsafe(link_section = ".limine_requests_end")] 45static _REQUESTS_END: RequestsEndMarker = RequestsEndMarker::new(); 46 47pub fn validate_base_revision() { 48 assert!( 49 BASE_REVISION.is_supported(), 50 "Limine base revision not supported" 51 ); 52} 53 54pub fn hhdm_offset() -> u64 { 55 HHDM_REQUEST 56 .get_response() 57 .expect("HHDM response missing") 58 .offset() 59} 60 61pub fn memory_map() -> &'static [&'static limine::memory_map::Entry] { 62 MEMORY_MAP_REQUEST 63 .get_response() 64 .expect("Memory map response missing") 65 .entries() 66} 67 68pub fn executable_address() -> (u64, u64) { 69 let resp = EXECUTABLE_ADDRESS_REQUEST 70 .get_response() 71 .expect("Executable address response missing"); 72 (resp.physical_base(), resp.virtual_base()) 73} 74 75#[allow(dead_code)] 76pub fn modules() -> Option<&'static [&'static limine::file::File]> { 77 MODULE_REQUEST.get_response().map(|r| r.modules()) 78} 79 80pub fn rsdp_address() -> Option<u64> { 81 RSDP_REQUEST.get_response().map(|r| r.address() as u64) 82} 83 84#[cfg(not(lancer_test))] 85pub fn framebuffer() -> Option<limine::framebuffer::Framebuffer<'static>> { 86 FRAMEBUFFER_REQUEST.get_response()?.framebuffers().next() 87} 88 89#[cfg(lancer_test)] 90pub fn framebuffer() -> Option<limine::framebuffer::Framebuffer<'static>> { 91 None 92}