Kernel/x86 - Multiboot module cleanup
[tpg/acess2.git] / KernelLand / Kernel / include / mboot.h
index c7f33dd..6ffd5c1 100644 (file)
@@ -4,21 +4,47 @@
  */
 #ifndef _MBOOT_H
 #define _MBOOT_H
+#include <acess.h>
 
 #define MULTIBOOT_MAGIC        0x2BADB002
 
+#include <pmemmap.h>
+#include <bootmod.h>
+
 // === 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

UCC git Repository :: git.ucc.asn.au