[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 12/13] xen/events: Add the hypervisor interface for the FIFO-based event channels



On Fri, Sep 13, 2013 at 06:00:00PM +0100, David Vrabel wrote:
> From: David Vrabel <david.vrabel@xxxxxxxxxx>
> 
> Add the hypercall sub-ops and the structures for the shared data used
> in the FIFO-based event channel ABI.

And you should include an URL to the design document. Or include the
text version of it (if possible) in this description.

Perhaps also say in which version of the hypervisor this functionality
became available.

> 
> Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
> ---
>  include/xen/interface/event_channel.h |   67 
> +++++++++++++++++++++++++++++++++
>  1 files changed, 67 insertions(+), 0 deletions(-)
> 
> diff --git a/include/xen/interface/event_channel.h 
> b/include/xen/interface/event_channel.h
> index f494292..f54ad0a 100644
> --- a/include/xen/interface/event_channel.h
> +++ b/include/xen/interface/event_channel.h
> @@ -190,6 +190,48 @@ struct evtchn_reset {
>  };
>  typedef struct evtchn_reset evtchn_reset_t;
>  
> +/*
> + * EVTCHNOP_init_control: initialize the control block for the FIFO ABI.
> + */
> +#define EVTCHNOP_init_control    11
> +struct evtchn_init_control {
> +     /* IN parameters. */
> +     uint64_t control_mfn;

Odd. The design document mentions 'control_gfn' ?

Should it be 'gmfn' ?

> +     uint32_t offset;
> +     uint32_t vcpu;
> +     /* OUT parameters. */
> +     uint8_t link_bits;

No __pad[7] ?

> +};
> +
> +/*
> + * EVTCHNOP_expand_array: add an additional page to the event array.
> + */
> +#define EVTCHNOP_expand_array    12
> +struct evtchn_expand_array {
> +     /* IN parameters. */
> +     uint64_t array_mfn;

Design says 'array_gfn' ?

> +};
> +
> +/*
> + * EVTCHNOP_set_priority: set the priority for an event channel.
> + */
> +#define EVTCHNOP_set_priority    13
> +struct evtchn_set_priority {
> +     /* IN parameters. */
> +     uint32_t port;
> +     uint32_t priority;
> +};
> +
> +/*
> + * EVTCHNOP_set_limit: set the maximum event channel port that may be bound.
> + */
> +#define EVTCHNOP_set_limit       14
> +struct evtchn_set_limit {
> +     /* IN parameters. */
> +     uint32_t domid;
> +     uint32_t max_port;
> +};
> +
>  struct evtchn_op {
>       uint32_t cmd; /* EVTCHNOP_* */
>       union {
> @@ -207,4 +249,29 @@ struct evtchn_op {
>  };
>  DEFINE_GUEST_HANDLE_STRUCT(evtchn_op);
>  
> +/*
> + * FIFO ABI
> + */
> +
> +/* Events may have priorities from 0 (highest) to 15 (lowest). */
> +#define EVTCHN_FIFO_PRIORITY_MIN     15
> +#define EVTCHN_FIFO_PRIORITY_DEFAULT 7
> +
> +#define EVTCHN_FIFO_MAX_QUEUES (EVTCHN_FIFO_PRIORITY_MIN + 1)
> +
> +typedef uint32_t event_word_t;
> +
> +#define EVTCHN_FIFO_PENDING 31
> +#define EVTCHN_FIFO_MASKED  30
> +#define EVTCHN_FIFO_LINKED  29
> +
> +#define EVTCHN_FIFO_LINK_BITS 17
> +#define EVTCHN_FIFO_LINK_MASK ((1 << EVTCHN_FIFO_LINK_BITS) - 1)
> +
> +struct evtchn_fifo_control_block {
> +     uint32_t     ready;
> +     uint32_t     _rsvd1;


The design document looks to have 'READY' be 2 bytes? Octet 0 and 1?
(figure 2).

Which one is correct?


> +     event_word_t head[EVTCHN_FIFO_MAX_QUEUES];
> +};
> +
>  #endif /* __XEN_PUBLIC_EVENT_CHANNEL_H__ */
> -- 
> 1.7.2.5
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.