All of lore.kernel.org
 help / color / mirror / Atom feed
From: Warner Losh <imp@bsdimp.com>
To: qemu-devel@nongnu.org
Cc: Kyle Evans <kevans@freebsd.org>,
	richard.henderson@linaro.org, f4bug@amsat.org,
	Warner Losh <imp@bsdimp.com>, Stacey Son <sson@FreeBSD.org>
Subject: [PATCH 12/14] bsd-user/sysarch: Provide a per-arch framework for sysarch syscall
Date: Wed, 22 Sep 2021 00:14:36 -0600	[thread overview]
Message-ID: <20210922061438.27645-13-imp@bsdimp.com> (raw)
In-Reply-To: <20210922061438.27645-1-imp@bsdimp.com>

Add the missing glue to pull in do_freebsd_sysarch to call
do_freebsd_arch_sysarch. Put it in os-sys.c, which will be used for
sysctl and sysarch system calls because they are mostly arch specific.

Signed-off-by: Stacey Son <sson@FreeBSD.org>
Signed-off-by: Warner Losh <imp@bsdimp.com>
---
 bsd-user/freebsd/meson.build |  3 +++
 bsd-user/freebsd/os-sys.c    | 28 ++++++++++++++++++++++++++++
 bsd-user/meson.build         |  6 ++++++
 bsd-user/qemu.h              |  3 +++
 bsd-user/syscall.c           |  7 -------
 5 files changed, 40 insertions(+), 7 deletions(-)
 create mode 100644 bsd-user/freebsd/meson.build
 create mode 100644 bsd-user/freebsd/os-sys.c

diff --git a/bsd-user/freebsd/meson.build b/bsd-user/freebsd/meson.build
new file mode 100644
index 0000000000..4b69cca7b9
--- /dev/null
+++ b/bsd-user/freebsd/meson.build
@@ -0,0 +1,3 @@
+bsd_user_ss.add(files(
+  'os-sys.c',
+))
diff --git a/bsd-user/freebsd/os-sys.c b/bsd-user/freebsd/os-sys.c
new file mode 100644
index 0000000000..756b024305
--- /dev/null
+++ b/bsd-user/freebsd/os-sys.c
@@ -0,0 +1,28 @@
+/*
+ *  FreeBSD sysctl() and sysarch() system call emulation
+ *
+ *  Copyright (c) 2013-15 Stacey D. Son
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "qemu.h"
+#include "target_arch_sysarch.h"
+
+/* sysarch() is architecture dependent. */
+abi_long do_freebsd_sysarch(void *cpu_env, abi_long arg1, abi_long arg2)
+{
+
+    return do_freebsd_arch_sysarch(cpu_env, arg1, arg2);
+}
diff --git a/bsd-user/meson.build b/bsd-user/meson.build
index 0369549340..561913de05 100644
--- a/bsd-user/meson.build
+++ b/bsd-user/meson.build
@@ -8,3 +8,9 @@ bsd_user_ss.add(files(
   'syscall.c',
   'uaccess.c',
 ))
+
+# Pull in the OS-specific build glue, if any
+if fs.exists(targetos)
+   subdir(targetos)
+endif
+
diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
index 4ee57b91f0..3dde381d5d 100644
--- a/bsd-user/qemu.h
+++ b/bsd-user/qemu.h
@@ -239,6 +239,9 @@ extern unsigned long target_sgrowsiz;
 abi_long get_errno(abi_long ret);
 int is_error(abi_long ret);
 
+/* os-sys.c */
+abi_long do_freebsd_sysarch(void *cpu_env, abi_long arg1, abi_long arg2);
+
 /* user access */
 
 #define VERIFY_READ  PAGE_READ
diff --git a/bsd-user/syscall.c b/bsd-user/syscall.c
index 9bc72501b2..9f51563abd 100644
--- a/bsd-user/syscall.c
+++ b/bsd-user/syscall.c
@@ -88,13 +88,6 @@ static abi_long do_obreak(abi_ulong new_brk)
     return 0;
 }
 
-#if defined(TARGET_I386)
-static abi_long do_freebsd_sysarch(CPUX86State *env, int op, abi_ulong parms)
-{
-    do_freebsd_arch_sysarch(env, op, parms);
-}
-#endif
-
 #ifdef __FreeBSD__
 /*
  * XXX this uses the undocumented oidfmt interface to find the kind of
-- 
2.32.0



  parent reply	other threads:[~2021-09-22  6:17 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-22  6:14 [PATCH 00/14] bsd-user: misc cleanup for aarch64 import Warner Losh
2021-09-22  6:14 ` [PATCH 01/14] bsd-user/target_os-user.h: Remove support for FreeBSD older than 12.0 Warner Losh
2021-09-22  6:14 ` [PATCH 02/14] bsd-user/strace.list: Remove support for FreeBSD versions " Warner Losh
2021-09-23 17:57   ` Richard Henderson
2021-09-22  6:14 ` [PATCH 03/14] bsd-user: TARGET_RESET define is unused, remove it Warner Losh
2021-09-23 17:57   ` Richard Henderson
2021-09-25 10:30   ` Philippe Mathieu-Daudé
2021-09-22  6:14 ` [PATCH 04/14] bsd-user: export get_errno and is_error from syscall.c Warner Losh
2021-09-23 17:58   ` Richard Henderson
2021-09-25 10:33   ` Philippe Mathieu-Daudé
2021-09-26 17:14     ` Warner Losh
2021-09-22  6:14 ` [PATCH 05/14] bsd-user/errno_defs.h: Add internal error numbers Warner Losh
2021-09-23 17:59   ` Richard Henderson
2021-09-22  6:14 ` [PATCH 06/14] bsd-user: move TARGET_MC_GET_CLEAR_RET to target_os_signal.h Warner Losh
2021-09-23 18:00   ` Richard Henderson
2021-09-25 10:35   ` Philippe Mathieu-Daudé
2021-09-26 17:16     ` Warner Losh
2021-09-22  6:14 ` [PATCH 07/14] bsd-user/target_os_elf.h: Remove fallback ELF_HWCAP and reorder Warner Losh
2021-09-23 18:01   ` Richard Henderson
2021-09-25 10:36   ` Philippe Mathieu-Daudé
2021-09-22  6:14 ` [PATCH 08/14] bsd-user/target_os_elf: If ELF_HWCAP2 is defined, publish it Warner Losh
2021-09-23 18:01   ` Richard Henderson
2021-09-25 10:37   ` Philippe Mathieu-Daudé
2021-09-22  6:14 ` [PATCH 09/14] bsd-user: Remove used from TaskState Warner Losh
2021-09-23 18:02   ` Richard Henderson
2021-09-25 10:38   ` Philippe Mathieu-Daudé
2021-09-22  6:14 ` [PATCH 10/14] bsd-user: Add stop_all_tasks Warner Losh
2021-09-23 18:04   ` Richard Henderson
2021-09-22  6:14 ` [PATCH 11/14] bsd-user/sysarch: Move to using do_freebsd_arch_sysarch interface Warner Losh
2021-09-23 18:07   ` Richard Henderson
2021-09-24 15:25     ` Warner Losh
2021-09-22  6:14 ` Warner Losh [this message]
2021-09-23 18:08   ` [PATCH 12/14] bsd-user/sysarch: Provide a per-arch framework for sysarch syscall Richard Henderson
2021-09-25 10:46   ` Philippe Mathieu-Daudé
2021-09-26 17:21     ` Warner Losh
2021-09-22  6:14 ` [PATCH 13/14] bsd-user: Rename sigqueue to qemu_sigqueue Warner Losh
2021-09-23 18:09   ` Richard Henderson
2021-09-25 10:46   ` Philippe Mathieu-Daudé
2021-09-22  6:14 ` [PATCH 14/14] bsd-user/signal: Create a dummy signal queueing function Warner Losh
2021-09-23 18:13   ` Richard Henderson
2021-09-24 20:11     ` Warner Losh
2021-09-24 20:30       ` Kyle Evans
2021-09-24 23:51       ` Richard Henderson
2021-09-26 18:14     ` Warner Losh
2021-09-26 18:34       ` Philippe Mathieu-Daudé
2021-09-26 19:00         ` Warner Losh
2021-09-26 19:13           ` Philippe Mathieu-Daudé
2021-09-25 10:50   ` Philippe Mathieu-Daudé
2021-09-25 14:53     ` Warner Losh
2021-09-26  3:06       ` Warner Losh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210922061438.27645-13-imp@bsdimp.com \
    --to=imp@bsdimp.com \
    --cc=f4bug@amsat.org \
    --cc=kevans@freebsd.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=sson@FreeBSD.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.