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