?? traps.c.txt
字號:
any questions,send email to netxiong@eyou.com
相關文件
/include/asm-i386/unistd.h
/arch/i386/kernel/entry.S
*****************調用門的初始化***************************
(1)void __init trap_init(void) //主要完成各種調用門的初始化
set_trap_gate(x,&xxxx_xxxx); //陷阱門
……
set_system_gate(SYSCALL_VECTOR,&system_call); //系統調用的入口
**********************************************************
*****************輔助函數**********************************
(1)void set_intr_gate(unsigned int n, void *addr)
_set_gate(idt_table+n,14,0,addr);
(2)static void __init set_trap_gate(unsigned int n, void *addr)
_set_gate(idt_table+n,15,0,addr);
(3)static void __init set_system_gate(unsigned int n, void *addr)
_set_gate(idt_table+n,15,3,addr);
(4)static void __init set_call_gate(void *a, void *addr)
_set_gate(a,12,3,addr);
以上的函數就是設置各種門的函數,他們都調用同一個函數 _set_gate
(5)#define _set_gate(gate_addr,type,dpl,addr)
參數type是類型,12是386調用門,14是386中斷門,15是386陷阱門
參數dpl是級別,0是內核級,3是用戶級
***********************************************************
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -