Ver código fonte

[MIPS] Define and use vi_handler_t for vectored interrupt handlers.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Ralf Baechle 18 anos atrás
pai
commit
ef300e4223
2 arquivos alterados com 6 adições e 3 exclusões
  1. 2 2
      arch/mips/kernel/traps.c
  2. 4 1
      include/asm-mips/system.h

+ 2 - 2
arch/mips/kernel/traps.c

@@ -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);
 }

+ 4 - 1
include/asm-mips/system.h

@@ -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);