Kernel - Standardised kernel build tag (placed in gsBuildInfo)
[tpg/acess2.git] / KernelLand / Kernel / include / pmemmap.h
1 /*
2  * Acess2 Kernel
3  * - By John Hodge (thePowersGang)
4  *
5  * pmemmap.h
6  * - Physical Memory Map definitions
7  */
8 #ifndef _PMEMMAP_H_
9 #define _PMEMMAP_H_
10
11 typedef struct sPMemMapEnt      tPMemMapEnt;
12
13 enum ePMemMapEntType
14 {
15         PMEMTYPE_FREE,  // Free RAM
16         PMEMTYPE_USED,  // Used by Kernel / Modules
17         PMEMTYPE_RESERVED,      // Unavaliable
18         PMEMTYPE_NVRAM, // Non-volatile
19         PMEMTYPE_UNMAPPED       // Nothing on these lines
20 };
21
22 struct sPMemMapEnt
23 {
24         Uint64  Start;
25         Uint64  Length;
26         enum ePMemMapEntType    Type;
27         Uint16  NUMADomain;
28 };
29
30 extern void     PMemMap_DumpBlocks(tPMemMapEnt *map, int NEnts);
31 extern int      PMemMap_SplitBlock(tPMemMapEnt *map, int NEnts, int MaxEnts, int Block, Uint64 Offset);
32 extern int      PMemMap_CompactMap(tPMemMapEnt *map, int NEnts, int MaxEnts);
33 extern int      PMemMap_ValidateMap(tPMemMapEnt *map, int NEnts, int MaxEnts);
34 extern int      PMemMap_MarkRangeUsed(tPMemMapEnt *map, int NEnts, int MaxEnts, Uint64 Base, Uint64 Size);
35
36 #endif
37

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