1 /* 2 This file is part of Valgrind, a dynamic binary instrumentation 3 framework. 4 5 Copyright (C) 2012-2017 Citrix 6 7 This program is free software; you can redistribute it and/or 8 modify it under the terms of the GNU General Public License as 9 published by the Free Software Foundation; either version 2 of the 10 License, or (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, but 13 WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 20 02111-1307, USA. 21 22 The GNU General Public License is contained in the file COPYING. 23 */ 24 25 /* Contributed by Andrew Cooper <andrew.cooper3@citrix.com> 26 and Ian Campbell <ian.campbell@citrix.com> */ 27 28 #ifndef __VKI_XEN_EVTCHN_H 29 #define __VKI_XEN_EVTCHN_H 30 31 #define VKI_XEN_EVTCHNOP_bind_interdomain 0 32 #define VKI_XEN_EVTCHNOP_bind_virq 1 33 #define VKI_XEN_EVTCHNOP_bind_pirq 2 34 #define VKI_XEN_EVTCHNOP_close 3 35 #define VKI_XEN_EVTCHNOP_send 4 36 #define VKI_XEN_EVTCHNOP_status 5 37 #define VKI_XEN_EVTCHNOP_alloc_unbound 6 38 #define VKI_XEN_EVTCHNOP_bind_ipi 7 39 #define VKI_XEN_EVTCHNOP_bind_vcpu 8 40 #define VKI_XEN_EVTCHNOP_unmask 9 41 #define VKI_XEN_EVTCHNOP_reset 10 42 43 typedef vki_uint32_t vki_xen_evtchn_port_t; 44 DEFINE_VKI_XEN_GUEST_HANDLE(vki_xen_evtchn_port_t); 45 46 struct vki_xen_evtchn_alloc_unbound { 47 /* IN parameters */ 48 vki_xen_domid_t dom, remote_dom; 49 /* OUT parameters */ 50 vki_xen_evtchn_port_t port; 51 }; 52 53 struct vki_xen_evtchn_op { 54 vki_uint32_t cmd; /* enum event_channel_op */ 55 union { 56 struct vki_xen_evtchn_alloc_unbound alloc_unbound; 57 //struct vki_xen_evtchn_bind_interdomain bind_interdomain; 58 //struct vki_xen_evtchn_bind_virq bind_virq; 59 //struct vki_xen_evtchn_bind_pirq bind_pirq; 60 //struct vki_xen_evtchn_bind_ipi bind_ipi; 61 //struct vki_xen_evtchn_close close; 62 //struct vki_xen_evtchn_send send; 63 //struct vki_xen_evtchn_status status; 64 //struct vki_xen_evtchn_bind_vcpu bind_vcpu; 65 //struct vki_xen_evtchn_unmask unmask; 66 } u; 67 }; 68 69 #endif // __VKI_XEN_EVTCHN_H 70 71 /*--------------------------------------------------------------------*/ 72 /*--- end ---*/ 73 /*--------------------------------------------------------------------*/ 74