1 /******************************************************************************
4 * Interface to /dev/xen/evtchn.
6 * Copyright (c) 2003-2005, K A Fraser
8 * This file may be distributed separately from the Linux kernel, or
9 * incorporated into other software packages, subject to the following license:
11 * Permission is hereby granted, free of charge, to any person obtaining a copy
12 * of this source file (the "Software"), to deal in the Software without
13 * restriction, including without limitation the rights to use, copy, modify,
14 * merge, publish, distribute, sublicense, and/or sell copies of the Software,
15 * and to permit persons to whom the Software is furnished to do so, subject to
16 * the following conditions:
18 * The above copyright notice and this permission notice shall be included in
19 * all copies or substantial portions of the Software.
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
31 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
32 * Use is subject to license terms.
35 #ifndef _XEN_SYS_EVTCHN_H
36 #define _XEN_SYS_EVTCHN_H
38 #pragma ident "%Z%%M% %I% %E% SMI"
41 #define _IOC(flag, letter, inum, size) ((letter) << 8 | (inum))
44 * Bind a fresh port to VIRQ @virq.
45 * Return allocated port.
47 #define IOCTL_EVTCHN_BIND_VIRQ \
48 _IOC(_IOC_NONE, 'E', 0, sizeof(struct ioctl_evtchn_bind_virq))
49 struct ioctl_evtchn_bind_virq
{
54 * Bind a fresh port to remote <@remote_domain, @remote_port>.
55 * Return allocated port.
57 #define IOCTL_EVTCHN_BIND_INTERDOMAIN \
58 _IOC(_IOC_NONE, 'E', 1, sizeof(struct ioctl_evtchn_bind_interdomain))
59 struct ioctl_evtchn_bind_interdomain
{
60 unsigned int remote_domain
, remote_port
;
64 * Allocate a fresh port for binding to @remote_domain.
65 * Return allocated port.
67 #define IOCTL_EVTCHN_BIND_UNBOUND_PORT \
68 _IOC(_IOC_NONE, 'E', 2, sizeof(struct ioctl_evtchn_bind_unbound_port))
69 struct ioctl_evtchn_bind_unbound_port
{
70 unsigned int remote_domain
;
74 * Unbind previously allocated @port.
76 #define IOCTL_EVTCHN_UNBIND \
77 _IOC(_IOC_NONE, 'E', 3, sizeof(struct ioctl_evtchn_unbind))
78 struct ioctl_evtchn_unbind
{
83 * Notify the given @port.
85 #define IOCTL_EVTCHN_NOTIFY \
86 _IOC(_IOC_NONE, 'E', 4, sizeof(struct ioctl_evtchn_notify))
87 struct ioctl_evtchn_notify
{
91 #endif /* _XEN_SYS_EVTCHN_H */
95 * c-file-style: "solaris"