6 #define MPPTR_IDENT ('_'|('M'<<8)|('P'<<16)|('_'<<24))
7 #define MPTABLE_IDENT ('P'|('C'<<8)|('M'<<16)|('P'<<24))
9 typedef struct sMPInfo {
15 Uint8 Features[5]; // 2-4 are unused
18 typedef union uMPTable_Ent {
24 Uint8 CPUFlags; // bit 0: Enabled, bit 1: Boot Processor
25 Uint32 CPUSignature; // Stepping, Model, Family
28 } __attribute__((packed)) Proc; // 0x00
33 } __attribute__((packed)) Bus; // 0x01
38 Uint8 Flags; // bit 0: Enabled
40 } __attribute__((packed)) IOAPIC; // 0x02
44 Uint16 Flags; // 0,1: Polarity, 2,3: Trigger Mode
49 } __attribute__((packed)) IOInt;
53 Uint16 Flags; // 0,1: Polarity, 2,3: Trigger Mode
56 Uint8 DestLocalAPICID;
57 Uint8 DestLocalAPICIRQ;
58 } __attribute__((packed)) LocalInt;
59 } __attribute__((packed)) tMPTable_Ent;
61 typedef struct sMPTable {
63 Uint16 BaseTableLength;
74 Uint32 LocalAPICMemMap; //!< Address used to access the local APIC
75 Uint16 ExtendedTableLen;
76 Uint8 ExtendedTableChecksum;
79 tMPTable_Ent Entries[];
82 typedef volatile struct {
98 typedef volatile struct {