Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik
System-Namensbereichsreferenz

Systemkomponenten. Mehr ...

Aufzählungen

enum  Device {
  timer = 0, keyboard = 1, com1 = 4, com2 = 3,
  com3 = 4, com4 = 3, floppy = 6, lpt1 = 7,
  rtc = 8, ps2mouse = 12, ide1 = 14, ide2 = 15
}
 Historische Anordnung der Interruptleitungen (PIC)
 

Funktionen

bool init ()
 Führt Systemerkennung aus. Mehr ...
 
uint8_t getIOAPICSlot (System::Device device)
 Liefert die Nummer des Pins, an dem das Gerät device hängt. Mehr ...
 
int getCPUID ()
 Liefert die CPUID der aktuellen CPU. Mehr ...
 
void * getIOAPICAddress ()
 Abfragen der während des Bootvorgangs ausgelesene Addresse des IOAPICs. Mehr ...
 
uint8_t getIOAPICID ()
 Abfragen der während des Bootvorgangs ausgelesene ID des IOAPICs. Mehr ...
 
void setupThisProcessor ()
 Initialisiere den Prozessor. Mehr ...
 
unsigned getNumberOfCPUs ()
 Abfragen der CPU Anzahl. Mehr ...
 
unsigned getNumberOfOnlineCPUs ()
 Gibt die Anzahl der erfolgreich gebooteten CPUs zurück. Mehr ...
 
bool isOnlineCPU (uint8_t cpu)
 Gibt an ob die gegegebene CPU erfolgreich gebootetet ist. Mehr ...
 
uint8_t getLogicalLAPICID (uint8_t cpu)
 Liefert die logische ID des LAPICs der übergebenen cpu. Mehr ...
 

Variablen

const unsigned LAPIC_MAX = CPU_MAX
 

Ausführliche Beschreibung

Systemkomponenten.

Dokumentation der Funktionen

◆ getCPUID()

int System::getCPUID ( )

Liefert die CPUID der aktuellen CPU.

Rückgabe
CPUID der aktuellen CPU.

◆ getIOAPICAddress()

void * System::getIOAPICAddress ( )

Abfragen der während des Bootvorgangs ausgelesene Addresse des IOAPICs.

Rückgabe
Liefert die Addresse des IOAPICs

◆ getIOAPICID()

uint8_t System::getIOAPICID ( )

Abfragen der während des Bootvorgangs ausgelesene ID des IOAPICs.

Rückgabe
Liefert die ID des IOAPICs

◆ getIOAPICSlot()

uint8_t System::getIOAPICSlot ( System::Device  device)

Liefert die Nummer des Pins, an dem das Gerät device hängt.

◆ getLogicalLAPICID()

uint8_t System::getLogicalLAPICID ( uint8_t  cpu)

Liefert die logische ID des LAPICs der übergebenen cpu.

Die logische ID der LAPICs wird von uns beim Boot-Vorgang so initialisiert, dass genau ein Bit pro CPU gesetzt ist. Dabei ist in der logischen ID des LAPICs von CPU 0 Bit 0 gesetzt, in der ID des LAPICs von CPU 1 Bit 1, usw.

Parameter
cpuDie abzufragende CPU

◆ getNumberOfCPUs()

unsigned System::getNumberOfCPUs ( )

Abfragen der CPU Anzahl.

Rückgabe
Gibt die Anzahl der CPUs zurück

◆ getNumberOfOnlineCPUs()

unsigned System::getNumberOfOnlineCPUs ( )

Gibt die Anzahl der erfolgreich gebooteten CPUs zurück.

◆ init()

bool System::init ( )

Führt Systemerkennung aus.

Hier wird die ACPI-Tabelle gesucht und ausgewertet. Diese Funktion erkennt ein eventuell vorhandenes Mehrprozessorsystem. Nach erfolgter Erkennung können die Anzahl der CPUs mit Hilfe der Methode System::getNumberOfCPUs() abgefragt werden.

Zu beachten
wird von kernel_init() aufgerufen
Rückgabe
true falls die Erkennung erfolgreich war

◆ isOnlineCPU()

bool System::isOnlineCPU ( uint8_t  cpu)

Gibt an ob die gegegebene CPU erfolgreich gebootetet ist.

Parameter
cpuID der abzufragenden CPU
Rückgabe
true falls erfolgreich gebootet

◆ setupThisProcessor()

void System::setupThisProcessor ( )

Initialisiere den Prozessor.

Markiere CPU als online und ordne die eindeutige LAPIC ID der CPU ID zu