[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6 15/16] libxl/arm: Initialize domain param HVM_PARAM_CALLBACK_IRQ
On Thu, Sep 22, 2016 at 08:52:32PM +0800, z00226004 wrote: > From: Shannon Zhao <shannon.zhao@xxxxxxxxxx> > > The guest kernel will get the event channel interrupt information via > domain param HVM_PARAM_CALLBACK_IRQ. Initialize it here. > > Signed-off-by: Shannon Zhao <shannon.zhao@xxxxxxxxxx> > Acked-by: Julien Grall <julien.grall@xxxxxxx> Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx> > --- > tools/libxl/libxl_arm.c | 14 ++++++++++++++ > tools/libxl/libxl_internal.h | 3 +++ > 2 files changed, 17 insertions(+) > > diff --git a/tools/libxl/libxl_arm.c b/tools/libxl/libxl_arm.c > index 6f0bc70..913f401 100644 > --- a/tools/libxl/libxl_arm.c > +++ b/tools/libxl/libxl_arm.c > @@ -900,8 +900,22 @@ int libxl__arch_domain_init_hw_description(libxl__gc *gc, > struct xc_dom_image *dom) > { > int rc; > + uint64_t val; > > assert(info->type == LIBXL_DOMAIN_TYPE_PV); > + > + /* Set the value of domain param HVM_PARAM_CALLBACK_IRQ. */ > + val = MASK_INSR(HVM_PARAM_CALLBACK_TYPE_PPI, > + HVM_PARAM_CALLBACK_IRQ_TYPE_MASK); > + /* Active-low level-sensitive */ > + val |= MASK_INSR(HVM_PARAM_CALLBACK_TYPE_PPI_FLAG_LOW_LEVEL, > + HVM_PARAM_CALLBACK_TYPE_PPI_FLAG_MASK); > + val |= GUEST_EVTCHN_PPI; > + rc = xc_hvm_param_set(dom->xch, dom->guest_domid, HVM_PARAM_CALLBACK_IRQ, > + val); > + if (rc) > + return rc; > + > rc = libxl__prepare_dtb(gc, info, state, dom); > if (rc) goto out; > > diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h > index f1ba473..cb6d9e0 100644 > --- a/tools/libxl/libxl_internal.h > +++ b/tools/libxl/libxl_internal.h > @@ -128,6 +128,9 @@ > #define ROUNDUP(_val, _order) \ > (((unsigned long)(_val)+(1UL<<(_order))-1) & ~((1UL<<(_order))-1)) > > +#define MASK_EXTR(v, m) (((v) & (m)) / ((m) & -(m))) > +#define MASK_INSR(v, m) (((v) * ((m) & -(m))) & (m)) > + Though I would have moved this to libxl_arm.c because the only user is there, or at least give them less cryptic names. > #define min(X, Y) ({ \ > const typeof (X) _x = (X); \ > const typeof (Y) _y = (Y); \ > -- > 2.0.4 > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |