2 * Acess2 Kernel (x86 Port)
3 * - By John Hodge (thePowersGang)
6 * - Definitions for APIC/IOAPIC
11 typedef volatile struct sIOAPIC tIOAPIC;
12 typedef volatile struct sAPICReg tAPICReg;
13 typedef struct sAPIC tAPIC;
15 extern tAPIC *gpMP_LocalAPIC;
41 tAPICReg TPR; // Task Priority Register
42 tAPICReg APR; // Arbitration Priority Register (RO)
43 tAPICReg PPR; // Processor Priority Register (RO)
44 tAPICReg EOI; // EOI Register (Write Only)
46 tAPICReg LogDest; // Logical Destination Register
47 tAPICReg DestFmt; // Destination Format Register (0-27: RO, 28-31: RW)
48 tAPICReg SIV; // Spurious Interrupt Vector Register (0-8: RW, 9-31: RO)
49 tAPICReg ISR[8]; // In-Service Register - Total 256 Bits (RO)
50 tAPICReg TMR[8]; // Trigger Mode Register - Total 256 Bits (RO)
51 tAPICReg IRR[8]; // Interrupt Request Register - Total 256 Bits (RO)
52 tAPICReg ErrorStatus; // Error Status Register (RO)
54 tAPICReg LVTCMI; // LVT CMI Registers
56 tAPICReg ICR[2]; // Interrupt Command Register (RW)
57 // LVT Registers (Controls Local Vector Table)
59 // 0-7: Vector - IDT Vector for the interrupt
60 // 12: Delivery Status (0: Idle, 1: Send Pending)
61 // 16: Mask (0: Enabled, 1: Disabled)
63 tAPICReg LVTTimer; // LVT Timer Register (RW)
64 tAPICReg LVTThermalSensor; // LVT Thermal Sensor Register (RW)
65 tAPICReg LVTPerfMonCounters; // LVT Performance Monitor Counters Register (RW)
66 tAPICReg LVTLInt0; // LVT Local Interrupt (LINT) #0 Register (RW);
67 tAPICReg LVTLInt1; // LVT Local Interrupt (LINT) #1 Register (RW);
68 tAPICReg LVTError; // LVT Error Register (RW);
70 tAPICReg InitialCount; // Initial Count Register (Used for the timer) (RW)
71 tAPICReg CurrentCount; // Current Count Register (Used for the timer) (RW)
74 tAPICReg DivideConifg; // Divide Configuration Register (RW)