From 66c57a2451008df460f4c716a152de51710165cb Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Sun, 29 Dec 2024 14:30:17 +0000 Subject: [PATCH] x86/regs: Fold x86_64/regs.h into it's single includer MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Andrew Cooper --- CC: Jan Beulich CC: Roger Pau Monné --- xen/arch/x86/include/asm/regs.h | 21 ++++++++++++++++++- xen/arch/x86/include/asm/x86_64/regs.h | 28 -------------------------- 2 files changed, 20 insertions(+), 29 deletions(-) delete mode 100644 xen/arch/x86/include/asm/x86_64/regs.h diff --git a/xen/arch/x86/include/asm/regs.h b/xen/arch/x86/include/asm/regs.h index ddf5e14e57..4f2f06b601 100644 --- a/xen/arch/x86/include/asm/regs.h +++ b/xen/arch/x86/include/asm/regs.h @@ -2,7 +2,26 @@ #ifndef __X86_REGS_H__ #define __X86_REGS_H__ -#include +#define ring_0(r) (((r)->cs & 3) == 0) +#define ring_1(r) (((r)->cs & 3) == 1) +#define ring_2(r) (((r)->cs & 3) == 2) +#define ring_3(r) (((r)->cs & 3) == 3) + +#define guest_kernel_mode(v, r) \ + (!is_pv_32bit_vcpu(v) ? \ + (ring_3(r) && ((v)->arch.flags & TF_kernel_mode)) : \ + (ring_1(r))) + +#define permit_softint(dpl, v, r) \ + ((dpl) >= (guest_kernel_mode(v, r) ? 1 : 3)) + +/* Check for null trap callback handler: Is the EIP null? */ +#define null_trap_bounce(v, tb) \ + (!is_pv_32bit_vcpu(v) ? ((tb)->eip == 0) : (((tb)->cs & ~3) == 0)) + +/* Number of bytes of on-stack execution state to be context-switched. */ +/* NB. Segment registers and bases are not saved/restored on x86/64 stack. */ +#define CTXT_SWITCH_STACK_BYTES (offsetof(struct cpu_user_regs, es)) #define guest_mode(r) \ ({ \ diff --git a/xen/arch/x86/include/asm/x86_64/regs.h b/xen/arch/x86/include/asm/x86_64/regs.h deleted file mode 100644 index 171cf9a2e2..0000000000 --- a/xen/arch/x86/include/asm/x86_64/regs.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef _X86_64_REGS_H -#define _X86_64_REGS_H - -#include -#include - -#define ring_0(r) (((r)->cs & 3) == 0) -#define ring_1(r) (((r)->cs & 3) == 1) -#define ring_2(r) (((r)->cs & 3) == 2) -#define ring_3(r) (((r)->cs & 3) == 3) - -#define guest_kernel_mode(v, r) \ - (!is_pv_32bit_vcpu(v) ? \ - (ring_3(r) && ((v)->arch.flags & TF_kernel_mode)) : \ - (ring_1(r))) - -#define permit_softint(dpl, v, r) \ - ((dpl) >= (guest_kernel_mode(v, r) ? 1 : 3)) - -/* Check for null trap callback handler: Is the EIP null? */ -#define null_trap_bounce(v, tb) \ - (!is_pv_32bit_vcpu(v) ? ((tb)->eip == 0) : (((tb)->cs & ~3) == 0)) - -/* Number of bytes of on-stack execution state to be context-switched. */ -/* NB. Segment registers and bases are not saved/restored on x86/64 stack. */ -#define CTXT_SWITCH_STACK_BYTES (offsetof(struct cpu_user_regs, es)) - -#endif -- 2.39.5