aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68k/kernel/traps.c
diff options
context:
space:
mode:
authorRoman Zippel <zippel@linux-m68k.org>2006-06-25 08:46:58 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-25 13:00:56 -0400
commit92445eaaadc1f03f5a177ecc957bda76bf2ba8d5 (patch)
treee327dc2b95b3fe34183428314d6b6e0700e9e72b /arch/m68k/kernel/traps.c
parentf2325ecebc5b7988fd49968bd3a660fd1594dc84 (diff)
[PATCH] m68k: separate handler for auto and user vector interrupt
Use separate entry points for auto and user vector interrupts and cleanup naming a little. Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/m68k/kernel/traps.c')
-rw-r--r--arch/m68k/kernel/traps.c55
1 files changed, 7 insertions, 48 deletions
diff --git a/arch/m68k/kernel/traps.c b/arch/m68k/kernel/traps.c
index 9adf378f8f1e..b19b951fd3e7 100644
--- a/arch/m68k/kernel/traps.c
+++ b/arch/m68k/kernel/traps.c
@@ -45,7 +45,6 @@
45asmlinkage void system_call(void); 45asmlinkage void system_call(void);
46asmlinkage void buserr(void); 46asmlinkage void buserr(void);
47asmlinkage void trap(void); 47asmlinkage void trap(void);
48asmlinkage void inthandler(void);
49asmlinkage void nmihandler(void); 48asmlinkage void nmihandler(void);
50#ifdef CONFIG_M68KFPU_EMU 49#ifdef CONFIG_M68KFPU_EMU
51asmlinkage void fpu_emu(void); 50asmlinkage void fpu_emu(void);
@@ -53,51 +52,7 @@ asmlinkage void fpu_emu(void);
53 52
54e_vector vectors[256] = { 53e_vector vectors[256] = {
55 [VEC_BUSERR] = buserr, 54 [VEC_BUSERR] = buserr,
56 [VEC_ADDRERR] = trap,
57 [VEC_ILLEGAL] = trap,
58 [VEC_ZERODIV] = trap,
59 [VEC_CHK] = trap,
60 [VEC_TRAP] = trap,
61 [VEC_PRIV] = trap,
62 [VEC_TRACE] = trap,
63 [VEC_LINE10] = trap,
64 [VEC_LINE11] = trap,
65 [VEC_RESV12] = trap,
66 [VEC_COPROC] = trap,
67 [VEC_FORMAT] = trap,
68 [VEC_UNINT] = trap,
69 [VEC_RESV16] = trap,
70 [VEC_RESV17] = trap,
71 [VEC_RESV18] = trap,
72 [VEC_RESV19] = trap,
73 [VEC_RESV20] = trap,
74 [VEC_RESV21] = trap,
75 [VEC_RESV22] = trap,
76 [VEC_RESV23] = trap,
77 [VEC_SPUR] = inthandler,
78 [VEC_INT1] = inthandler,
79 [VEC_INT2] = inthandler,
80 [VEC_INT3] = inthandler,
81 [VEC_INT4] = inthandler,
82 [VEC_INT5] = inthandler,
83 [VEC_INT6] = inthandler,
84 [VEC_INT7] = inthandler,
85 [VEC_SYS] = system_call, 55 [VEC_SYS] = system_call,
86 [VEC_TRAP1] = trap,
87 [VEC_TRAP2] = trap,
88 [VEC_TRAP3] = trap,
89 [VEC_TRAP4] = trap,
90 [VEC_TRAP5] = trap,
91 [VEC_TRAP6] = trap,
92 [VEC_TRAP7] = trap,
93 [VEC_TRAP8] = trap,
94 [VEC_TRAP9] = trap,
95 [VEC_TRAP10] = trap,
96 [VEC_TRAP11] = trap,
97 [VEC_TRAP12] = trap,
98 [VEC_TRAP13] = trap,
99 [VEC_TRAP14] = trap,
100 [VEC_TRAP15] = trap,
101}; 56};
102 57
103/* nmi handler for the Amiga */ 58/* nmi handler for the Amiga */
@@ -132,12 +87,16 @@ void __init trap_init (void)
132{ 87{
133 int i; 88 int i;
134 89
135 for (i = 48; i < 64; i++) 90 vectors[VEC_SPUR] = bad_inthandler;
91 for (i = VEC_INT1; i <= VEC_INT7; i++)
92 vectors[i] = auto_inthandler;
93
94 for (i = 0; i < VEC_USER; i++)
136 if (!vectors[i]) 95 if (!vectors[i])
137 vectors[i] = trap; 96 vectors[i] = trap;
138 97
139 for (i = 64; i < 256; i++) 98 for (i = VEC_USER; i < 256; i++)
140 vectors[i] = inthandler; 99 vectors[i] = mach_inthandler;
141 100
142#ifdef CONFIG_M68KFPU_EMU 101#ifdef CONFIG_M68KFPU_EMU
143 if (FPU_IS_EMU) 102 if (FPU_IS_EMU)