IOAPIC Klassenreferenz
Abstraktion des IO-APICs, der zur Verwaltung der externen Interrupts dient.  
Mehr ...
#include <ioapic.h>
Aufstellung aller Elemente
 | 
 Ă–ffentliche Methoden | 
| 
  | IOAPIC () | 
|   | Konstruktor Tut nichts. Initialisierung erfolgt mit init(). 
  | 
| void  | init () | 
|   | Initialisierung der IOAPICs.  
  | 
| void  | config (unsigned char slot, Plugbox::Vector vector) | 
|   | Zuordnung eines Vektors in der Interruptvektortabelle zu einem externen Interrupt.  
  | 
| void  | allow (unsigned char slot) | 
|   | Sorgt dafĂĽr, dass Unterbrechungen des zugeordneten Gerätes an die CPU(s) weitergereicht werden. Um eine Unterbrechungsbehandlung zu ermöglichen, muss zusätzlich CPU::enable_int() aufgerufen werden.  
  | 
| void  | forbid (unsigned char slot) | 
|   | Ermöglicht einzelne Interrupts selektiv zu sperren.  
  | 
| bool  | status (unsigned char slot) | 
|   | Ermöglicht eine Abfrage des Maskierungsstatus fĂĽr einzelne Interrupts.  
  | 
AusfĂĽhrliche Beschreibung
Abstraktion des IO-APICs, der zur Verwaltung der externen Interrupts dient. 
Kernstück des IOAPICs ist die IO-Redirection Table. Dort lässt sich frei konfigurieren, welchem Interruptvektor eine bestimmte externe Unterbrechung zugeordnet werden soll. Ein Eintrag in dieser Tabelle ist 64 Bit breit. struct IOREDTBL_L und struct IOREDTBL_H sind Bitfelder, die die einzelnen Einstellungen eines Eintrages zugänglich machen. 
Dokumentation der Elementfunktionen
Initialisierung der IOAPICs. 
Dabei werden alle Einträge in der IO-Redirection Table mit einem sinnvollen Wert vorbelegt. Das Feld, welches den auszulösenden Interruptvektor angibt, sollte mit einer Vektornummer vorbelegt werden, die so konfiguriert ist, dass sie den Panic-Handler auslöst. Initial sollten auch alle externen Interrupts im IOAPIC deaktiviert werden. Neben der Vektortabelle muss auch die APICID im IOAPICID-Register auf den Wert gesetzt werden, der während des Bootvorgangs aus den Systembeschreibungstabellen gelesen wurde. (APICSystem::getIOAPICID()) 
 
 
Zuordnung eines Vektors in der Interruptvektortabelle zu einem externen Interrupt. 
- Parameter:
 - 
  
     | slot  | Nummer des zu konfigurierend Slots (und damit des dazugehörigen externen Interrupts) in der IO-Redirection Table.  | 
     | vector  | Nummer des Vektors, der durch den mit slot ausgewählten Interrupt verknĂĽpft werden soll.  | 
  
 
 
 
      
        
          | void IOAPIC::allow            | 
          ( | 
          unsigned char  | 
           slot           | 
           )  | 
           | 
        
      
 
Sorgt dafür, dass Unterbrechungen des zugeordneten Gerätes an die CPU(s) weitergereicht werden. Um eine Unterbrechungsbehandlung zu ermöglichen, muss zusätzlich CPU::enable_int() aufgerufen werden. 
- Parameter:
 - 
  
     | interrupt  | gibt an, welcher Interrupt aktiviert werden soll.  | 
  
 
 
 
      
        
          | void IOAPIC::forbid            | 
          ( | 
          unsigned char  | 
           slot           | 
           )  | 
           | 
        
      
 
Ermöglicht einzelne Interrupts selektiv zu sperren. 
- Parameter:
 - 
  
     | interrupt  | gibt an, welcher Interrupt gesperrt werden soll.  | 
  
 
 
 
      
        
          | bool IOAPIC::status            | 
          ( | 
          unsigned char  | 
           slot           | 
           )  | 
           | 
        
      
 
Ermöglicht eine Abfrage des Maskierungsstatus für einzelne Interrupts. 
- Parameter:
 - 
  
     | interrupt  | gibt an, fĂĽr welchen Interrupt der Status abgefragt werden soll.  | 
  
 
- RĂĽckgabe:
 - gibt true zurĂĽck, falls der Interrupt zugelassen ist und false, falls er ausmaskiert wurde. 
 
 
 
Die Dokumentation fĂĽr diese Klasse wurde erzeugt aufgrund der Dateien: