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