mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 15:18:19 +00:00
tools/nolibc: s390: provide custom implementation for sys_fork
On s390 the first two arguments to the clone() syscall are swapped, as documented in clone(2). Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Cc: Sven Schnelle <svens@linux.ibm.com> Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
parent
f2fa6b384c
commit
404fa87c0e
2 changed files with 11 additions and 0 deletions
|
@ -5,6 +5,7 @@
|
|||
|
||||
#ifndef _NOLIBC_ARCH_S390_H
|
||||
#define _NOLIBC_ARCH_S390_H
|
||||
#include <asm/signal.h>
|
||||
#include <asm/unistd.h>
|
||||
|
||||
/* The struct returned by the stat() syscall, equivalent to stat64(). The
|
||||
|
@ -223,4 +224,12 @@ void *sys_mmap(void *addr, size_t length, int prot, int flags, int fd,
|
|||
return (void *)my_syscall1(__NR_mmap, &args);
|
||||
}
|
||||
#define sys_mmap sys_mmap
|
||||
|
||||
static __attribute__((unused))
|
||||
pid_t sys_fork(void)
|
||||
{
|
||||
return my_syscall5(__NR_clone, 0, SIGCHLD, 0, 0, 0);
|
||||
}
|
||||
#define sys_fork sys_fork
|
||||
|
||||
#endif /* _NOLIBC_ARCH_S390_H */
|
||||
|
|
|
@ -336,6 +336,7 @@ void exit(int status)
|
|||
* pid_t fork(void);
|
||||
*/
|
||||
|
||||
#ifndef sys_fork
|
||||
static __attribute__((unused))
|
||||
pid_t sys_fork(void)
|
||||
{
|
||||
|
@ -351,6 +352,7 @@ pid_t sys_fork(void)
|
|||
#error Neither __NR_clone nor __NR_fork defined, cannot implement sys_fork()
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
static __attribute__((unused))
|
||||
pid_t fork(void)
|
||||
|
|
Loading…
Reference in a new issue