source: trunk/packages/xen-3.1/xen-3.1/extras/mini-os/include/events.h @ 34

Last change on this file since 34 was 34, checked in by hartmans, 18 years ago

Add xen and xen-common

File size: 1.6 KB
Line 
1/* -*-  Mode:C; c-basic-offset:4; tab-width:4 -*-
2 ****************************************************************************
3 * (C) 2003 - Rolf Neugebauer - Intel Research Cambridge
4 * (C) 2005 - Grzegorz Milos - Intel Reseach Cambridge
5 ****************************************************************************
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 * Environment: Xen Minimal OS
14 * Description: Deals with events on the event channels
15 *
16 ****************************************************************************
17 */
18
19#ifndef _EVENTS_H_
20#define _EVENTS_H_
21
22#include<traps.h>
23#include<xen/event_channel.h>
24
25typedef void (*evtchn_handler_t)(evtchn_port_t, struct pt_regs *, void *);
26
27/* prototypes */
28int do_event(evtchn_port_t port, struct pt_regs *regs);
29int bind_virq(uint32_t virq, evtchn_handler_t handler, void *data);
30evtchn_port_t bind_evtchn(evtchn_port_t port, evtchn_handler_t handler,
31                                                  void *data);
32void unbind_evtchn(evtchn_port_t port);
33void init_events(void);
34int evtchn_alloc_unbound(domid_t pal, evtchn_handler_t handler,
35                                                 void *data, evtchn_port_t *port);
36int evtchn_bind_interdomain(domid_t pal, evtchn_port_t remote_port,
37                                                        evtchn_handler_t handler, void *data,
38                                                        evtchn_port_t *local_port);
39void unbind_all_ports(void);
40
41static inline int notify_remote_via_evtchn(evtchn_port_t port)
42{
43    evtchn_send_t op;
44    op.port = port;
45    return HYPERVISOR_event_channel_op(EVTCHNOP_send, &op);
46}
47
48
49#endif /* _EVENTS_H_ */
Note: See TracBrowser for help on using the repository browser.