mirror of
https://github.com/fluencelabs/musl
synced 2025-05-30 16:11:40 +00:00
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.
This commit is contained in:
parent
bf84967cae
commit
5cc1d920ba
@ -1,12 +1,6 @@
|
|||||||
#ifndef _INTERNAL_SYSCALL_H
|
#ifndef _INTERNAL_SYSCALL_H
|
||||||
#define _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 <sys/syscall.h>
|
||||||
#include "syscall_arch.h"
|
#include "syscall_arch.h"
|
||||||
|
|
||||||
@ -14,6 +8,17 @@ long __syscall_ret(unsigned long), __syscall(long, ...),
|
|||||||
#define __scc(X) (long) (X)
|
#define __scc(X) (long) (X)
|
||||||
#endif
|
#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 __syscall1(n,a) __syscall1(n,__scc(a))
|
||||||
#define __syscall2(n,a,b) __syscall2(n,__scc(a),__scc(b))
|
#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))
|
#define __syscall3(n,a,b,c) __syscall3(n,__scc(a),__scc(b),__scc(c))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user