#include <idt.h>
The interrupt table is arranged into the following sections.
| 0x60 | LINT0 | local interrupt 0 |
| 0x61 | LINT1 | local interrupt 1 |
| 0x62 | ERROR | APIC error notification |
| 0x63 | PCINT | performance monitoring counter |
| 0x64 | TIMER | APIC timer |
| 0x65 | RFU65 | reserved for future use |
| 0x66 | RFU66 | reserved for future use |
| 0x67 | RFU67 | reserved for future use |
| 0x6f | SPIV | spurious interrupt |
| 0x70 | SYSCALL0 | userland entry point |
| 0x71 | SYSCALL1 | reserved for future use |
| 0x72 | SYSCALL2 | reserved for future use |
| 0x73 | SYSCALL3 | reserved for future use |
| 0x74 | SYSCALL4 | reserved for future use |
| 0x75 | SYSCALL5 | reserved for future use |
| 0x76 | SYSCALL6 | reserved for future use |
| 0x77 | SYSCALL7 | reserved for future use |
Public Types | |
| typedef InterruptGate | value_type |
| typedef InterruptGate & | reference |
| typedef const InterruptGate & | const_reference |
| typedef InternalIdt::iterator | iterator |
| typedef InternalIdt::const_iterator | const_iterator |
| typedef std::ptrdiff_t | difference_type |
| typedef std::size_t | size_type |
Public Member Functions | |
| IDT (int size) | |
Allocates an IDT with size entires (all default initialized) and sets the current processor's interrupt descriptor table register (IDTR) with the base address and limit of the new table. | |
| void | insert (unsigned int irq, const InterruptGate &) |
Inserts a new interrupt/trap entry in the IDT at slot irq. | |
| void | dispatchInterrupt (int interruptNumber) |
| Invokes all the chained interrupt trampolines until one has volunteered to handle the interrupt or the end of teh chain is reached. | |
| void | disableInterrupts () |
| Disables interrupts for the CPU. | |
| void | enableInterrupts () |
| Enables interrupts for the CPU. | |
| std::ostream & | printStream (std::ostream &ostr) const |
| Dumps the IDT to an output stream. | |
Capacity | |
| *size_type | size () const |
| Gets the capacity of the Idt. | |
| bool | empty () const |
| Indicates that the Idt contains no memory. | |
Iteration | |
| *iterator | begin () |
| const_iterator | begin () const |
| iterator | end () |
| const_iterator | end () const |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Allocates an IDT with
Here is the call graph for this function: ![]() |
|
|
|
|
|
|
|
|
Disables interrupts for the CPU.
|
|
|
Invokes all the chained interrupt trampolines until one has volunteered to handle the interrupt or the end of teh chain is reached.
|
|
|
Indicates that the Idt contains no memory.
|
|
|
Enables interrupts for the CPU.
|
|
|
|
|
|
|
|
||||||||||||
|
Inserts a new interrupt/trap entry in the IDT at slot
If |
|
|
Dumps the IDT to an output stream. This function is aimed at debugging.
|
|
|
Gets the capacity of the Idt.
|
1.4.2