Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik
lapic.h File Reference

LAPIC abstracts access to the Local APIC More...

#include "types.h"
Include dependency graph for lapic.h:

Namespaces

 LAPIC
 Abstracts the local APIC (which is integrated into every CPU core)In modern (x86) PCs, every CPU core has its own Local APIC (LAPIC). The LAPIC is the link between the local CPU core and the I/O APIC (that takes care about external interrupt sources. Interrupt messages received by the LAPIC will be passed to the corresponding CPU core and trigger the interrupt handler on this core.
 
 LAPIC::IPI
 Inter-Processor Interrupts.
 
 LAPIC::Timer
 Local Timer (for each LAPIC / CPU)
 

Functions

void LAPIC::init (uint8_t logical_id)
 Initialized the local APIC of the calling CPU core and sets the logical LAPIC ID in the LDR register. More...
 
void LAPIC::endOfInterrupt ()
 Signalize EOI (End of interrupt) More...
 
uint8_t LAPIC::getID ()
 Get the ID of the current core's LAPIC. More...
 
uint8_t LAPIC::getLogicalID ()
 
void LAPIC::setLogicalID (uint8_t id)
 
uint8_t LAPIC::getVersion ()
 Get version number of local APIC. More...
 
bool LAPIC::IPI::isDelivered ()
 Check if the previously sent IPI has reached its destination. More...
 
void LAPIC::IPI::send (uint8_t destination, uint8_t vector)
 Send an Inter-Processor Interrupt (IPI) More...
 
void LAPIC::IPI::sendGroup (uint8_t logical_destination, uint8_t vector)
 Send an Inter-Processor Interrupt (IPI) to a group of processors. More...
 
void LAPIC::IPI::sendAll (uint8_t vector)
 Send an Inter-Processor Interrupt (IPI) to all processors (including self) More...
 
void LAPIC::IPI::sendOthers (uint8_t vector)
 Send an Inter-Processor Interrupt (IPI) to all other processors (all but self) More...
 
void LAPIC::IPI::sendInit (bool assert=true)
 
void LAPIC::IPI::sendStartup (uint8_t vector)
 
uint32_t LAPIC::Timer::ticks (void)
 Determines the LAPIC timer frequency. More...
 
void LAPIC::Timer::set (uint32_t counter, uint8_t divide, uint8_t vector, bool periodic, bool masked=false)
 Set the LAPIC timer. More...
 
void LAPIC::Timer::setMasked (bool masked)
 Set the LAPIC-timer interrupt mask. More...
 

Detailed Description

LAPIC abstracts access to the Local APIC