Working on Multiprocessing support
[tpg/acess2.git] / Kernel / arch / x86 / include / mp.h
1 /*
2  */
3 #ifndef _MP_H
4 #define _MP_H
5
6 #define MPPTR_IDENT     ('_'|('M'<<8)|('P'<<16)|('_'<<24))
7 #define MPTABLE_IDENT   ('P'|('C'<<8)|('M'<<16)|('P'<<24))
8
9 typedef struct sMPInfo {
10         Uint32  Sig;    // '_MP_'
11         Uint32  MPConfig;
12         Uint8   Length;
13         Uint8   Version;
14         Uint8   Checksum;
15         Uint8   Features[5];    // 2-4 are unused
16 } tMPInfo;
17
18 typedef struct sMPTable {
19         Uint32  Sig;
20         Uint16  BaseTableLength;
21         Uint8   SpecRev;
22         Uint8   Checksum;
23         
24         char    OemID[8];
25         char    ProductID[12];
26         
27         Uint32  OEMTablePtr;
28         Uint16  OEMTableSize;
29         Uint16  EntryCount;
30         
31         Uint32  LocalAPICMemMap;        //!< Address used to access the local APIC
32         Uint16  ExtendedTableLen;
33         Uint8   ExtendedTableChecksum;
34         Uint8   Reserved;
35 } tMPTable;
36
37 typedef struct sMPTable_Proc {
38         Uint8   Type;   // 0x00
39         Uint8   APICID;
40         Uint8   APICVer;
41         Uint8   CPUFlags;       // bit 0: Disabled, bit 1: Boot Processor
42         Uint32  CPUSignature;   // Stepping, Model, Family
43         Uint32  FeatureFlags;
44         Uint32  Reserved[2];
45 } tMPTable_Proc;
46
47 #endif

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