Export offsets that we will later need in assembly. Signed-off-by: Ralf Ramsauer <ralf.ramsa...@oth-regensburg.de> --- 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 jailhouse-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/20220627132905.4338-18-ralf.ramsauer%40oth-regensburg.de.