Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

Idt Class Reference

#include <idt.h>

List of all members.

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


Member Function Documentation

void Idt::get Pseudo_descriptor desc  )  [inline, static]
 

Address Idt::idt  )  [inline, static]
 

FIASCO_INIT void Idt::init  )  [static]
 

IDT initialization function.

Sets up initial interrupt vectors. It also write-protects the IDT because of the infamous Pentium F00F bug.

FIASCO_INIT void Idt::init_table Idt_init_entry *  src  )  [static]
 

void Idt::set Pseudo_descriptor desc  )  [inline, static]
 

IDT loading function.

Loads IDT base and limit into the CPU.

Parameters:
desc IDT descriptor (base address, limit)

void Idt::set_entry unsigned  vector,
Address  entry,
bool  user
[static]
 

IDT patching function.

Allows to change interrupt gate vectors at runtime. It makes the IDT writable for the duration of this operation.

Parameters:
vector interrupt vector to be modified
func new handler function for this interrupt vector
user true if user mode can use this vector, false otherwise

void Idt::set_timer_vector_run void   )  [static]
 

Set IDT vector to the normal timer interrupt handler.

void Idt::set_timer_vector_stop void   )  [static]
 

Set IDT vector to a dummy vector if Config::getchar_does_hlt is true.

void Idt::set_writable bool  writable  )  [static, private]
 

IDT write-protect/write-unprotect function.

Parameters:
writable true if IDT should be made writable, false otherwise


Friends And Related Function Documentation

friend class Jdb_kern_info_bench [friend]
 


Member Data Documentation

const Address Idt::_idt = Mem_layout::Idt [static, private]
 

const unsigned Idt::_idt_max = 0x40 [static]
 


The documentation for this class was generated from the following files:
Generated on Mon Sep 26 14:20:14 2005 for Fiasco by  doxygen 1.4.2