mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-10 16:42:59 +03:00
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.
This commit is contained in:
parent
8b24970470
commit
59324c8b09
@ -43,8 +43,8 @@ hidden long __syscall_ret(unsigned long),
|
|||||||
#define __syscall(...) __SYSCALL_DISP(__syscall,__VA_ARGS__)
|
#define __syscall(...) __SYSCALL_DISP(__syscall,__VA_ARGS__)
|
||||||
#define syscall(...) __syscall_ret(__syscall(__VA_ARGS__))
|
#define syscall(...) __syscall_ret(__syscall(__VA_ARGS__))
|
||||||
|
|
||||||
#define socketcall __socketcall
|
#define socketcall(nm,a,b,c,d,e,f) __syscall_ret(__socketcall(nm,a,b,c,d,e,f))
|
||||||
#define socketcall_cp __socketcall_cp
|
#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_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)
|
#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__))
|
#define syscall_cp(...) __syscall_ret(__syscall_cp(__VA_ARGS__))
|
||||||
|
|
||||||
#ifndef SYSCALL_USE_SOCKETCALL
|
#ifndef SYSCALL_USE_SOCKETCALL
|
||||||
#define __socketcall(nm,a,b,c,d,e,f) syscall(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)
|
#define __socketcall_cp(nm,a,b,c,d,e,f) __syscall_cp(SYS_##nm, a, b, c, d, e, f)
|
||||||
#else
|
#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 }))
|
((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 }))
|
((long [6]){ (long)a, (long)b, (long)c, (long)d, (long)e, (long)f }))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user