ncloader  0.1
 모두 데이타 구조 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 매크로 그룹들 페이지들
x86.h
이 파일의 문서화 페이지로 가기
1 
9 enum gate_size {
10  SIZE16 = 0,
11  SIZE32 = 1,
12 };
13 
17 enum idt_type {
18  TASK = 0x05,
19  INTERRUPT = 0x06,
20  TRAP = 0x07,
21 };
22 
26 struct task_gate {
27  unsigned long unused0:16;
28  unsigned long selector:16;
29  unsigned long unused1:8;
30  unsigned long reserved:5;
31  unsigned long dpl:2;
32  unsigned long p:1;
33  unsigned long unused2:16;
34 } __PACKED;
35 
40  unsigned long offset0:16;
41  unsigned long selector:16;
42  unsigned long unused:5;
43  unsigned long reserved0:3;
44  unsigned long type:3;
45  unsigned long d:1;
46  unsigned long reserved1:1;
47  unsigned long dpl:2;
48  unsigned long p:1;
49  unsigned long offset1:16;
50 } __PACKED;
51 
55 struct idtr {
57  unsigned short limit;
58  unsigned long base;
59 } __PACKED;
61 
65 struct error_code {
67  unsigned long ext:1;
68  unsigned long idt:1;
69  unsigned long ti:1;
70  unsigned long selector:29;
71 } __PACKED;
73 
87 struct pt_regs {
88  struct {
89  unsigned long edi;
90  unsigned long esi;
91  unsigned long ebp;
92  unsigned long esp;
93  unsigned long ebx;
94  unsigned long edx;
95  unsigned long ecx;
96  unsigned long eax;
97  } pushad;
100  unsigned short ds;
101  unsigned short reserved0;
102  unsigned short es;
103  unsigned short reserved1;
104  unsigned short fs;
105  unsigned short reserved2;
106  unsigned short gs;
107  unsigned short reserved3;
108 
109  unsigned long irq;
110  unsigned long ecode;
112  unsigned long eip;
113  unsigned long cs;
114  unsigned long eflags;
115 };
116 
120 struct pt_regs_user {
121  unsigned long esp;
122  unsigned long ss;
123 };
124 
132  unsigned long ret_addr;
133  unsigned long arg;
134 };
135