35 lines
1.3 KiB
C++
35 lines
1.3 KiB
C++
// Excerpt from the Apic class definition
|
|
class Apic {
|
|
public:
|
|
// Enabling the APIC subsystem
|
|
static bool isSupported();
|
|
static bool isEnabled();
|
|
static void enable();
|
|
|
|
// Enabling SMP
|
|
static bool isSmpSupported();
|
|
static void startupSmp();
|
|
|
|
// Controlling the current core's local APIC
|
|
static void initializeCurrentLocalApic();
|
|
static uint8_t getCpuCount();
|
|
static LocalApic &getCurrentLocalApic();
|
|
static void enableCurrentErrorHandler();
|
|
|
|
// Controlling the current core's APIC timer
|
|
static bool isCurrentTimerRunning();
|
|
static void startCurrentTimer();
|
|
static ApicTimer &getCurrentTimer();
|
|
|
|
// Controlling the current core's interrupts
|
|
static void allow(InterruptRequest interruptRequest);
|
|
static void forbid(InterruptRequest interruptRequest);
|
|
static bool status(InterruptRequest interruptRequest);
|
|
static void sendEndOfInterrupt(InterruptVector vector);
|
|
static bool isLocalInterrupt(InterruptVector vector);
|
|
static bool isExternalInterrupt(InterruptVector vector);
|
|
|
|
// Tracking interrupt statistics
|
|
static void mountVirtualFilesystemNodes();
|
|
static void countInterrupt(InterruptVector vector);
|
|
} |