Merge branch '2022-02-08-Kconfig-updates'
[platform/kernel/u-boot.git] / include / xen / events.h
1 /* SPDX-License-Identifier: GPL-2.0
2  *
3  * (C) 2003 - Rolf Neugebauer - Intel Research Cambridge
4  * (C) 2005 - Grzegorz Milos - Intel Reseach Cambridge
5  * (C) 2020 - EPAM Systems Inc.
6  *
7  * File: events.h
8  * Author: Rolf Neugebauer (neugebar@dcs.gla.ac.uk)
9  * Changes: Grzegorz Milos (gm281@cam.ac.uk)
10  *
11  * Date: Jul 2003, changes Jun 2005
12  *
13  * Description: Deals with events on the event channels
14  */
15 #ifndef _EVENTS_H_
16 #define _EVENTS_H_
17
18 #include <asm/xen/hypercall.h>
19 #include <xen/interface/event_channel.h>
20
21 void init_events(void);
22 void fini_events(void);
23
24 int do_event(evtchn_port_t port, struct pt_regs *regs);
25 void unbind_evtchn(evtchn_port_t port);
26 void unbind_all_ports(void);
27 int evtchn_alloc_unbound(domid_t pal,
28                          void (*handler)(evtchn_port_t, struct pt_regs *, void *),
29                          void *data, evtchn_port_t *port);
30
31 /* Send notification via event channel */
32 static inline int notify_remote_via_evtchn(evtchn_port_t port)
33 {
34         struct evtchn_send op;
35
36         op.port = port;
37         return HYPERVISOR_event_channel_op(EVTCHNOP_send, &op);
38 }
39
40 void eventchn_poll(void);
41
42 #endif /* _EVENTS_H_ */