[MIPS] Define and use vi_handler_t for vectored interrupt handlers.
authorRalf Baechle <ralf@linux-mips.org>
Sun, 6 May 2007 17:31:18 +0000 (18:31 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 11 May 2007 13:28:30 +0000 (14:28 +0100)
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/traps.c
include/asm-mips/system.h

index b511ed3091c5fd61a42d0791c480dd529977a7a0..200de027f354ec8e0bb0919ab707f0ff4e640af1 100644 (file)
@@ -1128,7 +1128,7 @@ void mips_srs_free(int set)
        clear_bit(set, &sr->sr_allocated);
 }
 
-static void *set_vi_srs_handler(int n, void *addr, int srs)
+static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs)
 {
        unsigned long handler;
        unsigned long old_handler = vi_handlers[n];
@@ -1217,7 +1217,7 @@ static void *set_vi_srs_handler(int n, void *addr, int srs)
        return (void *)old_handler;
 }
 
-void *set_vi_handler(int n, void *addr)
+void *set_vi_handler(int n, vi_handler_t addr)
 {
        return set_vi_srs_handler(n, addr, 0);
 }
index 3713d256d36958d52d6ac750315f414c3610ff77..bb0b289dbc9ef25ac7f211b620309ab66bfbe76b 100644 (file)
@@ -464,7 +464,10 @@ static inline unsigned long __cmpxchg_local(volatile void * ptr,
 
 extern void set_handler (unsigned long offset, void *addr, unsigned long len);
 extern void set_uncached_handler (unsigned long offset, void *addr, unsigned long len);
-extern void *set_vi_handler (int n, void *addr);
+
+typedef void (*vi_handler_t)(void);
+extern void *set_vi_handler (int n, vi_handler_t addr);
+
 extern void *set_except_vector(int n, void *addr);
 extern unsigned long ebase;
 extern void per_cpu_trap_init(void);