1 #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 
16 typedef vki_uint32_t vki_xen_evtchn_port_t;
17 DEFINE_VKI_XEN_GUEST_HANDLE(vki_xen_evtchn_port_t);
18 
19 struct 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 
26 struct 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 /*--------------------------------------------------------------------*/
47