[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/7] arm: move arch/arm/hvm.c to arch/arm/hvm/hvm.c
On Mon, 8 Feb 2016, Corneliu ZUZU wrote: > X86-side hvm.c is @ arch/x86/hvm/hvm.c. To maintain arm<->x86 symmetry, > also move arch/arm/hvm.c to arch/arm/hvm/hvm.c. Why are we doing this? These are not header files, their paths don't necessarily need to be the same and xen/arch/x86/hvm/hvm.c is very different from xen/arch/arm/hvm.c. Please state the reason more clearly. > Signed-off-by: Corneliu ZUZU <czuzu@xxxxxxxxxxxxxxx> > --- > xen/arch/arm/Makefile | 2 +- > xen/arch/arm/hvm.c | 67 > ----------------------------------------------- > xen/arch/arm/hvm/Makefile | 1 + > xen/arch/arm/hvm/hvm.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 68 insertions(+), 68 deletions(-) > delete mode 100644 xen/arch/arm/hvm.c > create mode 100644 xen/arch/arm/hvm/Makefile > create mode 100644 xen/arch/arm/hvm/hvm.c > > diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile > index 1783912..22f1c75 100644 > --- a/xen/arch/arm/Makefile > +++ b/xen/arch/arm/Makefile > @@ -1,6 +1,7 @@ > subdir-$(CONFIG_ARM_32) += arm32 > subdir-$(CONFIG_ARM_64) += arm64 > subdir-y += platforms > +subdir-y += hvm > subdir-$(CONFIG_ARM_64) += efi > > obj-$(EARLY_PRINTK) += early_printk.o > @@ -34,7 +35,6 @@ obj-y += vgic.o vgic-v2.o > obj-$(CONFIG_ARM_64) += vgic-v3.o > obj-y += vtimer.o > obj-y += vuart.o > -obj-y += hvm.o > obj-y += device.o > obj-y += decode.o > obj-y += processor.o > diff --git a/xen/arch/arm/hvm.c b/xen/arch/arm/hvm.c > deleted file mode 100644 > index 5fd0753..0000000 > --- a/xen/arch/arm/hvm.c > +++ /dev/null > @@ -1,67 +0,0 @@ > -#include <xen/config.h> > -#include <xen/init.h> > -#include <xen/lib.h> > -#include <xen/errno.h> > -#include <xen/guest_access.h> > -#include <xen/sched.h> > - > -#include <xsm/xsm.h> > - > -#include <public/xen.h> > -#include <public/hvm/params.h> > -#include <public/hvm/hvm_op.h> > - > -#include <asm/hypercall.h> > - > -long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg) > - > -{ > - long rc = 0; > - > - switch ( op ) > - { > - case HVMOP_set_param: > - case HVMOP_get_param: > - { > - struct xen_hvm_param a; > - struct domain *d; > - > - if ( copy_from_guest(&a, arg, 1) ) > - return -EFAULT; > - > - if ( a.index >= HVM_NR_PARAMS ) > - return -EINVAL; > - > - d = rcu_lock_domain_by_any_id(a.domid); > - if ( d == NULL ) > - return -ESRCH; > - > - rc = xsm_hvm_param(XSM_TARGET, d, op); > - if ( rc ) > - goto param_fail; > - > - if ( op == HVMOP_set_param ) > - { > - d->arch.hvm_domain.params[a.index] = a.value; > - } > - else > - { > - a.value = d->arch.hvm_domain.params[a.index]; > - rc = copy_to_guest(arg, &a, 1) ? -EFAULT : 0; > - } > - > - param_fail: > - rcu_unlock_domain(d); > - break; > - } > - > - default: > - { > - gdprintk(XENLOG_DEBUG, "HVMOP op=%lu: not implemented\n", op); > - rc = -ENOSYS; > - break; > - } > - } > - > - return rc; > -} > diff --git a/xen/arch/arm/hvm/Makefile b/xen/arch/arm/hvm/Makefile > new file mode 100644 > index 0000000..6ee4054 > --- /dev/null > +++ b/xen/arch/arm/hvm/Makefile > @@ -0,0 +1 @@ > +obj-y += hvm.o > diff --git a/xen/arch/arm/hvm/hvm.c b/xen/arch/arm/hvm/hvm.c > new file mode 100644 > index 0000000..1ae681f > --- /dev/null > +++ b/xen/arch/arm/hvm/hvm.c > @@ -0,0 +1,66 @@ > +#include <xen/config.h> > +#include <xen/init.h> > +#include <xen/lib.h> > +#include <xen/errno.h> > +#include <xen/guest_access.h> > +#include <xen/sched.h> > + > +#include <xsm/xsm.h> > + > +#include <public/xen.h> > +#include <public/hvm/params.h> > +#include <public/hvm/hvm_op.h> > + > +#include <asm/hypercall.h> > + > +long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg) > +{ > + long rc = 0; > + > + switch ( op ) > + { > + case HVMOP_set_param: > + case HVMOP_get_param: > + { > + struct xen_hvm_param a; > + struct domain *d; > + > + if ( copy_from_guest(&a, arg, 1) ) > + return -EFAULT; > + > + if ( a.index >= HVM_NR_PARAMS ) > + return -EINVAL; > + > + d = rcu_lock_domain_by_any_id(a.domid); > + if ( d == NULL ) > + return -ESRCH; > + > + rc = xsm_hvm_param(XSM_TARGET, d, op); > + if ( rc ) > + goto param_fail; > + > + if ( op == HVMOP_set_param ) > + { > + d->arch.hvm_domain.params[a.index] = a.value; > + } > + else > + { > + a.value = d->arch.hvm_domain.params[a.index]; > + rc = copy_to_guest(arg, &a, 1) ? -EFAULT : 0; > + } > + > + param_fail: > + rcu_unlock_domain(d); > + break; > + } > + > + default: > + { > + gdprintk(XENLOG_DEBUG, "HVMOP op=%lu: not implemented\n", op); > + rc = -ENOSYS; > + break; > + } > + } > + > + return rc; > +} > -- > 2.5.0 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |