20 #ifndef KERNEL_MACHINE_X86_COMMON_LOCAL_APIC_H    21 #define KERNEL_MACHINE_X86_COMMON_LOCAL_APIC_H    25 #include "pedigree/kernel/compiler.h"    26 #include "pedigree/kernel/machine/SchedulerTimer.h"    27 #include "pedigree/kernel/processor/InterruptHandler.h"    28 #include "pedigree/kernel/processor/MemoryMappedIo.h"    29 #include "pedigree/kernel/processor/Processor.h"    30 #include "pedigree/kernel/processor/ProcessorInformation.h"    31 #include "pedigree/kernel/processor/state_forward.h"    32 #include "pedigree/kernel/processor/types.h"    33 #include "pedigree/kernel/utilities/Tree.h"    34 #include "pedigree/kernel/utilities/new"    38 #define IPI_HALT_VECTOR 0xFB    39 #define ERROR_VECTOR 0xFC    40 #define SPURIOUS_VECTOR 0xFD    41 #define TIMER_VECTOR 0xFE    53         : m_IoSpace(
"Local APIC"), m_Handlers(), m_BusFrequency(0)
    57     inline virtual ~LocalApic()
    71     bool initialiseProcessor() INITIALISATION_ONLY;
    76         deliveryModeFixed = 0,
    77         deliveryModeLowestPriority = 1,
    81         deliveryModeStartup = 6,
    82         deliveryModeExtInt = 7
    90     void interProcessorInterrupt(
    91         uint8_t destinationApicId, uint8_t vector, 
size_t deliveryMode,
    92         bool bAssert, 
bool bLevelTriggered);
    97     void interProcessorInterruptAllExcludingThis(
    98         uint8_t vector, 
size_t deliveryMode);
   119     LocalApic(
const LocalApic &);
   133     virtual void interrupt(
size_t nInterruptNumber, InterruptState &state);
   142     size_t m_BusFrequency;
 
#define INITIALISATION_ONLY
 
uintptr_t physicalAddress(physical_uintptr_t address) PURE
 
SchedulerTimer & operator=(const SchedulerTimer &)
 
virtual void interrupt(size_t nInterruptNumber, InterruptState &state)=0
 
Abstract base class for interrupt-handlers.