|
[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 |