OOStuBS/MPStuBS
Plugbox Klassenreferenz

Abstraktion einer Interruptvektortabelle. Mehr ...

#include <plugbox.h>

Zusammengehörigkeiten von Plugbox:

Öffentliche Typen

enum  Vector {
  timer = 32, keyboard = 33, serial = 36, assassin = 100,
  wakeup = 101
}
 Liste der verwendeten Interruptvektoren. Mehr ...
 

Öffentliche Methoden

 Plugbox ()
 Initialisierung der Gate map mit einem Default Gate. Mehr ...
 
void assign (unsigned int vector, Gate *gate)
 Einstöpseln einer Behandlungsroutine, die in Form eines Gate-Objekts vorhanden sein muss. Mehr ...
 
Gatereport (unsigned int vector)
 Abfrage eines eingetragenen Gate Objekts. Mehr ...
 

Ausführliche Beschreibung

Abstraktion einer Interruptvektortabelle.

Damit kann man die Adresse der Behandlungsroutine für jeden Hardware- und Softwareinterrupt und jede Prozessorexception festlegen. Jede Unterbrechungsquelle wird durch ein Gate-Objekt repräsentiert. Diese liegen in einem Feld (256 Elemente). Der Index in dieses Feld ist dabei die Vektornummer.

Dokumentation der Aufzählungstypen

◆ Vector

Liste der verwendeten Interruptvektoren.

In OOStuBS benötigen wir lediglich Vektornummern für den Timerbaustein und die Tastatur, in MPStuBS noch weitere zur Synchronisation zwischen CPUs.

Aufzählungswerte
timer 

Interruptvektornummer für den Timerinterrupt.

keyboard 

Interruptvektornummer für den Keyboardinterrupt.

serial 

Interruptvektornummer für den Empfangsinterrupt der seriellen Schnittstelle.

assassin 

Interruptvektornummer für den Assassin; nur in MPStuBS benötigt.

wakeup 

Interruptvektornummer zum Aufwecken von schlafenden CPUs; nur in MPStubs benötigt.

Beschreibung der Konstruktoren und Destruktoren

◆ Plugbox()

Plugbox::Plugbox ( )

Initialisierung der Gate map mit einem Default Gate.

Im Konstruktor wird für alle Unterbrechungen und Ausnahmen das global bekannte Panic Objekt panic eingetragen, das eine minimale Unterbrechungsbehandlung sicherstellt.

Dokumentation der Elementfunktionen

◆ assign()

void Plugbox::assign ( unsigned int  vector,
Gate gate 
)

Einstöpseln einer Behandlungsroutine, die in Form eines Gate-Objekts vorhanden sein muss.

Parameter
vectorInterruptvektor, für den die Behandlungsroutine registriert werden soll.
gateObjekt mit Behandlungsroutine

◆ report()

Gate * Plugbox::report ( unsigned int  vector)

Abfrage eines eingetragenen Gate Objekts.

Parameter
vectorAbzufragende Interruptvektornummer
Rückgabe
Referenz auf das mit vector assoziierte Gate Objekt

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: