xref: /openbmc/qemu/hw/i386/kvm/xen_evtchn.h (revision ddf0fd9a)
191cce756SDavid Woodhouse /*
291cce756SDavid Woodhouse  * QEMU Xen emulation: Event channel support
391cce756SDavid Woodhouse  *
491cce756SDavid Woodhouse  * Copyright © 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
591cce756SDavid Woodhouse  *
691cce756SDavid Woodhouse  * Authors: David Woodhouse <dwmw2@infradead.org>
791cce756SDavid Woodhouse  *
891cce756SDavid Woodhouse  * This work is licensed under the terms of the GNU GPL, version 2 or later.
991cce756SDavid Woodhouse  * See the COPYING file in the top-level directory.
1091cce756SDavid Woodhouse  */
1191cce756SDavid Woodhouse 
1291cce756SDavid Woodhouse #ifndef QEMU_XEN_EVTCHN_H
1391cce756SDavid Woodhouse #define QEMU_XEN_EVTCHN_H
1491cce756SDavid Woodhouse 
15*ddf0fd9aSDavid Woodhouse #include "hw/sysbus.h"
16*ddf0fd9aSDavid Woodhouse 
1791cce756SDavid Woodhouse void xen_evtchn_create(void);
18a15b1097SDavid Woodhouse int xen_evtchn_soft_reset(void);
1991cce756SDavid Woodhouse int xen_evtchn_set_callback_param(uint64_t param);
20*ddf0fd9aSDavid Woodhouse void xen_evtchn_connect_gsis(qemu_irq *system_gsis);
21*ddf0fd9aSDavid Woodhouse void xen_evtchn_set_callback_level(int level);
2291cce756SDavid Woodhouse 
234858ba20SDavid Woodhouse struct evtchn_status;
2483eb5811SDavid Woodhouse struct evtchn_close;
25190cc3c0SDavid Woodhouse struct evtchn_unmask;
26c723d4c1SDavid Woodhouse struct evtchn_bind_virq;
27f5417856SDavid Woodhouse struct evtchn_bind_ipi;
28cf7679abSDavid Woodhouse struct evtchn_send;
29e1db61b8SDavid Woodhouse struct evtchn_alloc_unbound;
3084327881SDavid Woodhouse struct evtchn_bind_interdomain;
3130667046SDavid Woodhouse struct evtchn_bind_vcpu;
32a15b1097SDavid Woodhouse struct evtchn_reset;
334858ba20SDavid Woodhouse int xen_evtchn_status_op(struct evtchn_status *status);
3483eb5811SDavid Woodhouse int xen_evtchn_close_op(struct evtchn_close *close);
35190cc3c0SDavid Woodhouse int xen_evtchn_unmask_op(struct evtchn_unmask *unmask);
36c723d4c1SDavid Woodhouse int xen_evtchn_bind_virq_op(struct evtchn_bind_virq *virq);
37f5417856SDavid Woodhouse int xen_evtchn_bind_ipi_op(struct evtchn_bind_ipi *ipi);
38cf7679abSDavid Woodhouse int xen_evtchn_send_op(struct evtchn_send *send);
39e1db61b8SDavid Woodhouse int xen_evtchn_alloc_unbound_op(struct evtchn_alloc_unbound *alloc);
4084327881SDavid Woodhouse int xen_evtchn_bind_interdomain_op(struct evtchn_bind_interdomain *interdomain);
4130667046SDavid Woodhouse int xen_evtchn_bind_vcpu_op(struct evtchn_bind_vcpu *vcpu);
42a15b1097SDavid Woodhouse int xen_evtchn_reset_op(struct evtchn_reset *reset);
434858ba20SDavid Woodhouse 
4491cce756SDavid Woodhouse #endif /* QEMU_XEN_EVTCHN_H */
45