Kernel/x86_64 - Rework to use pmemmap.h (and share code with x86)
[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         Uint32  LowMem;
18         Uint32  HighMem;
19         Uint32  BootDevice;
20         Uint32  CommandLine;
21         Uint32  ModuleCount;
22         Uint32  Modules;
23         Uint32  SymbolInfo[4];  // #32 UNUSED
24         Uint32  MMapLength;
25         Uint32  MMapAddr;               // #40
26 } tMBoot_Info;
27
28 typedef struct {
29         Uint32  Start;
30         Uint32  End;
31         Uint32  String;
32         Uint32  Resvd;
33 } tMBoot_Module;
34
35 typedef struct {
36         Uint32  Size;   // (May be at offset -4)
37         Uint64  Base;
38         Uint64  Length;
39         Uint32  Type;   //1:RAM,Else Reserved
40 } __attribute__ ((packed)) tMBoot_MMapEnt;
41
42 extern int      Multiboot_LoadMemoryMap(tMBoot_Info *MBInfo, tVAddr MapOffset, tPMemMapEnt *Map, const int MapSize, tPAddr KStart, tPAddr KEnd);
43 extern tBootModule      *Multiboot_LoadModules(tMBoot_Info *MBInfo, tVAddr MapOffset, int *ModuleCount);
44
45 #endif

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