Aufgabe 7: Anwendung
IDT Namespace Reference
"Interrupt Descriptor Table (IDT) More...
| Classes | |
| struct | InterruptDescriptor.__unnamed48__.__unnamed50__ | 
| Enumerations | |
| enum | Gate { GATE_TASK = 0x5 , GATE_INT = 0x6 , GATE_TRAP = 0x7 } | 
| Gate types.  More... | |
| enum | GateSize { GATE_SIZE_16 = 0 , GATE_SIZE_32 = 1 } | 
| Segment type.  More... | |
| enum | DPL { DPL_KERNEL = 0 , DPL_USER = 3 } | 
| Descriptor Privilege Level.  More... | |
| Functions | |
| void | load () | 
| Load the IDT's address and size into the IDT-Register via idtr. | |
| void | handle (uint8_t vector, void *handler, enum Gate type=Gate::GATE_INT, enum GateSize size=GateSize::GATE_SIZE_32, enum DPL dpl=DPL::DPL_KERNEL, bool present=true) | 
| Configure entry point for interrupt handling.  More... | |
Detailed Description
"Interrupt Descriptor Table (IDT)
Class Documentation
| struct IDT::InterruptDescriptor.__unnamed48__.__unnamed50__ | 
Enumeration Type Documentation
| enum IDT::Gate | 
| enum IDT::GateSize | 
| enum IDT::DPL | 
Function Documentation
| void IDT::handle | ( | uint8_t | vector, | 
| void * | handler, | ||
| enum Gate | type = Gate::GATE_INT, | ||
| enum GateSize | size = GateSize::GATE_SIZE_32, | ||
| enum DPL | dpl = DPL::DPL_KERNEL, | ||
| bool | present = true | ||
| ) | 
Configure entry point for interrupt handling.
The provided entry function ("handler") is required to, as first step, save the registers.
- Parameters
- 
  vector Interrupt vector number for which the handler is to be set/changed handler Low-level entry point for interrupt handling type Gate type (Interrupt, Trap, or Task) size 16- or 32-bit dpl Permissions required for enter this interrupt handler (kernel- or user space) present Denotes whether the IDT descriptor is marked as available