nckernel
0.1
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
x86
include
idt.h
Go to the documentation of this file.
1
6
#define LOW16(base) ((base) & 0x0000FFFF)
7
#define HIGH16(base) ((base) >> 16)
8
9
enum
{
10
SIZE16
= 0,
11
SIZE32
= 1,
12
};
13
14
enum
{
15
TASK
= 0x05,
16
INTERRUPT
= 0x06,
17
TRAP
= 0x07,
18
};
19
20
enum
{
21
IDT_MAX_ENTRY
= 0x100,
22
IDT_MAX_BIT
= 8,
23
24
IDT_SEGMENT_PRESENT
= 1,
25
IDT_SEGMENT_NPRESENT
= 0,
26
27
IDT_USER
= 3,
28
IDT_KERNEL
= 0,
29
};
30
34
struct
task_gate
{
35
unsigned
long
unused0
:16;
36
unsigned
long
selector
:16;
37
unsigned
long
unused1
:8;
38
unsigned
long
reserved
:5;
39
unsigned
long
dpl
:2;
40
unsigned
long
p
:1;
41
unsigned
long
unused2
:16;
42
}
__PACKED
;
43
47
struct
interrupt_gate
{
48
unsigned
long
offset0
:16;
49
unsigned
long
selector
:16;
50
unsigned
long
unused
:5;
51
unsigned
long
reserved0
:3;
52
unsigned
long
type
:3;
53
unsigned
long
d
:1;
54
unsigned
long
reserved1
:1;
55
unsigned
long
dpl
:2;
56
unsigned
long
p
:1;
57
unsigned
long
offset1
:16;
58
}
__PACKED
;
59
63
struct
idtr
{
64
unsigned
short
limit
;
65
unsigned
long
base
;
66
}
__PACKED
;
67
71
struct
ecode
{
72
unsigned
long
ext
:1;
73
unsigned
long
idt
:1;
74
unsigned
long
ti
:1;
75
unsigned
long
selector
:29;
76
}
__PACKED
;
77
81
extern
void
interrupt_init
(
void
);
82
Generated on Thu Nov 7 2013 02:45:25 for nckernel by
1.8.4