ApertureOS
Data Structures | Macros | Functions
IO APIC driver

Data Structures

struct  IOAPIC_Desc
 
struct  IOAPIC_InterruptMapEntry
 

Macros

#define MAX_IOAPIC_COUNT   128
 
#define IOAPIC_PIN_COUNT   24
 

Functions

uint8_t IOAPIC_Initialize (uint32_t baseAddr, uint32_t global_int_base)
 
void IOAPIC_MapIRQ (uint8_t global_irq, uint8_t apic_vector, uint64_t apic_id, uint8_t trigger_mode, uint8_t polarity, uint8_t delivery_mode)
 
void IOAPIC_SetEnableMode (uint8_t vector, bool active)
 
uint8_t IOAPIC_GetVector (uint8_t global_irq, uint8_t *vec)
 
void IOAPIC_VirtualizeAll (void)
 
uint32_t IOAPIC_Read (uint32_t *io_apic_baseAddr, uint32_t index)
 Read an IOAPIC configuration register. More...
 
void IOAPIC_Write (uint32_t *io_apic_baseAddr, uint32_t index, uint32_t val)
 Write an IOAPIC configuration register. More...
 

Detailed Description

Macro Definition Documentation

#define IOAPIC_PIN_COUNT   24
#define MAX_IOAPIC_COUNT   128

Function Documentation

uint8_t IOAPIC_GetVector ( uint8_t  global_irq,
uint8_t *  vec 
)
uint8_t IOAPIC_Initialize ( uint32_t  baseAddr,
uint32_t  global_int_base 
)
void IOAPIC_MapIRQ ( uint8_t  global_irq,
uint8_t  apic_vector,
uint64_t  apic_id,
uint8_t  trigger_mode,
uint8_t  polarity,
uint8_t  delivery_mode 
)
uint32_t IOAPIC_Read ( uint32_t *  io_apic_baseAddr,
uint32_t  index 
)

Read an IOAPIC configuration register.

Parameters
io_apic_baseAddrthe base address of the IO APIC MMIO space
indexthe register index to read
Returns
the value of the register
void IOAPIC_SetEnableMode ( uint8_t  vector,
bool  active 
)
void IOAPIC_VirtualizeAll ( void  )
void IOAPIC_Write ( uint32_t *  io_apic_baseAddr,
uint32_t  index,
uint32_t  val 
)

Write an IOAPIC configuration register.

Parameters
io_apic_baseAddrthe base address of the IO APIC MMIO space
indexthe register index to read
valthe register value