~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/xen/evtchn.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR MIT) */
  2 /******************************************************************************
  3  * evtchn.h
  4  *
  5  * Interface to /dev/xen/evtchn.
  6  *
  7  * Copyright (c) 2003-2005, K A Fraser
  8  *
  9  * This program is free software; you can redistribute it and/or
 10  * modify it under the terms of the GNU General Public License version 2
 11  * as published by the Free Software Foundation; or, when distributed
 12  * separately from the Linux kernel or incorporated into other
 13  * software packages, subject to the following license:
 14  *
 15  * Permission is hereby granted, free of charge, to any person obtaining a copy
 16  * of this source file (the "Software"), to deal in the Software without
 17  * restriction, including without limitation the rights to use, copy, modify,
 18  * merge, publish, distribute, sublicense, and/or sell copies of the Software,
 19  * and to permit persons to whom the Software is furnished to do so, subject to
 20  * the following conditions:
 21  *
 22  * The above copyright notice and this permission notice shall be included in
 23  * all copies or substantial portions of the Software.
 24  *
 25  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 26  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 27  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 28  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 29  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 30  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 31  * IN THE SOFTWARE.
 32  */
 33 
 34 #ifndef __LINUX_PUBLIC_EVTCHN_H__
 35 #define __LINUX_PUBLIC_EVTCHN_H__
 36 
 37 /*
 38  * Bind a fresh port to VIRQ @virq.
 39  * Return allocated port.
 40  */
 41 #define IOCTL_EVTCHN_BIND_VIRQ                          \
 42         _IOC(_IOC_NONE, 'E', 0, sizeof(struct ioctl_evtchn_bind_virq))
 43 struct ioctl_evtchn_bind_virq {
 44         unsigned int virq;
 45 };
 46 
 47 /*
 48  * Bind a fresh port to remote <@remote_domain, @remote_port>.
 49  * Return allocated port.
 50  */
 51 #define IOCTL_EVTCHN_BIND_INTERDOMAIN                   \
 52         _IOC(_IOC_NONE, 'E', 1, sizeof(struct ioctl_evtchn_bind_interdomain))
 53 struct ioctl_evtchn_bind_interdomain {
 54         unsigned int remote_domain, remote_port;
 55 };
 56 
 57 /*
 58  * Allocate a fresh port for binding to @remote_domain.
 59  * Return allocated port.
 60  */
 61 #define IOCTL_EVTCHN_BIND_UNBOUND_PORT                  \
 62         _IOC(_IOC_NONE, 'E', 2, sizeof(struct ioctl_evtchn_bind_unbound_port))
 63 struct ioctl_evtchn_bind_unbound_port {
 64         unsigned int remote_domain;
 65 };
 66 
 67 /*
 68  * Unbind previously allocated @port.
 69  */
 70 #define IOCTL_EVTCHN_UNBIND                             \
 71         _IOC(_IOC_NONE, 'E', 3, sizeof(struct ioctl_evtchn_unbind))
 72 struct ioctl_evtchn_unbind {
 73         unsigned int port;
 74 };
 75 
 76 /*
 77  * Unbind previously allocated @port.
 78  */
 79 #define IOCTL_EVTCHN_NOTIFY                             \
 80         _IOC(_IOC_NONE, 'E', 4, sizeof(struct ioctl_evtchn_notify))
 81 struct ioctl_evtchn_notify {
 82         unsigned int port;
 83 };
 84 
 85 /* Clear and reinitialise the event buffer. Clear error condition. */
 86 #define IOCTL_EVTCHN_RESET                              \
 87         _IOC(_IOC_NONE, 'E', 5, 0)
 88 
 89 /*
 90  * Restrict this file descriptor so that it can only be used to bind
 91  * new interdomain events from one domain.
 92  *
 93  * Once a file descriptor has been restricted it cannot be
 94  * de-restricted, and must be closed and re-opened.  Event channels
 95  * which were bound before restricting remain bound afterwards, and
 96  * can be notified as usual.
 97  */
 98 #define IOCTL_EVTCHN_RESTRICT_DOMID                     \
 99         _IOC(_IOC_NONE, 'E', 6, sizeof(struct ioctl_evtchn_restrict_domid))
100 struct ioctl_evtchn_restrict_domid {
101         domid_t domid;
102 };
103 
104 /*
105  * Bind statically allocated @port.
106  */
107 #define IOCTL_EVTCHN_BIND_STATIC                        \
108         _IOC(_IOC_NONE, 'E', 7, sizeof(struct ioctl_evtchn_bind))
109 struct ioctl_evtchn_bind {
110         unsigned int port;
111 };
112 
113 #endif /* __LINUX_PUBLIC_EVTCHN_H__ */
114 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php