xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/linux/auto_fs4.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 /* -*- c -*-
2  * linux/include/linux/auto_fs4.h
3  *
4  * Copyright 1999-2000 Jeremy Fitzhardinge <jeremy@goop.org>
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 _LINUX_AUTO_FS4_H
12 #define _LINUX_AUTO_FS4_H
13 
14 /* Include common v3 definitions */
15 #include <linux/auto_fs.h>
16 
17 /* autofs v4 definitions */
18 #undef AUTOFS_PROTO_VERSION
19 #undef AUTOFS_MIN_PROTO_VERSION
20 #undef AUTOFS_MAX_PROTO_VERSION
21 
22 #define AUTOFS_PROTO_VERSION		5
23 #define AUTOFS_MIN_PROTO_VERSION	3
24 #define AUTOFS_MAX_PROTO_VERSION	5
25 
26 #define AUTOFS_PROTO_SUBVERSION		0
27 
28 /* Mask for expire behaviour */
29 #define AUTOFS_EXP_IMMEDIATE		1
30 #define AUTOFS_EXP_LEAVES		2
31 
32 /* Daemon notification packet types */
33 enum autofs_notify {
34 	NFY_NONE,
35 	NFY_MOUNT,
36 	NFY_EXPIRE
37 };
38 
39 /* Kernel protocol version 4 packet types */
40 
41 /* Expire entry (umount request) */
42 #define autofs_ptype_expire_multi	2
43 
44 /* Kernel protocol version 5 packet types */
45 
46 /* Indirect mount missing and expire requests. */
47 #define autofs_ptype_missing_indirect	3
48 #define autofs_ptype_expire_indirect	4
49 
50 /* Direct mount missing and expire requests */
51 #define autofs_ptype_missing_direct	5
52 #define autofs_ptype_expire_direct	6
53 
54 /* v4 multi expire (via pipe) */
55 struct autofs_packet_expire_multi {
56 	struct autofs_packet_hdr hdr;
57         autofs_wqt_t wait_queue_token;
58 	int len;
59 	char name[NAME_MAX+1];
60 };
61 
62 union autofs_packet_union {
63 	struct autofs_packet_hdr hdr;
64 	struct autofs_packet_missing missing;
65 	struct autofs_packet_expire expire;
66 	struct autofs_packet_expire_multi expire_multi;
67 };
68 
69 /* autofs v5 common packet struct */
70 struct autofs_v5_packet {
71 	struct autofs_packet_hdr hdr;
72 	autofs_wqt_t wait_queue_token;
73 	__u32 dev;
74 	__u64 ino;
75 	__u32 uid;
76 	__u32 gid;
77 	__u32 pid;
78 	__u32 tgid;
79 	__u32 len;
80 	char name[NAME_MAX+1];
81 };
82 
83 typedef struct autofs_v5_packet autofs_packet_missing_indirect_t;
84 typedef struct autofs_v5_packet autofs_packet_expire_indirect_t;
85 typedef struct autofs_v5_packet autofs_packet_missing_direct_t;
86 typedef struct autofs_v5_packet autofs_packet_expire_direct_t;
87 
88 union autofs_v5_packet_union {
89 	struct autofs_packet_hdr hdr;
90 	struct autofs_v5_packet v5_packet;
91 	autofs_packet_missing_indirect_t missing_indirect;
92 	autofs_packet_expire_indirect_t expire_indirect;
93 	autofs_packet_missing_direct_t missing_direct;
94 	autofs_packet_expire_direct_t expire_direct;
95 };
96 
97 #define AUTOFS_IOC_EXPIRE_MULTI		_IOW(0x93,0x66,int)
98 #define AUTOFS_IOC_EXPIRE_INDIRECT	AUTOFS_IOC_EXPIRE_MULTI
99 #define AUTOFS_IOC_EXPIRE_DIRECT	AUTOFS_IOC_EXPIRE_MULTI
100 #define AUTOFS_IOC_PROTOSUBVER		_IOR(0x93,0x67,int)
101 #define AUTOFS_IOC_ASKREGHOST           _IOR(0x93,0x68,int)
102 #define AUTOFS_IOC_TOGGLEREGHOST        _IOR(0x93,0x69,int)
103 #define AUTOFS_IOC_ASKUMOUNT		_IOR(0x93,0x70,int)
104 
105 
106 #endif /* _LINUX_AUTO_FS4_H */
107