Magellan Linux

Contents of /trunk/kernel26-xen/patches-2.6.25-r1/1012-2.6.25-xen-Add-proc-xen-capabilities.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 606 - (show annotations) (download)
Thu May 22 23:13:13 2008 UTC (15 years, 11 months ago) by niro
File size: 6325 byte(s)
-ver bump to 2.6.25-magellan-r1:
- linux-2.6.25.4
- fbcondecor-0.9.4
- squashfs-3.3
- unionfs-2.3.3
- tuxonice-3.0-rc7
- linux-phc-0.3.0
- acpi-dstd-0.9a
- reiser4
- xen-3.2.0
. ipw3945-1.2.2

1 From 923fc581e06dcb104c23121133e16dc1206d5820 Mon Sep 17 00:00:00 2001
2 From: Mark McLoughlin <markmc@redhat.com>
3 Date: Mon, 4 Feb 2008 09:16:51 +0000
4 Subject: [PATCH] xen: Add /proc/xen/capabilities
5
6 /proc/xen/capabilities is used by the xend init script
7 to check whether it is running on Dom0.
8
9 Signed-off-by: Mark McLoughlin <markmc@redhat.com>
10 ---
11 drivers/xen/xenctrl/Makefile | 1 +
12 drivers/xen/xenctrl/capabilities.c | 68 ++++++++++++++++++++++++++++++++++++
13 drivers/xen/xenctrl/main.c | 11 ++++++
14 drivers/xen/xenctrl/xenctrl.h | 39 ++++++++++++++++++++
15 4 files changed, 119 insertions(+), 0 deletions(-)
16 create mode 100644 drivers/xen/xenctrl/capabilities.c
17 create mode 100644 drivers/xen/xenctrl/xenctrl.h
18
19 diff --git a/drivers/xen/xenctrl/Makefile b/drivers/xen/xenctrl/Makefile
20 index 1f43a43..631f535 100644
21 --- a/drivers/xen/xenctrl/Makefile
22 +++ b/drivers/xen/xenctrl/Makefile
23 @@ -2,3 +2,4 @@ obj-$(CONFIG_XENCTRL) += xenctrl.o
24
25 xenctrl-objs =
26 xenctrl-objs += main.o
27 +xenctrl-objs += capabilities.o
28 diff --git a/drivers/xen/xenctrl/capabilities.c b/drivers/xen/xenctrl/capabilities.c
29 new file mode 100644
30 index 0000000..1ff078a
31 --- /dev/null
32 +++ b/drivers/xen/xenctrl/capabilities.c
33 @@ -0,0 +1,68 @@
34 +/******************************************************************************
35 + *
36 + * capabilities.c
37 + *
38 + * /proc/xen/capabilities
39 + *
40 + * Copyright (c) 2002-2004, K A Fraser, B Dragovic
41 + *
42 + * This program is free software; you can redistribute it and/or
43 + * modify it under the terms of the GNU General Public License version 2
44 + * as published by the Free Software Foundation; or, when distributed
45 + * separately from the Linux kernel or incorporated into other
46 + * software packages, subject to the following license:
47 + *
48 + * Permission is hereby granted, free of charge, to any person obtaining a copy
49 + * of this source file (the "Software"), to deal in the Software without
50 + * restriction, including without limitation the rights to use, copy, modify,
51 + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
52 + * and to permit persons to whom the Software is furnished to do so, subject to
53 + * the following conditions:
54 + *
55 + * The above copyright notice and this permission notice shall be included in
56 + * all copies or substantial portions of the Software.
57 + *
58 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
59 + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
60 + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
61 + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
62 + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
63 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
64 + * IN THE SOFTWARE.
65 + */
66 +
67 +#include <linux/proc_fs.h>
68 +#include <linux/module.h>
69 +#include <asm/xen/hypervisor.h>
70 +
71 +static int capabilities_read(char *page, char **start, off_t off,
72 + int count, int *eof, void *data)
73 +{
74 + int len = 0;
75 + *page = 0;
76 +
77 + if (is_initial_xendomain())
78 + len = sprintf(page, "control_d\n");
79 +
80 + *eof = 1;
81 + return len;
82 +}
83 +
84 +int __init capabilities_create_proc_entry(void)
85 +{
86 + struct proc_dir_entry *entry;
87 +
88 + entry = create_proc_entry("xen/capabilities", 0400, NULL);
89 + if (!entry)
90 + return -ENOMEM;
91 +
92 + entry->owner = THIS_MODULE;
93 + entry->read_proc = capabilities_read;
94 +
95 + return 0;
96 +}
97 +
98 +void __exit capabilities_remove_proc_entry(void)
99 +{
100 + remove_proc_entry("xen/capabilities", NULL);
101 +}
102 diff --git a/drivers/xen/xenctrl/main.c b/drivers/xen/xenctrl/main.c
103 index 2965ceb..0e42f7e 100644
104 --- a/drivers/xen/xenctrl/main.c
105 +++ b/drivers/xen/xenctrl/main.c
106 @@ -31,6 +31,8 @@
107 * IN THE SOFTWARE.
108 */
109
110 +#include "xenctrl.h"
111 +
112 #include <linux/proc_fs.h>
113 #include <linux/module.h>
114 #include <asm/xen/hypervisor.h>
115 @@ -38,6 +40,7 @@
116 static int __init xenctrl_init(void)
117 {
118 struct proc_dir_entry *dir;
119 + int ret;
120
121 if (!is_running_on_xen())
122 return -ENODEV;
123 @@ -48,11 +51,19 @@ static int __init xenctrl_init(void)
124
125 dir->owner = THIS_MODULE;
126
127 + ret = capabilities_create_proc_entry();
128 + if (ret)
129 + goto fail1;
130 +
131 return 0;
132 +
133 + fail1: remove_proc_entry("xen", NULL);
134 + return ret;
135 }
136
137 static void __exit xenctrl_exit(void)
138 {
139 + capabilities_remove_proc_entry();
140 remove_proc_entry("xen", NULL);
141 }
142
143 diff --git a/drivers/xen/xenctrl/xenctrl.h b/drivers/xen/xenctrl/xenctrl.h
144 new file mode 100644
145 index 0000000..7378dde
146 --- /dev/null
147 +++ b/drivers/xen/xenctrl/xenctrl.h
148 @@ -0,0 +1,39 @@
149 +/******************************************************************************
150 + * xenctl.h
151 + *
152 + * Xen userspace control interfaces
153 + *
154 + * Copyright (c) 2002-2004, K A Fraser, B Dragovic
155 + *
156 + * This program is free software; you can redistribute it and/or
157 + * modify it under the terms of the GNU General Public License version 2
158 + * as published by the Free Software Foundation; or, when distributed
159 + * separately from the Linux kernel or incorporated into other
160 + * software packages, subject to the following license:
161 + *
162 + * Permission is hereby granted, free of charge, to any person obtaining a copy
163 + * of this source file (the "Software"), to deal in the Software without
164 + * restriction, including without limitation the rights to use, copy, modify,
165 + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
166 + * and to permit persons to whom the Software is furnished to do so, subject to
167 + * the following conditions:
168 + *
169 + * The above copyright notice and this permission notice shall be included in
170 + * all copies or substantial portions of the Software.
171 + *
172 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
173 + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
174 + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
175 + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
176 + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
177 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
178 + * IN THE SOFTWARE.
179 + */
180 +
181 +#include <linux/init.h>
182 +
183 +/*
184 + * capabilities.c
185 + */
186 +int capabilities_create_proc_entry(void) __init;
187 +void capabilities_remove_proc_entry(void) __exit;
188 --
189 1.5.4.1
190