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

Enthält die Klasse LAPIC zum Zugriff auf den Local APIC. Mehr ...

#include "types.h"
Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

Namensbereiche

 LAPIC
 Abstraktion des in der CPU integrierten local APICs.
 

Funktionen

void LAPIC::init (uint8_t logicalID)
 Initialisiert den local APIC der jeweiligen CPU und setzt die lokale APIC ID im LDR Register. Mehr ...
 
void LAPIC::endOfInterrupt ()
 Signalisiert EOI (End of interrupt) Mehr ...
 
uint8_t LAPIC::getID ()
 Liefert die ID des in der aktuellen CPU integrieren APICs. Mehr ...
 
uint8_t LAPIC::getLogicalID ()
 
void LAPIC::setLogicalID (uint8_t id)
 
uint8_t LAPIC::getVersion ()
 Liefert Versionsnummer des local APICs. Mehr ...
 
bool LAPIC::IPI::isDelivered ()
 Kehrt mit true zurück, falls zum Zeitpunkt des Aufrufs kein IPI aktiv ist. Mehr ...
 
void LAPIC::IPI::send (uint8_t destination, uint8_t vector)
 
void LAPIC::IPI::sendGroup (uint8_t logical_destination, uint8_t vector)
 
void LAPIC::IPI::sendAll (uint8_t vector)
 
void LAPIC::IPI::sendOthers (uint8_t vector)
 
void LAPIC::IPI::sendInit (bool assert=true)
 
void LAPIC::IPI::sendStartup (uint8_t vector)
 
uint32_t LAPIC::Timer::ticks ()
 Ermittelt die Frequenz des LAPIC-Timers. Mehr ...
 
void LAPIC::Timer::set (uint32_t counter, uint8_t divide, uint8_t vector, bool periodic, bool masked=false)
 Stellt den LAPIC-Timer ein. Mehr ...
 
void LAPIC::Timer::setMasked (bool masked)
 Setzt die LAPIC-Timer Interrupt Make. Mehr ...
 

Ausführliche Beschreibung

Enthält die Klasse LAPIC zum Zugriff auf den Local APIC.

Local APIC referenziert in Intel System Programming Guide 3A

Dokumentation der Funktionen

◆ isDelivered()

bool LAPIC::IPI::isDelivered ( )

Kehrt mit true zurück, falls zum Zeitpunkt des Aufrufs kein IPI aktiv ist.

Rückgabe
false, falls der letzte gesendete IPI noch nicht vom Zielprozessor akzeptiert wurde

◆ set()

void LAPIC::Timer::set ( uint32_t  counter,
uint8_t  divide,
uint8_t  vector,
bool  periodic,
bool  masked = false 
)

Stellt den LAPIC-Timer ein.

Parameter
counterStartwert des Zählers, der bei jedem Bus-Takt dekrementiert wird.
divideZweierpotenz, durch die der Bustakt geteilt werden soll (wird als numerischer Wert (1, 2, 4, 8, ...) übergeben, zur Umrechnung in die passende Bitmaske siehe LAPIC::timer_div)
vectorNummer des auszulösenden Interrupts.
periodicGibt an, ob die Unterbrechung periodisch kommen soll
maskedUnterdrückt Unterbrechungen bei Zählerablauf

◆ setMasked()

void LAPIC::Timer::setMasked ( bool  masked)

Setzt die LAPIC-Timer Interrupt Make.

Parameter
maskedUnterdrückt Unterbrechungen bei Zählerablauf
Optional:
Für Tickless Kernel implementieren

◆ ticks()

uint32_t LAPIC::Timer::ticks ( )

Ermittelt die Frequenz des LAPIC-Timers.

Rückgabe
Anzahl der Timerticks pro Millisekunde