History

Merge tag 'stable/for-linus-3.7-uapi-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen

Pull Xen UAPI disintegration from Konrad Rzeszutek Wilk: "This has the UAPI disintegration work done by David Howells" * tag 'stable/for-linus-3.7-uapi-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen: UAPI: (Scripted) Disintegrate include/xen

Linus Torvalds committed 14 years ago

Commit ba8a3d62 parents 125aae1 32451034 files · +2 −2Browse files

Showing the changes to include/uapi (3 of 4 files). Show all

Unified · Split

3 files
  1. include/uapi/xen/Kbuild +2 −0
  2. include/uapi/xen/evtchn.h +88 −0
  3. include/uapi/xen/privcmd.h +98 −0
include/uapi/xen/Kbuild+2−0
@@ -1 +1,3 @@
11 # UAPI Header export list
2+header-y += evtchn.h
3+header-y += privcmd.h
include/uapi/xen/evtchn.h+88−0
@@ -0,0 +1,88 @@
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__ */
include/uapi/xen/privcmd.h+98−0
@@ -0,0 +1,98 @@
1+/******************************************************************************
2+ * privcmd.h
3+ *
4+ * Interface to /proc/xen/privcmd.
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_PRIVCMD_H__
34+#define __LINUX_PUBLIC_PRIVCMD_H__
35+
36+#include <linux/types.h>
37+#include <linux/compiler.h>
38+#include <xen/interface/xen.h>
39+
40+struct privcmd_hypercall {
41+ __u64 op;
42+ __u64 arg[5];
43+};
44+
45+struct privcmd_mmap_entry {
46+ __u64 va;
47+ __u64 mfn;
48+ __u64 npages;
49+};
50+
51+struct privcmd_mmap {
52+ int num;
53+ domid_t dom; /* target domain */
54+ struct privcmd_mmap_entry __user *entry;
55+};
56+
57+struct privcmd_mmapbatch {
58+ int num; /* number of pages to populate */
59+ domid_t dom; /* target domain */
60+ __u64 addr; /* virtual address */
61+ xen_pfn_t __user *arr; /* array of mfns - or'd with
62+ PRIVCMD_MMAPBATCH_*_ERROR on err */
63+};
64+
65+#define PRIVCMD_MMAPBATCH_MFN_ERROR 0xf0000000U
66+#define PRIVCMD_MMAPBATCH_PAGED_ERROR 0x80000000U
67+
68+struct privcmd_mmapbatch_v2 {
69+ unsigned int num; /* number of pages to populate */
70+ domid_t dom; /* target domain */
71+ __u64 addr; /* virtual address */
72+ const xen_pfn_t __user *arr; /* array of mfns */
73+ int __user *err; /* array of error codes */
74+};
75+
76+/*
77+ * @cmd: IOCTL_PRIVCMD_HYPERCALL
78+ * @arg: &privcmd_hypercall_t
79+ * Return: Value returned from execution of the specified hypercall.
80+ *
81+ * @cmd: IOCTL_PRIVCMD_MMAPBATCH_V2
82+ * @arg: &struct privcmd_mmapbatch_v2
83+ * Return: 0 on success (i.e., arg->err contains valid error codes for
84+ * each frame). On an error other than a failed frame remap, -1 is
85+ * returned and errno is set to EINVAL, EFAULT etc. As an exception,
86+ * if the operation was otherwise successful but any frame failed with
87+ * -ENOENT, then -1 is returned and errno is set to ENOENT.
88+ */
89+#define IOCTL_PRIVCMD_HYPERCALL \
90+ _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
91+#define IOCTL_PRIVCMD_MMAP \
92+ _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
93+#define IOCTL_PRIVCMD_MMAPBATCH \
94+ _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
95+#define IOCTL_PRIVCMD_MMAPBATCH_V2 \
96+ _IOC(_IOC_NONE, 'P', 4, sizeof(struct privcmd_mmapbatch_v2))
97+
98+#endif /* __LINUX_PUBLIC_PRIVCMD_H__ */