Go to the documentation of this file.
18 #ifndef __LIBARCH_INTEL_APIC_H
19 #define __LIBARCH_INTEL_APIC_H
Intel 8254 Programmable Interrupt Timer (PIT).
Interrupt controller interface.
uint getCounter() const
Get timer initial counter.
TimerFlags
Timer Register flags.
Virtual memory abstract interface.
virtual Result start()
Start the timer.
virtual IntController::Result clear(uint irq)
Clear hardware interrupt (IRQ).
virtual Timer::Result stop()
Stop the APIC timer.
IntController::Result sendIPI(uint coreId, uint vector)
Send Intercore-Processor-Interrupt.
virtual Timer::Result start()
(Re)start the APIC timer.
virtual IntController::Result disable(uint irq)
Disable hardware interrupt (IRQ).
unsigned long Address
A memory address.
static const uint IOBase
APIC memory mapped I/O register base offset (physical address).
Represents a configurable timer device.
unsigned int uint
Unsigned integer number.
virtual IntController::Result enable(uint irq)
Enable hardware interrupt (IRQ).
slong Error
Error code defined in Error.h.
unsigned int u32
Unsigned 32-bit number.
SpuriousIntVecFlags
Spurious Interrupt Vector Register flags.
DivideConfigFlags
Timer Divide Configuration Register flags.
virtual Timer::Result wait(u32 microseconds) const
Busy wait a number of microseconds.
Intel Advanced Programmable Interrupt Controller (APIC)
Registers
Hardware registers.
IntController::Result sendStartupIPI(uint cpuId, Address addr)
Send startup Intercore-Processor-Interrupt.
virtual Timer::Result initialize()
Initialize the APIC.
IntelIO & getIO()
Get I/O object.
uint m_initialCounter
Saved initial counter value for APIC timer.
static const uint TimerVector
APIC timer interrupt vector is fixed at 48.