| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /*  | 
| Jeff Dike | f87ea91 | 2008-02-04 22:31:29 -0800 | [diff] [blame] | 2 |  * Copyright (C) 2000 - 2008 Jeff Dike (jdike@{addtoit,linux.intel}.com) | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 3 |  * Licensed under the GPL | 
 | 4 |  */ | 
 | 5 |  | 
 | 6 | #include "asm/unistd.h" | 
 | 7 | #include "sysdep/ptrace.h" | 
 | 8 |  | 
 | 9 | typedef long syscall_handler_t(struct pt_regs); | 
 | 10 |  | 
 | 11 | /* Not declared on x86, incompatible declarations on x86_64, so these have | 
 | 12 |  * to go here rather than in sys_call_table.c | 
 | 13 |  */ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 14 | extern syscall_handler_t sys_rt_sigaction; | 
 | 15 |  | 
| Jeff Dike | e32dacb | 2005-09-03 15:57:42 -0700 | [diff] [blame] | 16 | extern syscall_handler_t *sys_call_table[]; | 
 | 17 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 18 | #define EXECUTE_SYSCALL(syscall, regs) \ | 
| Jeff Dike | f87ea91 | 2008-02-04 22:31:29 -0800 | [diff] [blame] | 19 | 	((long (*)(struct syscall_args)) \ | 
 | 20 | 	 (*sys_call_table[syscall]))(SYSCALL_ARGS(®s->regs)) |