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

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

~ [ 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