C++ Crashkurs
IDT Namespace Reference
"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... | |
Detailed Description
"Interrupt Descriptor Table (IDT)
Class Documentation
union IDT::InterruptDescriptor.__unnamed__ |
Class Members | ||
---|---|---|
__unnamed__ | __unnamed__ | |
uint16_t | flags |
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