2024-05-22 12:25:52 -04:00
|
|
|
#ifndef RK_MULTIBOOT_H_
|
|
|
|
#define RK_MULTIBOOT_H_
|
2024-05-20 05:59:07 -04:00
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
#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;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|