rk/include/kernel/multiboot.h

47 lines
1.6 KiB
C
Raw Normal View History

#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;
};
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));
2024-05-20 05:59:07 -04:00
#endif