blob: e7a331041b0540fb1038469c902cf056cb3a457e [file] [log] [blame]
bart51e61da2012-10-23 18:03:28 +00001#ifndef __VKI_XEN_EVTCHN_H
2#define __VKI_XEN_EVTCHN_H
3
4#define VKI_XEN_EVTCHNOP_bind_interdomain 0
5#define VKI_XEN_EVTCHNOP_bind_virq 1
6#define VKI_XEN_EVTCHNOP_bind_pirq 2
7#define VKI_XEN_EVTCHNOP_close 3
8#define VKI_XEN_EVTCHNOP_send 4
9#define VKI_XEN_EVTCHNOP_status 5
10#define VKI_XEN_EVTCHNOP_alloc_unbound 6
11#define VKI_XEN_EVTCHNOP_bind_ipi 7
12#define VKI_XEN_EVTCHNOP_bind_vcpu 8
13#define VKI_XEN_EVTCHNOP_unmask 9
14#define VKI_XEN_EVTCHNOP_reset 10
15
16typedef vki_uint32_t vki_xen_evtchn_port_t;
17DEFINE_VKI_XEN_GUEST_HANDLE(vki_xen_evtchn_port_t);
18
19struct vki_xen_evtchn_alloc_unbound {
20 /* IN parameters */
21 vki_xen_domid_t dom, remote_dom;
22 /* OUT parameters */
23 vki_xen_evtchn_port_t port;
24};
25
26struct vki_xen_evtchn_op {
27 vki_uint32_t cmd; /* enum event_channel_op */
28 union {
29 struct vki_xen_evtchn_alloc_unbound alloc_unbound;
30 //struct vki_xen_evtchn_bind_interdomain bind_interdomain;
31 //struct vki_xen_evtchn_bind_virq bind_virq;
32 //struct vki_xen_evtchn_bind_pirq bind_pirq;
33 //struct vki_xen_evtchn_bind_ipi bind_ipi;
34 //struct vki_xen_evtchn_close close;
35 //struct vki_xen_evtchn_send send;
36 //struct vki_xen_evtchn_status status;
37 //struct vki_xen_evtchn_bind_vcpu bind_vcpu;
38 //struct vki_xen_evtchn_unmask unmask;
39 } u;
40};
41
42#endif // __VKI_XEN_EVTCHN_H
43
44/*--------------------------------------------------------------------*/
45/*--- end ---*/
46/*--------------------------------------------------------------------*/