Signed-off-by: Richard Henderson <[email protected]>
---
linux-user/syscall.c | 39 +++++++++++++++++++++++++++------------
1 file changed, 27 insertions(+), 12 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index d32034ce38..3d3983a504 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8080,6 +8080,21 @@ IMPL(fork)
}
#endif
+#ifdef TARGET_NR_getpid
+IMPL(getpid)
+{
+ return get_errno(getpid());
+}
+#endif
+
+#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
+IMPL(getxpid)
+{
+ ((CPUAlphaState *)cpu_env)->ir[IR_A4] = getppid();
+ return get_errno(getpid());
+}
+#endif
+
#ifdef TARGET_NR_link
IMPL(link)
{
@@ -8110,6 +8125,11 @@ IMPL(linkat)
return ret;
}
+IMPL(lseek)
+{
+ return get_errno(lseek(arg1, arg2, arg3));
+}
+
#ifdef TARGET_NR_mknod
IMPL(mknod)
{
@@ -8396,18 +8416,6 @@ static abi_long do_syscall1(void *cpu_env, unsigned num,
abi_long arg1,
void *p;
switch(num) {
- case TARGET_NR_lseek:
- return get_errno(lseek(arg1, arg2, arg3));
-#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
- /* Alpha specific */
- case TARGET_NR_getxpid:
- ((CPUAlphaState *)cpu_env)->ir[IR_A4] = getppid();
- return get_errno(getpid());
-#endif
-#ifdef TARGET_NR_getpid
- case TARGET_NR_getpid:
- return get_errno(getpid());
-#endif
case TARGET_NR_mount:
{
/* need to look at the data field */
@@ -12546,10 +12554,17 @@ static impl_fn *syscall_table(unsigned num)
#ifdef TARGET_NR_fork
SYSCALL(fork);
#endif
+#ifdef TARGET_NR_getpid
+ SYSCALL(getpid);
+#endif
+#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
+ SYSCALL(getxpid);
+#endif
#ifdef TARGET_NR_link
SYSCALL(link);
#endif
SYSCALL(linkat);
+ SYSCALL(lseek);
#ifdef TARGET_NR_mknod
SYSCALL(mknod);
#endif
--
2.17.1