• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   *   Copyright 1997 Transmeta Corporation - All Rights Reserved
3   *
4   * This file is part of the Linux kernel and is made available under
5   * the terms of the GNU General Public License, version 2, or at your
6   * option, any later version, incorporated herein by reference.
7   *
8   * ----------------------------------------------------------------------- */
9  
10  
11  #ifndef _UAPI_LINUX_AUTO_FS_H
12  #define _UAPI_LINUX_AUTO_FS_H
13  
14  #include <linux/types.h>
15  #include <linux/limits.h>
16  #ifndef __KERNEL__
17  #include <sys/ioctl.h>
18  #endif /* __KERNEL__ */
19  
20  
21  /* This file describes autofs v3 */
22  #define AUTOFS_PROTO_VERSION	3
23  
24  /* Range of protocol versions defined */
25  #define AUTOFS_MAX_PROTO_VERSION	AUTOFS_PROTO_VERSION
26  #define AUTOFS_MIN_PROTO_VERSION	AUTOFS_PROTO_VERSION
27  
28  /*
29   * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed
30   * back to the kernel via ioctl from userspace. On architectures where 32- and
31   * 64-bit userspace binaries can be executed it's important that the size of
32   * autofs_wqt_t stays constant between 32- and 64-bit Linux kernels so that we
33   * do not break the binary ABI interface by changing the structure size.
34   */
35  #if defined(__ia64__) || defined(__alpha__) /* pure 64bit architectures */
36  typedef unsigned long autofs_wqt_t;
37  #else
38  typedef unsigned int autofs_wqt_t;
39  #endif
40  
41  /* Packet types */
42  #define autofs_ptype_missing	0	/* Missing entry (mount request) */
43  #define autofs_ptype_expire	1	/* Expire entry (umount request) */
44  
45  struct autofs_packet_hdr {
46  	int proto_version;		/* Protocol version */
47  	int type;			/* Type of packet */
48  };
49  
50  struct autofs_packet_missing {
51  	struct autofs_packet_hdr hdr;
52  	autofs_wqt_t wait_queue_token;
53  	int len;
54  	char name[NAME_MAX+1];
55  };
56  
57  /* v3 expire (via ioctl) */
58  struct autofs_packet_expire {
59  	struct autofs_packet_hdr hdr;
60  	int len;
61  	char name[NAME_MAX+1];
62  };
63  
64  #define AUTOFS_IOC_READY      _IO(0x93, 0x60)
65  #define AUTOFS_IOC_FAIL       _IO(0x93, 0x61)
66  #define AUTOFS_IOC_CATATONIC  _IO(0x93, 0x62)
67  #define AUTOFS_IOC_PROTOVER   _IOR(0x93, 0x63, int)
68  #define AUTOFS_IOC_SETTIMEOUT32 _IOWR(0x93, 0x64, compat_ulong_t)
69  #define AUTOFS_IOC_SETTIMEOUT _IOWR(0x93, 0x64, unsigned long)
70  #define AUTOFS_IOC_EXPIRE     _IOR(0x93, 0x65, struct autofs_packet_expire)
71  
72  #endif /* _UAPI_LINUX_AUTO_FS_H */
73