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