Message ID | 20170817144456.18989-7-wei.liu2@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 17/08/17 15:44, Wei Liu wrote: > Export it via 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> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> On 17.08.17 at 16:44, <wei.liu2@citrix.com> wrote: > @@ -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; > -} 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? Jan
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.c b/xen/arch/x86/pv/emulate.c index 5750c7699b..1c4d6eab28 100644 --- a/xen/arch/x86/pv/emulate.c +++ b/xen/arch/x86/pv/emulate.c @@ -87,6 +87,13 @@ void pv_emul_instruction_done(struct cpu_user_regs *regs, unsigned long rip) } } +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; +} + /* * Local variables: * mode: C diff --git a/xen/arch/x86/pv/emulate.h b/xen/arch/x86/pv/emulate.h index b2b1192d48..89abbe010f 100644 --- a/xen/arch/x86/pv/emulate.h +++ b/xen/arch/x86/pv/emulate.h @@ -7,4 +7,7 @@ int pv_emul_read_descriptor(unsigned int sel, const struct vcpu *v, void pv_emul_instruction_done(struct cpu_user_regs *regs, unsigned long rip); +int pv_emul_is_mem_write(const struct x86_emulate_state *state, + struct x86_emulate_ctxt *ctxt); + #endif /* __PV_EMULATE_H__ */
Export it via 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> --- xen/arch/x86/mm.c | 9 ++------- xen/arch/x86/pv/emulate.c | 7 +++++++ xen/arch/x86/pv/emulate.h | 3 +++ 3 files changed, 12 insertions(+), 7 deletions(-)