Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/include/xen/evtchn.h
10814 views
1
/******************************************************************************
2
* evtchn.h
3
*
4
* Interface to /dev/xen/evtchn.
5
*
6
* Copyright (c) 2003-2005, K A Fraser
7
*
8
* This program is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU General Public License version 2
10
* as published by the Free Software Foundation; or, when distributed
11
* separately from the Linux kernel or incorporated into other
12
* software packages, subject to the following license:
13
*
14
* Permission is hereby granted, free of charge, to any person obtaining a copy
15
* of this source file (the "Software"), to deal in the Software without
16
* restriction, including without limitation the rights to use, copy, modify,
17
* merge, publish, distribute, sublicense, and/or sell copies of the Software,
18
* and to permit persons to whom the Software is furnished to do so, subject to
19
* the following conditions:
20
*
21
* The above copyright notice and this permission notice shall be included in
22
* all copies or substantial portions of the Software.
23
*
24
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
30
* IN THE SOFTWARE.
31
*/
32
33
#ifndef __LINUX_PUBLIC_EVTCHN_H__
34
#define __LINUX_PUBLIC_EVTCHN_H__
35
36
/*
37
* Bind a fresh port to VIRQ @virq.
38
* Return allocated port.
39
*/
40
#define IOCTL_EVTCHN_BIND_VIRQ \
41
_IOC(_IOC_NONE, 'E', 0, sizeof(struct ioctl_evtchn_bind_virq))
42
struct ioctl_evtchn_bind_virq {
43
unsigned int virq;
44
};
45
46
/*
47
* Bind a fresh port to remote <@remote_domain, @remote_port>.
48
* Return allocated port.
49
*/
50
#define IOCTL_EVTCHN_BIND_INTERDOMAIN \
51
_IOC(_IOC_NONE, 'E', 1, sizeof(struct ioctl_evtchn_bind_interdomain))
52
struct ioctl_evtchn_bind_interdomain {
53
unsigned int remote_domain, remote_port;
54
};
55
56
/*
57
* Allocate a fresh port for binding to @remote_domain.
58
* Return allocated port.
59
*/
60
#define IOCTL_EVTCHN_BIND_UNBOUND_PORT \
61
_IOC(_IOC_NONE, 'E', 2, sizeof(struct ioctl_evtchn_bind_unbound_port))
62
struct ioctl_evtchn_bind_unbound_port {
63
unsigned int remote_domain;
64
};
65
66
/*
67
* Unbind previously allocated @port.
68
*/
69
#define IOCTL_EVTCHN_UNBIND \
70
_IOC(_IOC_NONE, 'E', 3, sizeof(struct ioctl_evtchn_unbind))
71
struct ioctl_evtchn_unbind {
72
unsigned int port;
73
};
74
75
/*
76
* Unbind previously allocated @port.
77
*/
78
#define IOCTL_EVTCHN_NOTIFY \
79
_IOC(_IOC_NONE, 'E', 4, sizeof(struct ioctl_evtchn_notify))
80
struct ioctl_evtchn_notify {
81
unsigned int port;
82
};
83
84
/* Clear and reinitialise the event buffer. Clear error condition. */
85
#define IOCTL_EVTCHN_RESET \
86
_IOC(_IOC_NONE, 'E', 5, 0)
87
88
#endif /* __LINUX_PUBLIC_EVTCHN_H__ */
89
90