From: Julien Grall Date: Wed, 31 Oct 2018 18:12:54 +0000 (+0000) Subject: xen/arm: regs: Convert guest_mode to a static inline helper X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=ce4cd9ab7cef8c7ed01a719e8aadb9d091b2fd4b;p=people%2Fsstabellini%2Fxen-unstable.git%2F.git xen/arm: regs: Convert guest_mode to a static inline helper At the same time, switch the parameter guest_mode from int to bool Signed-off-by: Julien Grall Reviewed-by: Andrii Anisov Acked-by: Stefano Stabellini --- diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c index e8fa760607..b9323672fc 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -789,7 +789,7 @@ static const char *mode_string(uint32_t cpsr) static void show_registers_32(const struct cpu_user_regs *regs, const struct reg_ctxt *ctxt, - int guest_mode, + bool guest_mode, const struct vcpu *v) { @@ -866,7 +866,7 @@ static void show_registers_32(const struct cpu_user_regs *regs, #ifdef CONFIG_ARM_64 static void show_registers_64(const struct cpu_user_regs *regs, const struct reg_ctxt *ctxt, - int guest_mode, + bool guest_mode, const struct vcpu *v) { @@ -927,7 +927,7 @@ static void show_registers_64(const struct cpu_user_regs *regs, static void _show_registers(const struct cpu_user_regs *regs, const struct reg_ctxt *ctxt, - int guest_mode, + bool guest_mode, const struct vcpu *v) { print_xen_info(); diff --git a/xen/include/asm-arm/regs.h b/xen/include/asm-arm/regs.h index 2440edb29a..ddc6eba9ce 100644 --- a/xen/include/asm-arm/regs.h +++ b/xen/include/asm-arm/regs.h @@ -5,8 +5,10 @@ #ifndef __ASSEMBLY__ +#include #include #include +#include #include #define psr_mode(psr,m) (((psr) & PSR_MODE_MASK) == m) @@ -37,16 +39,16 @@ (psr_mode((r)->cpsr,PSR_MODE_EL0t) || usr_mode(r)) #endif -#define guest_mode(r) \ -({ \ - unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r); \ - /* Frame pointer must point into current CPU stack. */ \ - ASSERT(diff < STACK_SIZE); \ - /* If not a guest frame, it must be a hypervisor frame. */ \ - ASSERT((diff == 0) || hyp_mode(r)); \ - /* Return TRUE if it's a guest frame. */ \ - (diff == 0); \ -}) +static inline bool guest_mode(const struct cpu_user_regs *r) +{ + unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r); + /* Frame pointer must point into current CPU stack. */ + ASSERT(diff < STACK_SIZE); + /* If not a guest frame, it must be a hypervisor frame. */ + ASSERT((diff == 0) || hyp_mode(r)); + /* Return TRUE if it's a guest frame. */ + return (diff == 0); +} #define return_reg(v) ((v)->arch.cpu_info->guest_cpu_user_regs.r0)