📄 vectors.c
字号:
/***************************************************************************//* * linux/arch/m68knommu/platform/5307/vectors.c * * Copyright (C) 1999-2003, Greg Ungerer <gerg@snapgear.com> *//***************************************************************************/#include <linux/config.h>#include <linux/kernel.h>#include <linux/sched.h>#include <linux/param.h>#include <linux/init.h>#include <linux/unistd.h>#include <linux/delay.h>#include <asm/irq.h>#include <asm/dma.h>#include <asm/traps.h>#include <asm/machdep.h>#include <asm/coldfire.h>#include <asm/mcftimer.h>#include <asm/mcfsim.h>#include <asm/mcfdma.h>#include <asm/mcfwdebug.h>/***************************************************************************/#ifdef TRAP_DBG_INTERRUPTasmlinkage void dbginterrupt_c(struct frame *fp){ extern void dump(struct pt_regs *fp); printk(KERN_DEBUG "%s(%d): BUS ERROR TRAP\n", __FILE__, __LINE__); dump((struct pt_regs *) fp); asm("halt");}#endif/***************************************************************************/extern e_vector *_ramvec;void set_evector(int vecnum, void (*handler)(void)){ if (vecnum >= 0 && vecnum <= 255) _ramvec[vecnum] = handler;}/***************************************************************************//* Assembler routines */asmlinkage void buserr(void);asmlinkage void trap(void);asmlinkage void system_call(void);asmlinkage void inthandler(void);void __init coldfire_trap_init(void){ int i; /* * There is a common trap handler and common interrupt * handler that handle almost every vector. We treat * the system call and bus error special, they get their * own first level handlers. */ for (i = 3; (i <= 23); i++) _ramvec[i] = trap; for (i = 33; (i <= 63); i++) _ramvec[i] = trap; for (i = 24; (i <= 31); i++) _ramvec[i] = inthandler; for (i = 64; (i < 255); i++) _ramvec[i] = inthandler; _ramvec[255] = 0; _ramvec[2] = buserr; _ramvec[32] = system_call;#ifdef TRAP_DBG_INTERRUPT _ramvec[12] = dbginterrupt;#endif}/***************************************************************************/void coldfire_reset(void){ HARD_RESET_NOW();}/***************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -