Root/
1 | /* |
2 | * Copyright 2008 Red Hat, Inc. All rights reserved. |
3 | * Copyright 2008 Ian Kent <raven@themaw.net> |
4 | * |
5 | * This file is part of the Linux kernel and is made available under |
6 | * the terms of the GNU General Public License, version 2, or at your |
7 | * option, any later version, incorporated herein by reference. |
8 | */ |
9 | |
10 | #ifndef _LINUX_AUTO_DEV_IOCTL_H |
11 | #define _LINUX_AUTO_DEV_IOCTL_H |
12 | |
13 | #include <linux/auto_fs.h> |
14 | |
15 | #ifdef __KERNEL__ |
16 | #include <linux/string.h> |
17 | #else |
18 | #include <string.h> |
19 | #endif /* __KERNEL__ */ |
20 | |
21 | #define AUTOFS_DEVICE_NAME "autofs" |
22 | |
23 | #define AUTOFS_DEV_IOCTL_VERSION_MAJOR 1 |
24 | #define AUTOFS_DEV_IOCTL_VERSION_MINOR 0 |
25 | |
26 | #define AUTOFS_DEVID_LEN 16 |
27 | |
28 | #define AUTOFS_DEV_IOCTL_SIZE sizeof(struct autofs_dev_ioctl) |
29 | |
30 | /* |
31 | * An ioctl interface for autofs mount point control. |
32 | */ |
33 | |
34 | struct args_protover { |
35 | __u32 version; |
36 | }; |
37 | |
38 | struct args_protosubver { |
39 | __u32 sub_version; |
40 | }; |
41 | |
42 | struct args_openmount { |
43 | __u32 devid; |
44 | }; |
45 | |
46 | struct args_ready { |
47 | __u32 token; |
48 | }; |
49 | |
50 | struct args_fail { |
51 | __u32 token; |
52 | __s32 status; |
53 | }; |
54 | |
55 | struct args_setpipefd { |
56 | __s32 pipefd; |
57 | }; |
58 | |
59 | struct args_timeout { |
60 | __u64 timeout; |
61 | }; |
62 | |
63 | struct args_requester { |
64 | __u32 uid; |
65 | __u32 gid; |
66 | }; |
67 | |
68 | struct args_expire { |
69 | __u32 how; |
70 | }; |
71 | |
72 | struct args_askumount { |
73 | __u32 may_umount; |
74 | }; |
75 | |
76 | struct args_ismountpoint { |
77 | union { |
78 | struct args_in { |
79 | __u32 type; |
80 | } in; |
81 | struct args_out { |
82 | __u32 devid; |
83 | __u32 magic; |
84 | } out; |
85 | }; |
86 | }; |
87 | |
88 | /* |
89 | * All the ioctls use this structure. |
90 | * When sending a path size must account for the total length |
91 | * of the chunk of memory otherwise is is the size of the |
92 | * structure. |
93 | */ |
94 | |
95 | struct autofs_dev_ioctl { |
96 | __u32 ver_major; |
97 | __u32 ver_minor; |
98 | __u32 size; /* total size of data passed in |
99 | * including this struct */ |
100 | __s32 ioctlfd; /* automount command fd */ |
101 | |
102 | /* Command parameters */ |
103 | |
104 | union { |
105 | struct args_protover protover; |
106 | struct args_protosubver protosubver; |
107 | struct args_openmount openmount; |
108 | struct args_ready ready; |
109 | struct args_fail fail; |
110 | struct args_setpipefd setpipefd; |
111 | struct args_timeout timeout; |
112 | struct args_requester requester; |
113 | struct args_expire expire; |
114 | struct args_askumount askumount; |
115 | struct args_ismountpoint ismountpoint; |
116 | }; |
117 | |
118 | char path[0]; |
119 | }; |
120 | |
121 | static inline void init_autofs_dev_ioctl(struct autofs_dev_ioctl *in) |
122 | { |
123 | memset(in, 0, sizeof(struct autofs_dev_ioctl)); |
124 | in->ver_major = AUTOFS_DEV_IOCTL_VERSION_MAJOR; |
125 | in->ver_minor = AUTOFS_DEV_IOCTL_VERSION_MINOR; |
126 | in->size = sizeof(struct autofs_dev_ioctl); |
127 | in->ioctlfd = -1; |
128 | return; |
129 | } |
130 | |
131 | /* |
132 | * If you change this make sure you make the corresponding change |
133 | * to autofs-dev-ioctl.c:lookup_ioctl() |
134 | */ |
135 | enum { |
136 | /* Get various version info */ |
137 | AUTOFS_DEV_IOCTL_VERSION_CMD = 0x71, |
138 | AUTOFS_DEV_IOCTL_PROTOVER_CMD, |
139 | AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD, |
140 | |
141 | /* Open mount ioctl fd */ |
142 | AUTOFS_DEV_IOCTL_OPENMOUNT_CMD, |
143 | |
144 | /* Close mount ioctl fd */ |
145 | AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD, |
146 | |
147 | /* Mount/expire status returns */ |
148 | AUTOFS_DEV_IOCTL_READY_CMD, |
149 | AUTOFS_DEV_IOCTL_FAIL_CMD, |
150 | |
151 | /* Activate/deactivate autofs mount */ |
152 | AUTOFS_DEV_IOCTL_SETPIPEFD_CMD, |
153 | AUTOFS_DEV_IOCTL_CATATONIC_CMD, |
154 | |
155 | /* Expiry timeout */ |
156 | AUTOFS_DEV_IOCTL_TIMEOUT_CMD, |
157 | |
158 | /* Get mount last requesting uid and gid */ |
159 | AUTOFS_DEV_IOCTL_REQUESTER_CMD, |
160 | |
161 | /* Check for eligible expire candidates */ |
162 | AUTOFS_DEV_IOCTL_EXPIRE_CMD, |
163 | |
164 | /* Request busy status */ |
165 | AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD, |
166 | |
167 | /* Check if path is a mountpoint */ |
168 | AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD, |
169 | }; |
170 | |
171 | #define AUTOFS_IOCTL 0x93 |
172 | |
173 | #define AUTOFS_DEV_IOCTL_VERSION \ |
174 | _IOWR(AUTOFS_IOCTL, \ |
175 | AUTOFS_DEV_IOCTL_VERSION_CMD, struct autofs_dev_ioctl) |
176 | |
177 | #define AUTOFS_DEV_IOCTL_PROTOVER \ |
178 | _IOWR(AUTOFS_IOCTL, \ |
179 | AUTOFS_DEV_IOCTL_PROTOVER_CMD, struct autofs_dev_ioctl) |
180 | |
181 | #define AUTOFS_DEV_IOCTL_PROTOSUBVER \ |
182 | _IOWR(AUTOFS_IOCTL, \ |
183 | AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD, struct autofs_dev_ioctl) |
184 | |
185 | #define AUTOFS_DEV_IOCTL_OPENMOUNT \ |
186 | _IOWR(AUTOFS_IOCTL, \ |
187 | AUTOFS_DEV_IOCTL_OPENMOUNT_CMD, struct autofs_dev_ioctl) |
188 | |
189 | #define AUTOFS_DEV_IOCTL_CLOSEMOUNT \ |
190 | _IOWR(AUTOFS_IOCTL, \ |
191 | AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD, struct autofs_dev_ioctl) |
192 | |
193 | #define AUTOFS_DEV_IOCTL_READY \ |
194 | _IOWR(AUTOFS_IOCTL, \ |
195 | AUTOFS_DEV_IOCTL_READY_CMD, struct autofs_dev_ioctl) |
196 | |
197 | #define AUTOFS_DEV_IOCTL_FAIL \ |
198 | _IOWR(AUTOFS_IOCTL, \ |
199 | AUTOFS_DEV_IOCTL_FAIL_CMD, struct autofs_dev_ioctl) |
200 | |
201 | #define AUTOFS_DEV_IOCTL_SETPIPEFD \ |
202 | _IOWR(AUTOFS_IOCTL, \ |
203 | AUTOFS_DEV_IOCTL_SETPIPEFD_CMD, struct autofs_dev_ioctl) |
204 | |
205 | #define AUTOFS_DEV_IOCTL_CATATONIC \ |
206 | _IOWR(AUTOFS_IOCTL, \ |
207 | AUTOFS_DEV_IOCTL_CATATONIC_CMD, struct autofs_dev_ioctl) |
208 | |
209 | #define AUTOFS_DEV_IOCTL_TIMEOUT \ |
210 | _IOWR(AUTOFS_IOCTL, \ |
211 | AUTOFS_DEV_IOCTL_TIMEOUT_CMD, struct autofs_dev_ioctl) |
212 | |
213 | #define AUTOFS_DEV_IOCTL_REQUESTER \ |
214 | _IOWR(AUTOFS_IOCTL, \ |
215 | AUTOFS_DEV_IOCTL_REQUESTER_CMD, struct autofs_dev_ioctl) |
216 | |
217 | #define AUTOFS_DEV_IOCTL_EXPIRE \ |
218 | _IOWR(AUTOFS_IOCTL, \ |
219 | AUTOFS_DEV_IOCTL_EXPIRE_CMD, struct autofs_dev_ioctl) |
220 | |
221 | #define AUTOFS_DEV_IOCTL_ASKUMOUNT \ |
222 | _IOWR(AUTOFS_IOCTL, \ |
223 | AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD, struct autofs_dev_ioctl) |
224 | |
225 | #define AUTOFS_DEV_IOCTL_ISMOUNTPOINT \ |
226 | _IOWR(AUTOFS_IOCTL, \ |
227 | AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD, struct autofs_dev_ioctl) |
228 | |
229 | #endif /* _LINUX_AUTO_DEV_IOCTL_H */ |
230 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9