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 | |
parent | 8b2497047010e199bb04ed45e25a03c6f1e517fa (diff) | |
download | musl-59324c8b0950ee94db846a50554183c845ede160.tar.gz 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.
-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 |