[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3 8/8] x86: only generate compat headers actually needed
As was already the case for XSM/Flask, avoid generating compat headers when they're not going to be needed. To address resulting build issues - move compat/hvm/dm_op.h inclusion to the only source file needing it, - add a little bit of #ifdef-ary. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- Alternatively we could consistently drop conditionals (except for per- arch cases perhaps). --- a/xen/arch/x86/hvm/dm.c +++ b/xen/arch/x86/hvm/dm.c @@ -717,6 +717,8 @@ static int dm_op(const struct dmop_args return rc; } +#include <compat/hvm/dm_op.h> + CHECK_dm_op_create_ioreq_server; CHECK_dm_op_get_ioreq_server_info; CHECK_dm_op_ioreq_server_range; --- a/xen/common/compat/domain.c +++ b/xen/common/compat/domain.c @@ -11,7 +11,6 @@ EMIT_FILE; #include <xen/guest_access.h> #include <xen/hypercall.h> #include <compat/vcpu.h> -#include <compat/hvm/hvm_vcpu.h> #define xen_vcpu_set_periodic_timer vcpu_set_periodic_timer CHECK_vcpu_set_periodic_timer; @@ -25,6 +24,10 @@ CHECK_SIZE_(struct, vcpu_info); CHECK_vcpu_register_vcpu_info; #undef xen_vcpu_register_vcpu_info +#ifdef CONFIG_HVM + +#include <compat/hvm/hvm_vcpu.h> + #define xen_vcpu_hvm_context vcpu_hvm_context #define xen_vcpu_hvm_x86_32 vcpu_hvm_x86_32 #define xen_vcpu_hvm_x86_64 vcpu_hvm_x86_64 @@ -33,6 +36,8 @@ CHECK_vcpu_hvm_context; #undef xen_vcpu_hvm_x86_32 #undef xen_vcpu_hvm_context +#endif + int compat_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg) { struct domain *d = current->domain; @@ -49,6 +54,7 @@ int compat_vcpu_op(int cmd, unsigned int if ( v->vcpu_info == &dummy_vcpu_info ) return -EINVAL; +#ifdef CONFIG_HVM if ( is_hvm_vcpu(v) ) { struct vcpu_hvm_context ctxt; @@ -61,6 +67,7 @@ int compat_vcpu_op(int cmd, unsigned int domain_unlock(d); } else +#endif { struct compat_vcpu_guest_context *ctxt; --- a/xen/include/Makefile +++ b/xen/include/Makefile @@ -3,32 +3,34 @@ ifneq ($(CONFIG_COMPAT),) compat-arch-$(CONFIG_X86) := x86_32 headers-y := \ - compat/argo.h \ - compat/callback.h \ + compat/arch-$(compat-arch-y).h \ compat/elfnote.h \ compat/event_channel.h \ compat/features.h \ - compat/grant_table.h \ - compat/hypfs.h \ - compat/kexec.h \ compat/memory.h \ compat/nmi.h \ compat/physdev.h \ compat/platform.h \ + compat/pmu.h \ compat/sched.h \ - compat/trace.h \ compat/vcpu.h \ compat/version.h \ compat/xen.h \ - compat/xenoprof.h + compat/xlat.h headers-$(CONFIG_X86) += compat/arch-x86/pmu.h headers-$(CONFIG_X86) += compat/arch-x86/xen-mca.h headers-$(CONFIG_X86) += compat/arch-x86/xen.h headers-$(CONFIG_X86) += compat/arch-x86/xen-$(compat-arch-y).h -headers-$(CONFIG_X86) += compat/hvm/dm_op.h -headers-$(CONFIG_X86) += compat/hvm/hvm_op.h -headers-$(CONFIG_X86) += compat/hvm/hvm_vcpu.h -headers-y += compat/arch-$(compat-arch-y).h compat/pmu.h compat/xlat.h +headers-$(CONFIG_ARGO) += compat/argo.h +headers-$(CONFIG_PV) += compat/callback.h +headers-$(CONFIG_GRANT_TABLE) += compat/grant_table.h +headers-$(CONFIG_HVM) += compat/hvm/dm_op.h +headers-$(CONFIG_HVM) += compat/hvm/hvm_op.h +headers-$(CONFIG_HVM) += compat/hvm/hvm_vcpu.h +headers-$(CONFIG_HYPFS) += compat/hypfs.h +headers-$(CONFIG_KEXEC) += compat/kexec.h +headers-$(CONFIG_TRACEBUFFER) += compat/trace.h +headers-$(CONFIG_XENOPROF) += compat/xenoprof.h headers-$(CONFIG_XSM_FLASK) += compat/xsm/flask_op.h cppflags-y := -include public/xen-compat.h -DXEN_GENERATING_COMPAT_HEADERS --- a/xen/include/xen/hypercall.h +++ b/xen/include/xen/hypercall.h @@ -216,8 +216,6 @@ extern long compat_argo_op( unsigned long arg4); #endif -#include <compat/hvm/dm_op.h> - extern int compat_dm_op( domid_t domid,
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |