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 + -
显示快捷键?