当前位置: 技术问答>linux和unix
在阅读中断的代码遇到点问题,麻烦大虾解答
来源: 互联网 发布时间:2016-12-27
本文导语: 1、 #define BUILD_IRQ(nr) asmlinkage void IRQ_NAME(nr); __asm__( "n.p2alignn" "IRQ" #nr "_interrupt:nt" "push $" #nr "-256 ; " "jmp common_interrupt"); common_interrupt我搜索了源码,没有找到? 2、 set_trap_gate(0,÷_error); set_intr_gate...
1、
#define BUILD_IRQ(nr)
asmlinkage void IRQ_NAME(nr);
__asm__(
"n.p2alignn"
"IRQ" #nr "_interrupt:nt"
"push $" #nr "-256 ; "
"jmp common_interrupt");
common_interrupt我搜索了源码,没有找到?
2、
set_trap_gate(0,÷_error);
set_intr_gate(1,&debug);
set_intr_gate(2,&nmi);
set_system_intr_gate(3, &int3); /* int3-5 can be called from all */
set_system_gate(4,&overflow);
set_system_gate(5,&bounds);
set_trap_gate(6,&invalid_op);
set_trap_gate(7,&device_not_available);
set_task_gate(8,GDT_ENTRY_DOUBLEFAULT_TSS);
set_trap_gate(9,&coprocessor_segment_overrun);
set_trap_gate(10,&invalid_TSS);
set_trap_gate(11,&segment_not_present);
set_trap_gate(12,&stack_segment);
set_trap_gate(13,&general_protection);
set_intr_gate(14,&page_fault);
set_trap_gate(15,&spurious_interrupt_bug);
set_trap_gate(16,&coprocessor_error);
set_trap_gate(17,&alignment_check);
set_trap_gate(18,&machine_check);
set_trap_gate(19,&simd_coprocessor_error);
里面的中断处理函数我也没有搜索到具体的函数实现。
不知道是否我的代码不全,他们的具体实现和定义在哪呢? 俺用的是si看的代码
#define BUILD_IRQ(nr)
asmlinkage void IRQ_NAME(nr);
__asm__(
"n.p2alignn"
"IRQ" #nr "_interrupt:nt"
"push $" #nr "-256 ; "
"jmp common_interrupt");
common_interrupt我搜索了源码,没有找到?
2、
set_trap_gate(0,÷_error);
set_intr_gate(1,&debug);
set_intr_gate(2,&nmi);
set_system_intr_gate(3, &int3); /* int3-5 can be called from all */
set_system_gate(4,&overflow);
set_system_gate(5,&bounds);
set_trap_gate(6,&invalid_op);
set_trap_gate(7,&device_not_available);
set_task_gate(8,GDT_ENTRY_DOUBLEFAULT_TSS);
set_trap_gate(9,&coprocessor_segment_overrun);
set_trap_gate(10,&invalid_TSS);
set_trap_gate(11,&segment_not_present);
set_trap_gate(12,&stack_segment);
set_trap_gate(13,&general_protection);
set_intr_gate(14,&page_fault);
set_trap_gate(15,&spurious_interrupt_bug);
set_trap_gate(16,&coprocessor_error);
set_trap_gate(17,&alignment_check);
set_trap_gate(18,&machine_check);
set_trap_gate(19,&simd_coprocessor_error);
里面的中断处理函数我也没有搜索到具体的函数实现。
不知道是否我的代码不全,他们的具体实现和定义在哪呢? 俺用的是si看的代码
|
arch/x86/mm/fault.c
dotraplinkage void __kprobes
do_page_fault(struct pt_regs *regs, unsigned long error_code)
.........