57 lines
1.7 KiB
C++
Executable file
57 lines
1.7 KiB
C++
Executable file
/*
|
|
File: idt.H
|
|
|
|
Author: R. Bettati
|
|
Department of Computer Science
|
|
Texas A&M University
|
|
Date : 09/03/02
|
|
|
|
Description: the Interrupt Description Table (IDT)
|
|
|
|
The IDT contains pointer to low-level exception and interrupt handlers.
|
|
The way the exception handling is set up, all low-level handlers route
|
|
the exception to a single exception dispatcher, which in turn
|
|
calls a high-level exception dispatcher (see file 'exceptions.H').
|
|
|
|
For details see Section 6 of Brandon Friesen's Tutorial
|
|
on OS Kernel Development.
|
|
URL: http://www.osdever.net/bkerndev/Docs/title.htm
|
|
|
|
*/
|
|
|
|
#ifndef _IDT_H_ // include file only once
|
|
#define _IDT_H_
|
|
|
|
/*--------------------------------------------------------------------------*/
|
|
/* DEFINES */
|
|
/*--------------------------------------------------------------------------*/
|
|
|
|
//#define IDT_SIZE 256
|
|
|
|
/*--------------------------------------------------------------------------*/
|
|
/* Class IDT */
|
|
/*--------------------------------------------------------------------------*/
|
|
|
|
class IDT {
|
|
|
|
public:
|
|
|
|
static const int SIZE = 256;
|
|
|
|
static void init();
|
|
/* Initialize the IDT, and fill the 32 first entries with pointers to handle
|
|
the 32 Intel-defined exceptions. After initializing the IDT, these exceptions
|
|
are routed to the exception dispatcher (see 'exceptions.H'). At this point,
|
|
no exception handlers are installed yet.
|
|
*/
|
|
|
|
static void set_gate(unsigned char num, unsigned long base,
|
|
unsigned short sel, unsigned char flags);
|
|
/* Used to install a low-level exception handler in the IDT. For high-level
|
|
exception handlers, use the exception management framework defined in
|
|
file 'exceptions.H'.
|
|
*/
|
|
|
|
};
|
|
|
|
#endif
|