| ... | @@ -21,7 +21,7 @@ pub const BootServices = extern struct { | ... | @@ -21,7 +21,7 @@ pub const BootServices = extern struct { |
| 21 | allocatePages: usize, // TODO | 21 | allocatePages: usize, // TODO |
| 22 | freePages: usize, // TODO | 22 | freePages: usize, // TODO |
| 23 | getMemoryMap: extern fn (*usize, [*]MemoryDescriptor, *usize, *usize, *u32) usize, | 23 | getMemoryMap: extern fn (*usize, [*]MemoryDescriptor, *usize, *usize, *u32) usize, |
| 24 | allocatePool: usize, // TODO | 24 | allocatePool: extern fn (MemoryType, usize, *align(8) [*]u8) usize, |
| 25 | freePool: usize, // TODO | 25 | freePool: usize, // TODO |
| 26 | createEvent: extern fn (u32, usize, ?extern fn (Event, ?*const c_void) void, ?*const c_void, *Event) usize, | 26 | createEvent: extern fn (u32, usize, ?extern fn (Event, ?*const c_void) void, ?*const c_void, *Event) usize, |
| 27 | setTimer: extern fn (Event, TimerDelay, u64) usize, | 27 | setTimer: extern fn (Event, TimerDelay, u64) usize, |
| ... | @@ -42,7 +42,7 @@ pub const BootServices = extern struct { | ... | @@ -42,7 +42,7 @@ pub const BootServices = extern struct { |
| 42 | imageStart: usize, // TODO | 42 | imageStart: usize, // TODO |
| 43 | exit: extern fn (Handle, usize, usize, ?*const c_void) usize, | 43 | exit: extern fn (Handle, usize, usize, ?*const c_void) usize, |
| 44 | imageUnload: usize, // TODO | 44 | imageUnload: usize, // TODO |
| 45 | exitBootServices: usize, // TODO | 45 | exitBootServices: extern fn (Handle, usize) usize, |
| 46 | getNextMonotonicCount: usize, // TODO | 46 | getNextMonotonicCount: usize, // TODO |
| 47 | stall: extern fn (usize) usize, | 47 | stall: extern fn (usize) usize, |
| 48 | setWatchdogTimer: extern fn (usize, u64, usize, ?[*]const u16) usize, | 48 | setWatchdogTimer: extern fn (usize, u64, usize, ?[*]const u16) usize, |
| ... | @@ -82,25 +82,27 @@ pub const TimerDelay = extern enum(u32) { | ... | @@ -82,25 +82,27 @@ pub const TimerDelay = extern enum(u32) { |
| 82 | TimerRelative, | 82 | TimerRelative, |
| 83 | }; | 83 | }; |
| 84 | | 84 | |
| | 85 | pub const MemoryType = extern enum(u32) { |
| | 86 | ReservedMemoryType, |
| | 87 | LoaderCode, |
| | 88 | LoaderData, |
| | 89 | BootServicesCode, |
| | 90 | BootServicesData, |
| | 91 | RuntimeServicesCode, |
| | 92 | RuntimeServicesData, |
| | 93 | ConventionalMemory, |
| | 94 | UnusableMemory, |
| | 95 | ACPIReclaimMemory, |
| | 96 | ACPIMemoryNVS, |
| | 97 | MemoryMappedIO, |
| | 98 | MemoryMappedIOPortSpace, |
| | 99 | PalCode, |
| | 100 | PersistentMemory, |
| | 101 | MaxMemoryType, |
| | 102 | }; |
| | 103 | |
| 85 | pub const MemoryDescriptor = extern struct { | 104 | pub const MemoryDescriptor = extern struct { |
| 86 | type: extern enum(u32) { | 105 | type: MemoryType, |
| 87 | ReservedMemoryType, | | |
| 88 | LoaderCode, | | |
| 89 | LoaderData, | | |
| 90 | BootServicesCode, | | |
| 91 | BootServicesData, | | |
| 92 | RuntimeServicesCode, | | |
| 93 | RuntimeServicesData, | | |
| 94 | ConventionalMemory, | | |
| 95 | UnusableMemory, | | |
| 96 | ACPIReclaimMemory, | | |
| 97 | ACPIMemoryNVS, | | |
| 98 | MemoryMappedIO, | | |
| 99 | MemoryMappedIOPortSpace, | | |
| 100 | PalCode, | | |
| 101 | PersistentMemory, | | |
| 102 | MaxMemoryType, | | |
| 103 | }, | | |
| 104 | physical_start: u64, | 106 | physical_start: u64, |
| 105 | virtual_start: u64, | 107 | virtual_start: u64, |
| 106 | number_of_pages: usize, | 108 | number_of_pages: usize, |