Message ID | 20170818120842.23toemdnrpupxh76@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 18/08/17 13:08, Wei Liu wrote: > On Fri, Aug 18, 2017 at 04:08:44AM -0600, Jan Beulich wrote: >> >> If it can't be static anymore, and considering it's just a wrapper >> around another function call, would there be anything wrong with >> making it an inline function in the header? > Yes it can be done: > > ---8<--- > From 129ea54249114f97fe66b85672f1710c5f63f604 Mon Sep 17 00:00:00 2001 > From: Wei Liu <wei.liu2@citrix.com> > Date: Wed, 19 Jul 2017 16:15:48 +0100 > Subject: [PATCH] x86: move pv_emul_is_mem_write to pv/emulate.h > > Make it a static inline function in pv/emulate.h. In the mean time it > is required to include pv/emulate.h in x86/mm.c. > > The said function will be used later by different emulation handlers > in later patches. > > Signed-off-by: Wei Liu <wei.liu2@citrix.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 5983a56811..e0e655ac31 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -126,6 +126,8 @@ #include <asm/hvm/grant_table.h> #include <asm/pv/grant_table.h> +#include "pv/emulate.h" + /* Mapping of the fixmap space needed early. */ l1_pgentry_t __section(".bss.page_aligned") __aligned(PAGE_SIZE) l1_fixmap[L1_PAGETABLE_ENTRIES]; @@ -5138,13 +5140,6 @@ static int ptwr_emulated_cmpxchg( container_of(ctxt, struct ptwr_emulate_ctxt, ctxt)); } -static int pv_emul_is_mem_write(const struct x86_emulate_state *state, - struct x86_emulate_ctxt *ctxt) -{ - return x86_insn_is_mem_write(state, ctxt) ? X86EMUL_OKAY - : X86EMUL_UNHANDLEABLE; -} - static const struct x86_emulate_ops ptwr_emulate_ops = { .read = ptwr_emulated_read, .insn_fetch = ptwr_emulated_read, diff --git a/xen/arch/x86/pv/emulate.h b/xen/arch/x86/pv/emulate.h index b2b1192d48..656c12f62d 100644 --- a/xen/arch/x86/pv/emulate.h +++ b/xen/arch/x86/pv/emulate.h @@ -1,10 +1,19 @@ #ifndef __PV_EMULATE_H__ #define __PV_EMULATE_H__ +#include <asm/x86_emulate.h> + int pv_emul_read_descriptor(unsigned int sel, const struct vcpu *v, unsigned long *base, unsigned long *limit, unsigned int *ar, bool insn_fetch); void pv_emul_instruction_done(struct cpu_user_regs *regs, unsigned long rip); +static inline int pv_emul_is_mem_write(const struct x86_emulate_state *state, + struct x86_emulate_ctxt *ctxt) +{ + return x86_insn_is_mem_write(state, ctxt) ? X86EMUL_OKAY + : X86EMUL_UNHANDLEABLE; +} + #endif /* __PV_EMULATE_H__ */