mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-05 06:14:25 +03:00
abstract missing SYS_pause syscall with macros
newer archs lack the syscall. the pause() function accounted for this with its own #ifdef, but that didn't allow use of the syscall directly elsewhere, so move the logic to macros in src/internal/syscall.h where it can be shared.
This commit is contained in:
parent
23ab04a863
commit
6d8000d3c6
@ -391,6 +391,17 @@ static inline long __alt_socketcall(int sys, int sock, int cp, syscall_arg_t a,
|
||||
#define __sys_open_cp(...) __SYSCALL_DISP(__sys_open_cp,,__VA_ARGS__)
|
||||
#define sys_open_cp(...) __syscall_ret(__sys_open_cp(__VA_ARGS__))
|
||||
|
||||
#ifdef SYS_pause
|
||||
#define __sys_pause() __syscall(SYS_pause)
|
||||
#define __sys_pause_cp() __syscall_cp(SYS_pause)
|
||||
#else
|
||||
#define __sys_pause() __syscall(SYS_ppoll, 0, 0, 0, 0)
|
||||
#define __sys_pause_cp() __syscall_cp(SYS_ppoll, 0, 0, 0, 0)
|
||||
#endif
|
||||
|
||||
#define sys_pause() __syscall_ret(__sys_pause())
|
||||
#define sys_pause_cp() __syscall_ret(__sys_pause_cp())
|
||||
|
||||
#ifdef SYS_wait4
|
||||
#define __sys_wait4(a,b,c,d) __syscall(SYS_wait4,a,b,c,d)
|
||||
#define __sys_wait4_cp(a,b,c,d) __syscall_cp(SYS_wait4,a,b,c,d)
|
||||
|
@ -3,9 +3,5 @@
|
||||
|
||||
int pause(void)
|
||||
{
|
||||
#ifdef SYS_pause
|
||||
return syscall_cp(SYS_pause);
|
||||
#else
|
||||
return syscall_cp(SYS_ppoll, 0, 0, 0, 0);
|
||||
#endif
|
||||
return sys_pause_cp();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user