1 /* 2 * QEMU Xen emulation: Event channel support 3 * 4 * Copyright © 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. 5 * 6 * Authors: David Woodhouse <dwmw2@infradead.org> 7 * 8 * This work is licensed under the terms of the GNU GPL, version 2 or later. 9 * See the COPYING file in the top-level directory. 10 */ 11 12 #ifndef QEMU_XEN_EVTCHN_H 13 #define QEMU_XEN_EVTCHN_H 14 15 #include "hw/sysbus.h" 16 17 void xen_evtchn_create(void); 18 int xen_evtchn_soft_reset(void); 19 int xen_evtchn_set_callback_param(uint64_t param); 20 void xen_evtchn_connect_gsis(qemu_irq *system_gsis); 21 void xen_evtchn_set_callback_level(int level); 22 23 struct evtchn_status; 24 struct evtchn_close; 25 struct evtchn_unmask; 26 struct evtchn_bind_virq; 27 struct evtchn_bind_ipi; 28 struct evtchn_send; 29 struct evtchn_alloc_unbound; 30 struct evtchn_bind_interdomain; 31 struct evtchn_bind_vcpu; 32 struct evtchn_reset; 33 int xen_evtchn_status_op(struct evtchn_status *status); 34 int xen_evtchn_close_op(struct evtchn_close *close); 35 int xen_evtchn_unmask_op(struct evtchn_unmask *unmask); 36 int xen_evtchn_bind_virq_op(struct evtchn_bind_virq *virq); 37 int xen_evtchn_bind_ipi_op(struct evtchn_bind_ipi *ipi); 38 int xen_evtchn_send_op(struct evtchn_send *send); 39 int xen_evtchn_alloc_unbound_op(struct evtchn_alloc_unbound *alloc); 40 int xen_evtchn_bind_interdomain_op(struct evtchn_bind_interdomain *interdomain); 41 int xen_evtchn_bind_vcpu_op(struct evtchn_bind_vcpu *vcpu); 42 int xen_evtchn_reset_op(struct evtchn_reset *reset); 43 44 #endif /* QEMU_XEN_EVTCHN_H */ 45