xref: /openbmc/qemu/hw/i386/kvm/xen_evtchn.h (revision b746a779)
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 
15ddf0fd9aSDavid Woodhouse #include "hw/sysbus.h"
16ddf0fd9aSDavid 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);
20ddf0fd9aSDavid Woodhouse void xen_evtchn_connect_gsis(qemu_irq *system_gsis);
21ddf0fd9aSDavid Woodhouse void xen_evtchn_set_callback_level(int level);
2291cce756SDavid Woodhouse 
23*b746a779SJoao Martins int xen_evtchn_set_port(uint16_t port);
24*b746a779SJoao Martins 
254858ba20SDavid Woodhouse struct evtchn_status;
2683eb5811SDavid Woodhouse struct evtchn_close;
27190cc3c0SDavid Woodhouse struct evtchn_unmask;
28c723d4c1SDavid Woodhouse struct evtchn_bind_virq;
29f5417856SDavid Woodhouse struct evtchn_bind_ipi;
30cf7679abSDavid Woodhouse struct evtchn_send;
31e1db61b8SDavid Woodhouse struct evtchn_alloc_unbound;
3284327881SDavid Woodhouse struct evtchn_bind_interdomain;
3330667046SDavid Woodhouse struct evtchn_bind_vcpu;
34a15b1097SDavid Woodhouse struct evtchn_reset;
354858ba20SDavid Woodhouse int xen_evtchn_status_op(struct evtchn_status *status);
3683eb5811SDavid Woodhouse int xen_evtchn_close_op(struct evtchn_close *close);
37190cc3c0SDavid Woodhouse int xen_evtchn_unmask_op(struct evtchn_unmask *unmask);
38c723d4c1SDavid Woodhouse int xen_evtchn_bind_virq_op(struct evtchn_bind_virq *virq);
39f5417856SDavid Woodhouse int xen_evtchn_bind_ipi_op(struct evtchn_bind_ipi *ipi);
40cf7679abSDavid Woodhouse int xen_evtchn_send_op(struct evtchn_send *send);
41e1db61b8SDavid Woodhouse int xen_evtchn_alloc_unbound_op(struct evtchn_alloc_unbound *alloc);
4284327881SDavid Woodhouse int xen_evtchn_bind_interdomain_op(struct evtchn_bind_interdomain *interdomain);
4330667046SDavid Woodhouse int xen_evtchn_bind_vcpu_op(struct evtchn_bind_vcpu *vcpu);
44a15b1097SDavid Woodhouse int xen_evtchn_reset_op(struct evtchn_reset *reset);
454858ba20SDavid Woodhouse 
4691cce756SDavid Woodhouse #endif /* QEMU_XEN_EVTCHN_H */
47