提交 5cc1d920 编写于 作者: R rofl0r

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.
上级 bf84967c
#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 <sys/syscall.h>
#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))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册