Export offsets that we will later need in assembly.
Signed-off-by: Ralf Ramsauer <[email protected]>
---
hypervisor/arch/riscv/asm-defines.c | 27 ++++++++++++++++++++++
hypervisor/include/jailhouse/gen-defines.h | 8 ++++++-
2 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/hypervisor/arch/riscv/asm-defines.c
b/hypervisor/arch/riscv/asm-defines.c
index 17c2f256..0143d5c9 100644
--- a/hypervisor/arch/riscv/asm-defines.c
+++ b/hypervisor/arch/riscv/asm-defines.c
@@ -11,9 +11,36 @@
*/
#include <jailhouse/gen-defines.h>
+#include <jailhouse/percpu.h>
void common(void);
void common(void)
{
+ OFFSETU(REG_SP, registers, sp);
+ OFFSETU(REG_RA, registers, ra);
+ OFFSETU(REG_T0, registers, t0);
+ OFFSETU(REG_TP, registers, tp);
+ OFFSETU(REG_GP, registers, gp);
+ OFFSETU(REG_S0, registers, s0);
+ OFFSETU(REG_S1, registers, s1);
+ OFFSETU(REG_S2, registers, s2);
+ OFFSETU(REG_S3, registers, s3);
+ OFFSETU(REG_S4, registers, s4);
+ OFFSETU(REG_S5, registers, s5);
+ OFFSETU(REG_S6, registers, s6);
+ OFFSETU(REG_S7, registers, s7);
+ OFFSETU(REG_S8, registers, s8);
+ OFFSETU(REG_S9, registers, s9);
+ OFFSETU(REG_S10, registers, s10);
+ OFFSETU(REG_S11, registers, s11);
+
+ OFFSET(HEADER_MAX_CPUS, jailhouse_header, max_cpus);
+ OFFSET(HEADER_PERCPU_SIZE, jailhouse_header, percpu_size);
+
+ OFFSET(CFG_PHYS_START, jailhouse_system, hypervisor_memory.phys_start);
+
+ OFFSET(PCPU_GUEST_REGS, per_cpu, guest_regs);
+
+ DEFINE(REGISTERS_SIZE, sizeof(union registers));
}
diff --git a/hypervisor/include/jailhouse/gen-defines.h
b/hypervisor/include/jailhouse/gen-defines.h
index d42fe255..7b348761 100644
--- a/hypervisor/include/jailhouse/gen-defines.h
+++ b/hypervisor/include/jailhouse/gen-defines.h
@@ -22,8 +22,14 @@
#define BLANK() asm volatile("\n=>" : : )
+#define OFF(type, sym, str, mem) \
+ DEFINE(sym, __builtin_offsetof(type str, mem))
+
#define OFFSET(sym, str, mem) \
- DEFINE(sym, __builtin_offsetof(struct str, mem))
+ OFF(struct, sym, str, mem)
+
+#define OFFSETU(sym, str, mem) \
+ OFF(union , sym, str, mem)
#define COMMENT(x) \
asm volatile("\n=>#" x)
--
2.36.1
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/20220627132905.4338-18-ralf.ramsauer%40oth-regensburg.de.