#ifndef HAZEL_MULTIBOOT_H_ #define HAZEL_MULTIBOOT_H_ #include typedef struct { uint32_t flags; //required uint32_t memlower; //if bit 0 in flags are set uint32_t memupper; //if bit 0 in flags are set uint32_t bootdevice; //if bit 1 in flags are set uint32_t commandline; //if bit 2 in flags are set uint32_t modulecount; //if bit 3 in flags are set uint32_t moduleaddress; //if bit 3 in flags are set uint32_t syms[4]; //if bits 4 or 5 in flags are set uint32_t memmaplength; //if bit 6 in flags is set uint32_t memmapaddress; //if bit 6 in flags is set uint32_t driveslength; //if bit 7 in flags is set uint32_t drivesaddress; //if bit 7 in flags is set uint32_t configtable; //if bit 8 in flags is set uint32_t apmtable; //if bit 9 in flags is set uint32_t vbecontrolinfo; //if bit 10 in flags is set uint32_t vbemodeinfo; //if bit 11 in flags is set uint32_t vbemode; // all vbe_* set if bit 12 in flags are set uint32_t vbeinterfaceseg; uint32_t vbeinterfaceoff; uint32_t vbeinterfacelength; } multiboot_info_t; struct multiboot_mmap_entry { uint32_t size; uint32_t addr_low; uint32_t addr_high; uint32_t len_low; uint32_t len_high; #define MULTIBOOT_MEMORY_AVAILABLE 1 #define MULTIBOOT_MEMORY_RESERVED 2 #define MULTIBOOT_MEMORY_ACPI_RECLAIMABLE 3 #define MULTIBOOT_MEMORY_NVS 4 #define MULTIBOOT_MEMORY_BADRAM 5 uint32_t type; } __attribute__((packed)); typedef struct multiboot_mmap_entry multi_mmap_t; #endif