[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v2 40/47] bsd-user: Define RISC-V VM parameters and helper functio
From: |
Alistair Francis |
Subject: |
[PULL v2 40/47] bsd-user: Define RISC-V VM parameters and helper functions |
Date: |
Wed, 25 Sep 2024 08:17:41 +1000 |
From: Mark Corbin <mark@dibsco.co.uk>
Added definitions for RISC-V VM parameters, including maximum and
default sizes for text, data, and stack, as well as address space
limits.
Implemented helper functions for retrieving and setting specific
values in the CPU state, such as stack pointer and return values.
Signed-off-by: Mark Corbin <mark@dibsco.co.uk>
Signed-off-by: Ajeet Singh <itachis@FreeBSD.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240916155119.14610-11-itachis@FreeBSD.org>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
bsd-user/riscv/target_arch_vmparam.h | 53 ++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
create mode 100644 bsd-user/riscv/target_arch_vmparam.h
diff --git a/bsd-user/riscv/target_arch_vmparam.h
b/bsd-user/riscv/target_arch_vmparam.h
new file mode 100644
index 0000000000..0f2486def1
--- /dev/null
+++ b/bsd-user/riscv/target_arch_vmparam.h
@@ -0,0 +1,53 @@
+/*
+ * RISC-V VM parameters definitions
+ *
+ * Copyright (c) 2019 Mark Corbin
+ *
+ * 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/>.
+ */
+
+#ifndef TARGET_ARCH_VMPARAM_H
+#define TARGET_ARCH_VMPARAM_H
+
+#include "cpu.h"
+
+/* Compare with riscv/include/vmparam.h */
+#define TARGET_MAXTSIZ (1 * GiB) /* max text size */
+#define TARGET_DFLDSIZ (128 * MiB) /* initial data size limit */
+#define TARGET_MAXDSIZ (1 * GiB) /* max data size */
+#define TARGET_DFLSSIZ (128 * MiB) /* initial stack size limit */
+#define TARGET_MAXSSIZ (1 * GiB) /* max stack size */
+#define TARGET_SGROWSIZ (128 * KiB) /* amount to grow stack */
+
+#define TARGET_VM_MINUSER_ADDRESS (0x0000000000000000UL)
+#define TARGET_VM_MAXUSER_ADDRESS (0x0000004000000000UL)
+
+#define TARGET_USRSTACK (TARGET_VM_MAXUSER_ADDRESS - TARGET_PAGE_SIZE)
+
+static inline abi_ulong get_sp_from_cpustate(CPURISCVState *state)
+{
+ return state->gpr[xSP];
+}
+
+static inline void set_second_rval(CPURISCVState *state, abi_ulong retval2)
+{
+ state->gpr[xA1] = retval2;
+}
+
+static inline abi_ulong get_second_rval(CPURISCVState *state)
+{
+ return state->gpr[xA1];
+}
+
+#endif /* TARGET_ARCH_VMPARAM_H */
--
2.46.1
- [PULL v2 31/47] bsd-user: Implement RISC-V CPU initialization and main loop, (continued)
- [PULL v2 31/47] bsd-user: Implement RISC-V CPU initialization and main loop, Alistair Francis, 2024/09/24
- [PULL v2 32/47] bsd-user: Add RISC-V CPU execution loop and syscall handling, Alistair Francis, 2024/09/24
- [PULL v2 33/47] bsd-user: Implement RISC-V CPU register cloning and reset functions, Alistair Francis, 2024/09/24
- [PULL v2 36/47] bsd-user: Define RISC-V register structures and register copying, Alistair Francis, 2024/09/24
- [PULL v2 37/47] bsd-user: Add RISC-V signal trampoline setup function, Alistair Francis, 2024/09/24
- [PULL v2 38/47] bsd-user: Implement RISC-V sysarch system call emulation, Alistair Francis, 2024/09/24
- [PULL v2 34/47] bsd-user: Implement RISC-V TLS register setup, Alistair Francis, 2024/09/24
- [PULL v2 35/47] bsd-user: Add RISC-V ELF definitions and hardware capability detection, Alistair Francis, 2024/09/24
- [PULL v2 42/47] bsd-user: Add generic RISC-V64 target definitions, Alistair Francis, 2024/09/24
- [PULL v2 39/47] bsd-user: Add RISC-V thread setup and initialization support, Alistair Francis, 2024/09/24
- [PULL v2 40/47] bsd-user: Define RISC-V VM parameters and helper functions,
Alistair Francis <=
- [PULL v2 41/47] bsd-user: Define RISC-V system call structures and constants, Alistair Francis, 2024/09/24
- [PULL v2 43/47] bsd-user: Define RISC-V signal handling structures and constants, Alistair Francis, 2024/09/24
- [PULL v2 44/47] bsd-user: Implement RISC-V signal trampoline setup functions, Alistair Francis, 2024/09/24
- [PULL v2 45/47] bsd-user: Implement 'get_mcontext' for RISC-V, Alistair Francis, 2024/09/24
- [PULL v2 46/47] bsd-user: Implement set_mcontext and get_ucontext_sigreturn for RISCV, Alistair Francis, 2024/09/24
- [PULL v2 47/47] bsd-user: Add RISC-V 64-bit Target Configuration and Debug XML Files, Alistair Francis, 2024/09/24
- Re: [PULL v2 00/47] riscv-to-apply queue, Peter Maydell, 2024/09/28