extable_32.c
来自「linux 内核源代码」· C语言 代码 · 共 36 行
C
36 行
/* * linux/arch/i386/mm/extable.c */#include <linux/module.h>#include <linux/spinlock.h>#include <asm/uaccess.h>int fixup_exception(struct pt_regs *regs){ const struct exception_table_entry *fixup;#ifdef CONFIG_PNPBIOS if (unlikely(SEGMENT_IS_PNP_CODE(regs->xcs))) { extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp; extern u32 pnp_bios_is_utter_crap; pnp_bios_is_utter_crap = 1; printk(KERN_CRIT "PNPBIOS fault.. attempting recovery.\n"); __asm__ volatile( "movl %0, %%esp\n\t" "jmp *%1\n\t" : : "g" (pnp_bios_fault_esp), "g" (pnp_bios_fault_eip)); panic("do_trap: can't hit this"); }#endif fixup = search_exception_tables(regs->eip); if (fixup) { regs->eip = fixup->fixup; return 1; } return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?