diff mbox series

[v4,11/11] Signed-off-by: Karim Taha <kariem.taha2.7@gmail.com>

Message ID 20230421165351.3177-12-kariem.taha2.7@gmail.com
State New
Headers show
Series Contribution task implementations, for the 'FreeBSD user emulation improvements' project. | expand

Commit Message

Karim Taha April 21, 2023, 4:53 p.m. UTC
From: Warner Losh <imp@bsdimp.com>

Add the dispatching code of bind(2),connect(2), accpet(2), getpeername(2).

Add the bind(2), connect(2), accept(2), getpeername(2) syscalls case
statements to freebsd_syscall function defined in bsd-user/freebsd/os-syscall.c

Signed-off-by: Warner Losh <imp@bsdimp.com>
Signed-off-by: Karim Taha <kariem.taha2.7@gmail.com>
---
 bsd-user/freebsd/os-syscall.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

Comments

Warner Losh April 21, 2023, 10:46 p.m. UTC | #1
Oh, I see you've uploaded an improved version of the patches, with the
fixes I'd
recommended. I'll queue that series instead.

Warner

On Fri, Apr 21, 2023 at 10:58 AM Karim Taha <kariem.taha2.7@gmail.com>
wrote:

> From: Warner Losh <imp@bsdimp.com>
>
> Add the dispatching code of bind(2),connect(2), accpet(2), getpeername(2).
>
> Add the bind(2), connect(2), accept(2), getpeername(2) syscalls case
> statements to freebsd_syscall function defined in
> bsd-user/freebsd/os-syscall.c
>
> Signed-off-by: Warner Losh <imp@bsdimp.com>
> Signed-off-by: Karim Taha <kariem.taha2.7@gmail.com>
> ---
>  bsd-user/freebsd/os-syscall.c | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>
> diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c
> index c8f998ecec..7f29196a05 100644
> --- a/bsd-user/freebsd/os-syscall.c
> +++ b/bsd-user/freebsd/os-syscall.c
> @@ -44,6 +44,8 @@
>  #include "signal-common.h"
>  #include "user/syscall-trace.h"
>
> +/* BSD independent syscall shims */
> +#include "bsd-socket.h"
>  #include "bsd-file.h"
>  #include "bsd-proc.h"
>
> @@ -508,6 +510,25 @@ static abi_long freebsd_syscall(void *cpu_env, int
> num, abi_long arg1,
>          ret = do_freebsd_sysarch(cpu_env, arg1, arg2);
>          break;
>
> +        /*
> +         * socket related system calls
> +         */
> +    case TARGET_FREEBSD_NR_accept: /* accept(2) */
> +        ret = do_bsd_accept(arg1, arg2, arg3);
> +        break;
> +
> +    case TARGET_FREEBSD_NR_bind: /* bind(2) */
> +        ret = do_bsd_bind(arg1, arg2, arg3);
> +        break;
> +
> +    case TARGET_FREEBSD_NR_connect: /* connect(2) */
> +        ret = do_bsd_connect(arg1, arg2, arg3);
> +        break;
> +
> +    case TARGET_FREEBSD_NR_getpeername: /* getpeername(2) */
> +        ret = do_bsd_getpeername(arg1, arg2, arg3);
> +        break;
> +
>      default:
>          qemu_log_mask(LOG_UNIMP, "Unsupported syscall: %d\n", num);
>          ret = -TARGET_ENOSYS;
> --
> 2.40.0
>
>
diff mbox series

Patch

diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c
index c8f998ecec..7f29196a05 100644
--- a/bsd-user/freebsd/os-syscall.c
+++ b/bsd-user/freebsd/os-syscall.c
@@ -44,6 +44,8 @@ 
 #include "signal-common.h"
 #include "user/syscall-trace.h"
 
+/* BSD independent syscall shims */
+#include "bsd-socket.h"
 #include "bsd-file.h"
 #include "bsd-proc.h"
 
@@ -508,6 +510,25 @@  static abi_long freebsd_syscall(void *cpu_env, int num, abi_long arg1,
         ret = do_freebsd_sysarch(cpu_env, arg1, arg2);
         break;
 
+        /*
+         * socket related system calls
+         */
+    case TARGET_FREEBSD_NR_accept: /* accept(2) */
+        ret = do_bsd_accept(arg1, arg2, arg3);
+        break;
+
+    case TARGET_FREEBSD_NR_bind: /* bind(2) */
+        ret = do_bsd_bind(arg1, arg2, arg3);
+        break;
+
+    case TARGET_FREEBSD_NR_connect: /* connect(2) */
+        ret = do_bsd_connect(arg1, arg2, arg3);
+        break;
+
+    case TARGET_FREEBSD_NR_getpeername: /* getpeername(2) */
+        ret = do_bsd_getpeername(arg1, arg2, arg3);
+        break;
+
     default:
         qemu_log_mask(LOG_UNIMP, "Unsupported syscall: %d\n", num);
         ret = -TARGET_ENOSYS;