ApertureOS
Macros | Functions
APIC driver

Macros

#define APIC_TIMER   0x320
 
#define APIC_THERMAL_SENSOR   0x330
 
#define APIC_PERF_MON   0x340
 
#define APIC_LINT0   0x350
 
#define APIC_LINT1   0x360
 
#define APIC_ERR   0x370
 
#define APIC_TIMER_VAL   0x380
 
#define APIC_TIMER_ONESHOT   0x0
 
#define APIC_TIMER_PERIODIC   0x1
 
#define APIC_TIMER_TSC   0x2
 
#define APIC_DELIVERY_MODE_FIXED   0x0
 
#define APIC_DELIVERY_MODE_SMI   0x2
 
#define APIC_DELIVERY_MODE_NMI   0x4
 
#define APIC_DELIVERY_MODE_EXTINT   0x7
 
#define APIC_DELIVERY_MODE_INIT   0x5
 
#define APIC_TRIGGER_MODE_EDGE   0
 
#define APIC_TRIGGER_MODE_LEVEL   1
 
#define APIC_POLARITY_HIGH   0
 
#define APIC_POLARITY_LOW   1
 
#define IA32_APIC_BASE   0x01B
 
#define APIC_ID   0x020
 
#define APIC_EOI   0x0B0
 
#define APIC_SVR   0x0F0
 
#define APIC_ISR_BASE   0x100
 
#define APIC_TPR   0x080
 
#define APIC_INITIAL_COUNT   0x380
 

Functions

uint8_t APIC_LocalInitialize (void)
 
uint32_t APIC_Initialize (void)
 
void APIC_SetEnableMode (uint8_t enabled)
 
uint8_t APIC_GetID (void)
 
void APIC_SetTimerMode (uint8_t mode)
 
void APIC_SetDeliveryMode (uint32_t lvt_entry, uint8_t mode)
 
void APIC_SetTriggerMode (uint32_t lvt_entry, uint8_t mode)
 
void APIC_SetPolarity (uint32_t lvt_entry, uint8_t mode)
 
void APIC_SetTimerValue (uint32_t val)
 
uint32_t APIC_GetTimerValue (void)
 
void APIC_SetTimerDivisor (uint8_t divisor)
 
void APIC_SetEnableInterrupt (uint32_t interrupt, int enableMode)
 
void APIC_SetVector (uint32_t interrupt, uint8_t vector)
 
void APIC_SendEOI (uint8_t int_num)
 
void APIC_Virtualize (void)
 
void APIC_FillHWInterruptHandler (char *idt_handler, uint8_t intNum, uint8_t irqNum)
 
void APIC_DefaultHandler (void)
 
void APIC_Write (uint32_t reg, uint32_t val)
 
uint32_t APIC_Read (uint32_t reg)
 

Detailed Description

Macro Definition Documentation

#define APIC_DELIVERY_MODE_EXTINT   0x7
#define APIC_DELIVERY_MODE_FIXED   0x0
#define APIC_DELIVERY_MODE_INIT   0x5
#define APIC_DELIVERY_MODE_NMI   0x4
#define APIC_DELIVERY_MODE_SMI   0x2
#define APIC_EOI   0x0B0
#define APIC_ERR   0x370
#define APIC_ID   0x020
#define APIC_INITIAL_COUNT   0x380
#define APIC_ISR_BASE   0x100
#define APIC_LINT0   0x350
#define APIC_LINT1   0x360
#define APIC_PERF_MON   0x340
#define APIC_POLARITY_HIGH   0
#define APIC_POLARITY_LOW   1
#define APIC_SVR   0x0F0
#define APIC_THERMAL_SENSOR   0x330
#define APIC_TIMER   0x320
#define APIC_TIMER_ONESHOT   0x0
#define APIC_TIMER_PERIODIC   0x1
#define APIC_TIMER_TSC   0x2
#define APIC_TIMER_VAL   0x380
#define APIC_TPR   0x080
#define APIC_TRIGGER_MODE_EDGE   0
#define APIC_TRIGGER_MODE_LEVEL   1
#define IA32_APIC_BASE   0x01B

Function Documentation

void APIC_DefaultHandler ( void  )
void APIC_FillHWInterruptHandler ( char *  idt_handler,
uint8_t  intNum,
uint8_t  irqNum 
)
uint8_t APIC_GetID ( void  )
uint32_t APIC_GetTimerValue ( void  )
uint32_t APIC_Initialize ( void  )
uint8_t APIC_LocalInitialize ( void  )
uint32_t APIC_Read ( uint32_t  reg)
void APIC_SendEOI ( uint8_t  int_num)
void APIC_SetDeliveryMode ( uint32_t  lvt_entry,
uint8_t  mode 
)
void APIC_SetEnableInterrupt ( uint32_t  interrupt,
int  enableMode 
)
void APIC_SetEnableMode ( uint8_t  enabled)
void APIC_SetPolarity ( uint32_t  lvt_entry,
uint8_t  mode 
)
void APIC_SetTimerDivisor ( uint8_t  divisor)
void APIC_SetTimerMode ( uint8_t  mode)
void APIC_SetTimerValue ( uint32_t  val)
void APIC_SetTriggerMode ( uint32_t  lvt_entry,
uint8_t  mode 
)
void APIC_SetVector ( uint32_t  interrupt,
uint8_t  vector 
)
void APIC_Virtualize ( void  )
void APIC_Write ( uint32_t  reg,
uint32_t  val 
)