summary refs log tree commit diff stats
path: root/bsd-user/freebsd/os-syscall.c
diff options
context:
space:
mode:
authorKarim Taha <kariem.taha2.7@gmail.com>2023-09-25 21:24:19 +0300
committerWarner Losh <imp@bsdimp.com>2023-10-03 17:14:06 -0600
commit36999e6a6bb1e3c7d7d40c751b67d5886f023ee9 (patch)
treeb60e847d4128c87c5c310e228a8b44a3d55f7733 /bsd-user/freebsd/os-syscall.c
parentdcaa3dfda379157a1e5148e112a77aa7e1d79c58 (diff)
downloadfocaccia-qemu-36999e6a6bb1e3c7d7d40c751b67d5886f023ee9.tar.gz
focaccia-qemu-36999e6a6bb1e3c7d7d40c751b67d5886f023ee9.zip
bsd-user: Implement execve(2) and fexecve(2) system calls.
Signed-off-by: Stacey Son <sson@FreeBSD.org>
Signed-off-by: Karim Taha <kariem.taha2.7@gmail.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Warner Losh <imp@bsdimp.com>
Message-Id: <20230925182425.3163-23-kariem.taha2.7@gmail.com>
Diffstat (limited to 'bsd-user/freebsd/os-syscall.c')
-rw-r--r--bsd-user/freebsd/os-syscall.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c
index b7bd0b92a6..515eaaf31f 100644
--- a/bsd-user/freebsd/os-syscall.c
+++ b/bsd-user/freebsd/os-syscall.c
@@ -36,8 +36,9 @@
 #include "bsd-file.h"
 #include "bsd-proc.h"
 
-/* *BSD dependent syscall shims */
+/* BSD dependent syscall shims */
 #include "os-stat.h"
+#include "os-proc.h"
 
 /* I/O */
 safe_syscall3(int, open, const char *, path, int, flags, mode_t, mode);
@@ -219,6 +220,14 @@ static abi_long freebsd_syscall(void *cpu_env, int num, abi_long arg1,
         /*
          * process system calls
          */
+    case TARGET_FREEBSD_NR_execve: /* execve(2) */
+        ret = do_freebsd_execve(arg1, arg2, arg3);
+        break;
+
+    case TARGET_FREEBSD_NR_fexecve: /* fexecve(2) */
+        ret = do_freebsd_fexecve(arg1, arg2, arg3);
+        break;
+
     case TARGET_FREEBSD_NR_exit: /* exit(2) */
         ret = do_bsd_exit(cpu_env, arg1);
         break;