"Interrupt Descriptor Table (IDT) More...
Classes | |
| union | InterruptDescriptor.__unnamed__ | 
Structs | |
| struct | InterruptDescriptor | 
| struct | InterruptDescriptor.__unnamed__.__unnamed__ | 
| struct | Register | 
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... | |
"Interrupt Descriptor Table (IDT)
| union IDT::InterruptDescriptor.__unnamed__ | 
| Class Members | ||
|---|---|---|
| __unnamed__ | __unnamed__ | |
| uint16_t | flags | |
| enum IDT::Gate | 
| enum IDT::GateSize | 
| enum IDT::DPL | 
| 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.
| 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 |