ad9365599f06cc9ca7b694824d3e43efcf3fec6f
[tpg/acess2.git] / KernelLand / Kernel / include / mboot.h
1 /*
2  * AcessOS Microkernel Version
3  * mboot.h
4  */
5 #ifndef _MBOOT_H
6 #define _MBOOT_H
7 #include <acess.h>
8
9 #define MULTIBOOT_MAGIC 0x2BADB002
10
11 #include <pmemmap.h>
12 #include <bootmod.h>
13
14 // === TYPES ===
15 typedef struct {
16         Uint32  Flags;
17         // flags[0]
18         Uint32  LowMem;
19         Uint32  HighMem;
20         // flags[1]
21         Uint32  BootDevice;
22         // flags[2]
23         Uint32  CommandLine;
24         // flags[3]
25         Uint32  ModuleCount;
26         Uint32  Modules;
27         // flags[4] or flags[5]
28         Uint32  SymbolInfo[4];  // #32 UNUSED
29         // flags[6]
30         Uint32  MMapLength;
31         Uint32  MMapAddr;               // #40
32         // flags[7]
33         Uint32  drives_length;
34         Uint32  drives_addr;
35         // flags[8]
36         Uint32  config_table;
37         // flags[9]
38         Uint32  boot_loader_name;
39         // flags[10]
40         Uint32  apm_table;
41         // flags[11]
42         Uint32  vbe_control_info;
43         Uint32  vbe_mode_info;
44         Uint32  vbe_mode;
45         Uint32  vbe_interface_seg;
46         Uint32  vbe_interface_off;
47         Uint32  vbe_interface_len;
48 } tMBoot_Info;
49
50 typedef struct {
51         Uint32  Start;
52         Uint32  End;
53         Uint32  String;
54         Uint32  Resvd;
55 } tMBoot_Module;
56
57 typedef struct {
58         Uint32  Size;   // (May be at offset -4)
59         Uint64  Base;
60         Uint64  Length;
61         Uint32  Type;   //1:RAM,Else Reserved
62 } __attribute__ ((packed)) tMBoot_MMapEnt;
63
64 extern int      Multiboot_LoadMemoryMap(tMBoot_Info *MBInfo, tVAddr MapOffset, tPMemMapEnt *Map, const int MapSize, tPAddr KStart, tPAddr KEnd);
65 extern tBootModule      *Multiboot_LoadModules(tMBoot_Info *MBInfo, tVAddr MapOffset, int *ModuleCount);
66
67 #endif

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