diff options
author | Rich Felker <dalias@aerifal.cx> | 2019-07-30 17:51:16 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2019-07-31 17:33:01 -0400 |
commit | 59324c8b0950ee94db846a50554183c845ede160 (patch) | |
tree | b1b39c11725760000b87156a3b49cf81700fb7ef /src/internal | |
parent | 8b2497047010e199bb04ed45e25a03c6f1e517fa (diff) | |
download | musl-59324c8b0950ee94db846a50554183c845ede160.tar.gz musl-59324c8b0950ee94db846a50554183c845ede160.tar.bz2 musl-59324c8b0950ee94db846a50554183c845ede160.tar.xz musl-59324c8b0950ee94db846a50554183c845ede160.zip |
make __socketcall analogous to __syscall, error-returning
the __socketcall and __socketcall_cp macros are remnants from a really
old version of the syscall-mechanism infrastructure, and don't follow
the pattern that the "__" version of the macro returns the raw negated
error number rather than setting errno and returning -1.
for time64 purposes, some socket syscalls will need to operate on the
error value rather than returning immediately, so fix this up so they
can use it.
Diffstat (limited to 'src/internal')
-rw-r--r-- | src/internal/syscall.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/internal/syscall.h b/src/internal/syscall.h index dcc99c45..5db18b05 100644 --- a/src/internal/syscall.h +++ b/src/internal/syscall.h @@ -43,8 +43,8 @@ hidden long __syscall_ret(unsigned long), #define __syscall(...) __SYSCALL_DISP(__syscall,__VA_ARGS__) #define syscall(...) __syscall_ret(__syscall(__VA_ARGS__)) -#define socketcall __socketcall -#define socketcall_cp __socketcall_cp +#define socketcall(nm,a,b,c,d,e,f) __syscall_ret(__socketcall(nm,a,b,c,d,e,f)) +#define socketcall_cp(nm,a,b,c,d,e,f) __syscall_ret(__socketcall_cp(nm,a,b,c,d,e,f)) #define __syscall_cp0(n) (__syscall_cp)(n,0,0,0,0,0,0) #define __syscall_cp1(n,a) (__syscall_cp)(n,__scc(a),0,0,0,0,0) @@ -58,12 +58,12 @@ hidden long __syscall_ret(unsigned long), #define syscall_cp(...) __syscall_ret(__syscall_cp(__VA_ARGS__)) #ifndef SYSCALL_USE_SOCKETCALL -#define __socketcall(nm,a,b,c,d,e,f) syscall(SYS_##nm, a, b, c, d, e, f) -#define __socketcall_cp(nm,a,b,c,d,e,f) syscall_cp(SYS_##nm, a, b, c, d, e, f) +#define __socketcall(nm,a,b,c,d,e,f) __syscall(SYS_##nm, a, b, c, d, e, f) +#define __socketcall_cp(nm,a,b,c,d,e,f) __syscall_cp(SYS_##nm, a, b, c, d, e, f) #else -#define __socketcall(nm,a,b,c,d,e,f) syscall(SYS_socketcall, __SC_##nm, \ +#define __socketcall(nm,a,b,c,d,e,f) __syscall(SYS_socketcall, __SC_##nm, \ ((long [6]){ (long)a, (long)b, (long)c, (long)d, (long)e, (long)f })) -#define __socketcall_cp(nm,a,b,c,d,e,f) syscall_cp(SYS_socketcall, __SC_##nm, \ +#define __socketcall_cp(nm,a,b,c,d,e,f) __syscall_cp(SYS_socketcall, __SC_##nm, \ ((long [6]){ (long)a, (long)b, (long)c, (long)d, (long)e, (long)f })) #endif |