X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Finclude%2Fmboot.h;h=6ffd5c11a3c10e5ba83c67250d3982a177cd5b4c;hb=13078002b01ee4f63eb2001d2ef479a2a006ea32;hp=c7f33ddb54100019318a8d5069bd9ba91a5cadfd;hpb=51ab5f489bc356940c95cc936fd0508e8f07ea97;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/include/mboot.h b/KernelLand/Kernel/include/mboot.h index c7f33ddb..6ffd5c11 100644 --- a/KernelLand/Kernel/include/mboot.h +++ b/KernelLand/Kernel/include/mboot.h @@ -4,21 +4,47 @@ */ #ifndef _MBOOT_H #define _MBOOT_H +#include #define MULTIBOOT_MAGIC 0x2BADB002 +#include +#include + // === TYPES === typedef struct { Uint32 Flags; + // flags[0] Uint32 LowMem; Uint32 HighMem; + // flags[1] Uint32 BootDevice; + // flags[2] Uint32 CommandLine; + // flags[3] Uint32 ModuleCount; Uint32 Modules; + // flags[4] or flags[5] Uint32 SymbolInfo[4]; // #32 UNUSED + // flags[6] Uint32 MMapLength; Uint32 MMapAddr; // #40 + // flags[7] + Uint32 drives_length; + Uint32 drives_addr; + // flags[8] + Uint32 config_table; + // flags[9] + Uint32 boot_loader_name; + // flags[10] + Uint32 apm_table; + // flags[11] + Uint32 vbe_control_info; + Uint32 vbe_mode_info; + Uint32 vbe_mode; + Uint32 vbe_interface_seg; + Uint32 vbe_interface_off; + Uint32 vbe_interface_len; } tMBoot_Info; typedef struct { @@ -35,4 +61,8 @@ typedef struct { Uint32 Type; //1:RAM,Else Reserved } __attribute__ ((packed)) tMBoot_MMapEnt; +extern int Multiboot_LoadMemoryMap(tMBoot_Info *MBInfo, tVAddr MapOffset, tPMemMapEnt *Map, const int MapSize, tPAddr KStart, tPAddr KEnd); +extern tBootModule *Multiboot_LoadModules(tMBoot_Info *MBInfo, tVAddr MapOffset, int *ModuleCount); +extern void Multiboot_FreeModules(const int ModuleCount, tBootModule *Modules); + #endif