xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/linux/auto_fs.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi /* -*- linux-c -*- ------------------------------------------------------- *
2*53ee8cc1Swenshuai.xi  *
3*53ee8cc1Swenshuai.xi  * linux/include/linux/auto_fs.h
4*53ee8cc1Swenshuai.xi  *
5*53ee8cc1Swenshuai.xi  *   Copyright 1997 Transmeta Corporation - All Rights Reserved
6*53ee8cc1Swenshuai.xi  *
7*53ee8cc1Swenshuai.xi  * This file is part of the Linux kernel and is made available under
8*53ee8cc1Swenshuai.xi  * the terms of the GNU General Public License, version 2, or at your
9*53ee8cc1Swenshuai.xi  * option, any later version, incorporated herein by reference.
10*53ee8cc1Swenshuai.xi  *
11*53ee8cc1Swenshuai.xi  * ----------------------------------------------------------------------- */
12*53ee8cc1Swenshuai.xi 
13*53ee8cc1Swenshuai.xi 
14*53ee8cc1Swenshuai.xi #ifndef _LINUX_AUTO_FS_H
15*53ee8cc1Swenshuai.xi #define _LINUX_AUTO_FS_H
16*53ee8cc1Swenshuai.xi 
17*53ee8cc1Swenshuai.xi 
18*53ee8cc1Swenshuai.xi #include <linux/ioctl.h>
19*53ee8cc1Swenshuai.xi 
20*53ee8cc1Swenshuai.xi /* This file describes autofs v3 */
21*53ee8cc1Swenshuai.xi #define AUTOFS_PROTO_VERSION	3
22*53ee8cc1Swenshuai.xi 
23*53ee8cc1Swenshuai.xi /* Range of protocol versions defined */
24*53ee8cc1Swenshuai.xi #define AUTOFS_MAX_PROTO_VERSION	AUTOFS_PROTO_VERSION
25*53ee8cc1Swenshuai.xi #define AUTOFS_MIN_PROTO_VERSION	AUTOFS_PROTO_VERSION
26*53ee8cc1Swenshuai.xi 
27*53ee8cc1Swenshuai.xi /*
28*53ee8cc1Swenshuai.xi  * Architectures where both 32- and 64-bit binaries can be executed
29*53ee8cc1Swenshuai.xi  * on 64-bit kernels need this.  This keeps the structure format
30*53ee8cc1Swenshuai.xi  * uniform, and makes sure the wait_queue_token isn't too big to be
31*53ee8cc1Swenshuai.xi  * passed back down to the kernel.
32*53ee8cc1Swenshuai.xi  *
33*53ee8cc1Swenshuai.xi  * This assumes that on these architectures:
34*53ee8cc1Swenshuai.xi  * mode     32 bit    64 bit
35*53ee8cc1Swenshuai.xi  * -------------------------
36*53ee8cc1Swenshuai.xi  * int      32 bit    32 bit
37*53ee8cc1Swenshuai.xi  * long     32 bit    64 bit
38*53ee8cc1Swenshuai.xi  *
39*53ee8cc1Swenshuai.xi  * If so, 32-bit user-space code should be backwards compatible.
40*53ee8cc1Swenshuai.xi  */
41*53ee8cc1Swenshuai.xi 
42*53ee8cc1Swenshuai.xi #if defined(__sparc__) || defined(__mips__) || defined(__x86_64__) \
43*53ee8cc1Swenshuai.xi  || defined(__powerpc__) || defined(__s390__)
44*53ee8cc1Swenshuai.xi typedef unsigned int autofs_wqt_t;
45*53ee8cc1Swenshuai.xi #else
46*53ee8cc1Swenshuai.xi typedef unsigned long autofs_wqt_t;
47*53ee8cc1Swenshuai.xi #endif
48*53ee8cc1Swenshuai.xi 
49*53ee8cc1Swenshuai.xi /* Packet types */
50*53ee8cc1Swenshuai.xi #define autofs_ptype_missing	0	/* Missing entry (mount request) */
51*53ee8cc1Swenshuai.xi #define autofs_ptype_expire	1	/* Expire entry (umount request) */
52*53ee8cc1Swenshuai.xi 
53*53ee8cc1Swenshuai.xi struct autofs_packet_hdr {
54*53ee8cc1Swenshuai.xi 	int proto_version;		/* Protocol version */
55*53ee8cc1Swenshuai.xi 	int type;			/* Type of packet */
56*53ee8cc1Swenshuai.xi };
57*53ee8cc1Swenshuai.xi 
58*53ee8cc1Swenshuai.xi struct autofs_packet_missing {
59*53ee8cc1Swenshuai.xi 	struct autofs_packet_hdr hdr;
60*53ee8cc1Swenshuai.xi         autofs_wqt_t wait_queue_token;
61*53ee8cc1Swenshuai.xi 	int len;
62*53ee8cc1Swenshuai.xi 	char name[NAME_MAX+1];
63*53ee8cc1Swenshuai.xi };
64*53ee8cc1Swenshuai.xi 
65*53ee8cc1Swenshuai.xi /* v3 expire (via ioctl) */
66*53ee8cc1Swenshuai.xi struct autofs_packet_expire {
67*53ee8cc1Swenshuai.xi 	struct autofs_packet_hdr hdr;
68*53ee8cc1Swenshuai.xi 	int len;
69*53ee8cc1Swenshuai.xi 	char name[NAME_MAX+1];
70*53ee8cc1Swenshuai.xi };
71*53ee8cc1Swenshuai.xi 
72*53ee8cc1Swenshuai.xi #define AUTOFS_IOC_READY      _IO(0x93,0x60)
73*53ee8cc1Swenshuai.xi #define AUTOFS_IOC_FAIL       _IO(0x93,0x61)
74*53ee8cc1Swenshuai.xi #define AUTOFS_IOC_CATATONIC  _IO(0x93,0x62)
75*53ee8cc1Swenshuai.xi #define AUTOFS_IOC_PROTOVER   _IOR(0x93,0x63,int)
76*53ee8cc1Swenshuai.xi #define AUTOFS_IOC_SETTIMEOUT _IOWR(0x93,0x64,unsigned long)
77*53ee8cc1Swenshuai.xi #define AUTOFS_IOC_EXPIRE     _IOR(0x93,0x65,struct autofs_packet_expire)
78*53ee8cc1Swenshuai.xi 
79*53ee8cc1Swenshuai.xi #endif /* _LINUX_AUTO_FS_H */
80