From 5cc1d920ba21e9f7672438e86fa11a0db52e23ea Mon Sep 17 00:00:00 2001 From: rofl0r Date: Tue, 7 Jan 2014 16:49:23 +0100 Subject: [PATCH] internal/syscall.h: add syscall_arg_t macro some 32-on-64 archs require that the actual syscall args be long long. in that case syscall_arch.h can define syscall_arg_t to whatever it needs and syscall.h picks it up. all other archs just use long as usual. --- src/internal/syscall.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/internal/syscall.h b/src/internal/syscall.h index f8d425af..b203d6bb 100644 --- a/src/internal/syscall.h +++ b/src/internal/syscall.h @@ -1,12 +1,6 @@ #ifndef _INTERNAL_SYSCALL_H #define _INTERNAL_SYSCALL_H -#if defined(__PIC__) && (100*__GNUC__+__GNUC_MINOR__ >= 303) -__attribute__((visibility("protected"))) -#endif -long __syscall_ret(unsigned long), __syscall(long, ...), - __syscall_cp(long, long, long, long, long, long, long); - #include #include "syscall_arch.h" @@ -14,6 +8,17 @@ long __syscall_ret(unsigned long), __syscall(long, ...), #define __scc(X) (long) (X) #endif +#ifndef syscall_arg_t +#define syscall_arg_t long +#endif + +#if defined(__PIC__) && (100*__GNUC__+__GNUC_MINOR__ >= 303) +__attribute__((visibility("protected"))) +#endif +long __syscall_ret(unsigned long), __syscall(syscall_arg_t, ...), + __syscall_cp(syscall_arg_t, syscall_arg_t, syscall_arg_t, syscall_arg_t, + syscall_arg_t, syscall_arg_t, syscall_arg_t); + #define __syscall1(n,a) __syscall1(n,__scc(a)) #define __syscall2(n,a,b) __syscall2(n,__scc(a),__scc(b)) #define __syscall3(n,a,b,c) __syscall3(n,__scc(a),__scc(b),__scc(c)) -- 2.25.1