diff options
Diffstat (limited to 'include/xen/interface/event_channel.h')
| -rw-r--r-- | include/xen/interface/event_channel.h | 81 | 
1 files changed, 81 insertions, 0 deletions
diff --git a/include/xen/interface/event_channel.h b/include/xen/interface/event_channel.h index 2090881c365..7e6acef5415 100644 --- a/include/xen/interface/event_channel.h +++ b/include/xen/interface/event_channel.h @@ -177,6 +177,52 @@ struct evtchn_unmask {  	evtchn_port_t port;  }; +/* + * EVTCHNOP_reset: Close all event channels associated with specified domain. + * NOTES: + *  1. <dom> may be specified as DOMID_SELF. + *  2. Only a sufficiently-privileged domain may specify other than DOMID_SELF. + */ +#define EVTCHNOP_reset		 10 +struct evtchn_reset { +	/* IN parameters. */ +	domid_t dom; +}; +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_gfn; +	uint32_t offset; +	uint32_t vcpu; +	/* OUT parameters. */ +	uint8_t link_bits; +	uint8_t _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_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; +}; +  struct evtchn_op {  	uint32_t cmd; /* EVTCHNOP_* */  	union { @@ -194,4 +240,39 @@ struct evtchn_op {  };  DEFINE_GUEST_HANDLE_STRUCT(evtchn_op); +/* + * 2-level ABI + */ + +#define EVTCHN_2L_NR_CHANNELS (sizeof(xen_ulong_t) * sizeof(xen_ulong_t) * 64) + +/* + * FIFO ABI + */ + +/* Events may have priorities from 0 (highest) to 15 (lowest). */ +#define EVTCHN_FIFO_PRIORITY_MAX     0 +#define EVTCHN_FIFO_PRIORITY_DEFAULT 7 +#define EVTCHN_FIFO_PRIORITY_MIN     15 + +#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_BUSY    28 + +#define EVTCHN_FIFO_LINK_BITS 17 +#define EVTCHN_FIFO_LINK_MASK ((1 << EVTCHN_FIFO_LINK_BITS) - 1) + +#define EVTCHN_FIFO_NR_CHANNELS (1 << EVTCHN_FIFO_LINK_BITS) + +struct evtchn_fifo_control_block { +	uint32_t     ready; +	uint32_t     _rsvd; +	event_word_t head[EVTCHN_FIFO_MAX_QUEUES]; +}; +  #endif /* __XEN_PUBLIC_EVENT_CHANNEL_H__ */  | 
