#ifndef RK_MULTIBOOT_H_ #define RK_MULTIBOOT_H_ #include #define MULTIBOOT_MAGIC 0x2BADB002 struct multiboot_info { 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; }; 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)); #endif