#include <idt.h>
Static Public Member Functions | |
static FIASCO_INIT void | init_table (Idt_init_entry *src) |
static FIASCO_INIT void | init () |
IDT initialization function. | |
static void | set_entry (unsigned vector, Address entry, bool user) |
IDT patching function. | |
static Address | idt () |
static void | set (Pseudo_descriptor *desc) |
IDT loading function. | |
static void | get (Pseudo_descriptor *desc) |
static void | set_timer_vector_run (void) |
Set IDT vector to the normal timer interrupt handler. | |
static void | set_timer_vector_stop (void) |
Set IDT vector to a dummy vector if Config::getchar_does_hlt is true. | |
Static Public Attributes | |
static const unsigned | _idt_max = 0x40 |
Static Private Member Functions | |
static void | set_writable (bool writable) |
IDT write-protect/write-unprotect function. | |
Static Private Attributes | |
static const Address | _idt = Mem_layout::Idt |
Friends | |
class | Jdb_kern_info_bench |
|
|
|
|
|
IDT initialization function. Sets up initial interrupt vectors. It also write-protects the IDT because of the infamous Pentium F00F bug. |
|
|
|
IDT loading function. Loads IDT base and limit into the CPU.
|
|
IDT patching function. Allows to change interrupt gate vectors at runtime. It makes the IDT writable for the duration of this operation.
|
|
Set IDT vector to the normal timer interrupt handler.
|
|
Set IDT vector to a dummy vector if Config::getchar_does_hlt is true.
|
|
IDT write-protect/write-unprotect function.
|
|
|
|
|
|
|