diff options
author | Roman Zippel <zippel@linux-m68k.org> | 2006-06-25 08:46:58 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 13:00:56 -0400 |
commit | 92445eaaadc1f03f5a177ecc957bda76bf2ba8d5 (patch) | |
tree | e327dc2b95b3fe34183428314d6b6e0700e9e72b /arch/m68k/kernel/traps.c | |
parent | f2325ecebc5b7988fd49968bd3a660fd1594dc84 (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.c | 55 |
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 @@ | |||
45 | asmlinkage void system_call(void); | 45 | asmlinkage void system_call(void); |
46 | asmlinkage void buserr(void); | 46 | asmlinkage void buserr(void); |
47 | asmlinkage void trap(void); | 47 | asmlinkage void trap(void); |
48 | asmlinkage void inthandler(void); | ||
49 | asmlinkage void nmihandler(void); | 48 | asmlinkage void nmihandler(void); |
50 | #ifdef CONFIG_M68KFPU_EMU | 49 | #ifdef CONFIG_M68KFPU_EMU |
51 | asmlinkage void fpu_emu(void); | 50 | asmlinkage void fpu_emu(void); |
@@ -53,51 +52,7 @@ asmlinkage void fpu_emu(void); | |||
53 | 52 | ||
54 | e_vector vectors[256] = { | 53 | e_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) |