Module: xenomai-forge Branch: master Commit: dc0e97b56a42a79f009a1a8b4a18e4402f5d962f URL: http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=dc0e97b56a42a79f009a1a8b4a18e4402f5d962f
Author: Philippe Gerum <r...@xenomai.org> Date: Thu Dec 1 22:40:49 2011 +0100 nucleus/shadow: force common calling convention for syscalls --- include/asm-generic/syscall.h | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/include/asm-generic/syscall.h b/include/asm-generic/syscall.h index 1924bb5..97894ae 100644 --- a/include/asm-generic/syscall.h +++ b/include/asm-generic/syscall.h @@ -88,7 +88,12 @@ struct pt_regs; struct xnsysent { - int (*svc)(u_long arg, ...); + /* + * CAUTION: no varargs, we want the calling convention for + * regular functions to apply. + */ + int (*svc)(u_long arg1, u_long arg2, u_long arg3, + u_long arg4, u_long arg5); /* Syscall must run into the Linux domain. */ #define __xn_exec_lostage 0x1 @@ -126,7 +131,7 @@ struct xnsysent { unsigned long flags; }; -#define __syscast__(fn) ((int (*)(u_long, ...))(fn)) +#define __syscast__(fn) ((int (*)(u_long, u_long, u_long, u_long, u_long))(fn)) #define SKINCALL_DEF(nr, fn, fl) \ [nr] = { .svc = __syscast__(fn), .flags = __xn_exec_##fl } _______________________________________________ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git