File: /usr/include/linux/auto_fs.h

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