[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH V2 08/14] Define N-level event channel registration interface
>>> On 21.01.13 at 15:30, Wei Liu <wei.liu2@xxxxxxxxxx> wrote: > @@ -258,6 +259,38 @@ struct evtchn_reset { > typedef struct evtchn_reset evtchn_reset_t; > > /* > + * EVTCHNOP_register_nlevel: Register N-level event channel > + * NOTES: > + * 1. Currently only 3-level is supported. > + * 2. Should fall back to 2-level if this call fails. > + */ > +/* 64 bit guests need 8 pages for evtchn_pending and evtchn_mask for > + * 256k event channels while 32 bit ones only need 1 page for 32k > + * event channels. */ > +#define EVTCHN_MAX_L3_PAGES 8 > +struct evtchn_register_3level { > + /* IN parameters. */ > + uint32_t nr_pages; > + XEN_GUEST_HANDLE(xen_pfn_t) evtchn_pending; > + XEN_GUEST_HANDLE(xen_pfn_t) evtchn_mask; > + uint32_t nr_vcpus; Any reason not to put this adjacent to the other uint32_t? > + XEN_GUEST_HANDLE(xen_pfn_t) l2sel_mfns; > + XEN_GUEST_HANDLE(xen_pfn_t) l2sel_offsets; > +}; > +typedef struct evtchn_register_3level evtchn_register_3level_t; > +DEFINE_XEN_GUEST_HANDLE(evtchn_register_3level_t); > + > +struct evtchn_register_nlevel { > + /* IN parameters. */ > + uint32_t level; > + union { > + XEN_GUEST_HANDLE(evtchn_register_3level_t) l3; Do you really need the extra level of indirection here (i.e. can't you embed the structure rather than having a handle to it)? > + } u; > +}; > +typedef struct evtchn_register_nlevel evtchn_register_nlevel_t; > +DEFINE_XEN_GUEST_HANDLE(evtchn_register_nlevel_t); > + > +/* > * ` enum neg_errnoval > * ` HYPERVISOR_event_channel_op_compat(struct evtchn_op *op) > * ` Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |