[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 14/16] bsd-user: introduce target.h
From: |
Warner Losh |
Subject: |
[PULL 14/16] bsd-user: introduce target.h |
Date: |
Mon, 28 Feb 2022 11:12:12 -0700 |
Create target.h. This file is intended to be simple and describe basic
things about the architecture. If something is a basic feature of the
architecture, it belongs here. Should we need something that's per-BSD
there will be a target-os.h that will live in the per-bsd directories.
Define regpairs_aligned to reflect whether or not registers are 'paired'
for 64-bit arguments or not. This will be false for all 64-bit targets,
and will be true on those architectures that pair (currently just armv7
and powerpc on FreeBSD 14.x).
Signed-off-by: Warner Losh <imp@bsdimp.com>
Reviewed-by: Kyle Evans <kevans@FreeBSD.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
bsd-user/arm/target.h | 21 +++++++++++++++++++++
bsd-user/i386/target.h | 21 +++++++++++++++++++++
bsd-user/qemu.h | 1 +
bsd-user/x86_64/target.h | 21 +++++++++++++++++++++
4 files changed, 64 insertions(+)
create mode 100644 bsd-user/arm/target.h
create mode 100644 bsd-user/i386/target.h
create mode 100644 bsd-user/x86_64/target.h
diff --git a/bsd-user/arm/target.h b/bsd-user/arm/target.h
new file mode 100644
index 00000000000..419c039b68e
--- /dev/null
+++ b/bsd-user/arm/target.h
@@ -0,0 +1,21 @@
+/*
+ * Intel general target stuff that's common to all i386 details
+ *
+ * Copyright (c) 2022 M. Warner Losh <imp@bsdimp.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef TARGET_H
+#define TARGET_H
+
+/*
+ * arm EABI 'lumps' the registers for 64-bit args.
+ */
+static inline bool regpairs_aligned(void *cpu_env)
+{
+ return true;
+}
+
+#endif /* ! TARGET_H */
+
diff --git a/bsd-user/i386/target.h b/bsd-user/i386/target.h
new file mode 100644
index 00000000000..9b9df047a3b
--- /dev/null
+++ b/bsd-user/i386/target.h
@@ -0,0 +1,21 @@
+/*
+ * Intel general target stuff that's common to all i386 details
+ *
+ * Copyright (c) 2022 M. Warner Losh <imp@bsdimp.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef TARGET_ARCH_H
+#define TARGET_ARCH_H
+
+/*
+ * i386 doesn't 'lump' the registers for 64-bit args.
+ */
+static inline bool regpairs_aligned(void *cpu_env)
+{
+ return false;
+}
+
+#endif /* ! TARGET_ARCH_H */
+
diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
index 56042ddbc5d..a9efa807b78 100644
--- a/bsd-user/qemu.h
+++ b/bsd-user/qemu.h
@@ -35,6 +35,7 @@ extern char **environ;
#include "target_syscall.h"
#include "target_os_vmparam.h"
#include "target_os_signal.h"
+#include "target.h"
#include "exec/gdbstub.h"
/*
diff --git a/bsd-user/x86_64/target.h b/bsd-user/x86_64/target.h
new file mode 100644
index 00000000000..8956631db1d
--- /dev/null
+++ b/bsd-user/x86_64/target.h
@@ -0,0 +1,21 @@
+/*
+ * Intel general target stuff that's common to all x86_64 details
+ *
+ * Copyright (c) 2022 M. Warner Losh <imp@bsdimp.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef TARGET_H
+#define TARGET_H
+
+/*
+ * x86 doesn't 'lump' the registers for 64-bit args, all args are 64 bits.
+ */
+static inline bool regpairs_aligned(void *cpu_env)
+{
+ return false;
+}
+
+#endif /* ! TARGET_H */
+
--
2.33.1
- [PULL 04/16] bsd-user/i386/target_arch_cpu.h: Remove openbsd syscall, (continued)
- [PULL 04/16] bsd-user/i386/target_arch_cpu.h: Remove openbsd syscall, Warner Losh, 2022/02/28
- [PULL 07/16] bsd-user/x86_64/target_arch_thread.h: Assume a FreeBSD target, Warner Losh, 2022/02/28
- [PULL 08/16] bsd-user: Remove bsd_type, Warner Losh, 2022/02/28
- [PULL 09/16] bsd-user/freebsd/os-syscall.c: Move syscall processing here, Warner Losh, 2022/02/28
- [PULL 10/16] bsd-user: Move system call building to os-syscall.c, Warner Losh, 2022/02/28
- [PULL 11/16] bsd-user/sycall.c: Now obsolete, remove, Warner Losh, 2022/02/28
- [PULL 13/16] bsd-user/bsd-file.h: Implementation details for the filesystem calls, Warner Losh, 2022/02/28
- [PULL 12/16] bsd-user/freebsd/os-syscall.c: Add get_errno and host_to_target_errno, Warner Losh, 2022/02/28
- [PULL 15/16] bsd-user: Define target_arg64, Warner Losh, 2022/02/28
- [PULL 16/16] bsd-user: Add safe system call macros, Warner Losh, 2022/02/28
- [PULL 14/16] bsd-user: introduce target.h,
Warner Losh <=