Blame view

include/linux/auto_fs4.h 4 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  /* -*- c -*-
   * linux/include/linux/auto_fs4.h
   *
   * Copyright 1999-2000 Jeremy Fitzhardinge <jeremy@goop.org>
   *
   * This file is part of the Linux kernel and is made available under
   * the terms of the GNU General Public License, version 2, or at your
   * option, any later version, incorporated herein by reference.
   */
  
  #ifndef _LINUX_AUTO_FS4_H
  #define _LINUX_AUTO_FS4_H
  
  /* Include common v3 definitions */
5d461bfeb   Jaswinder Singh Rajput   headers_check fix...
15
  #include <linux/types.h>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
16
17
18
19
20
21
  #include <linux/auto_fs.h>
  
  /* autofs v4 definitions */
  #undef AUTOFS_PROTO_VERSION
  #undef AUTOFS_MIN_PROTO_VERSION
  #undef AUTOFS_MAX_PROTO_VERSION
5c0a32fc2   Ian Kent   [PATCH] autofs4: ...
22
  #define AUTOFS_PROTO_VERSION		5
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
23
  #define AUTOFS_MIN_PROTO_VERSION	3
5c0a32fc2   Ian Kent   [PATCH] autofs4: ...
24
  #define AUTOFS_MAX_PROTO_VERSION	5
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
25

8d7b48e0b   Ian Kent   autofs4: add misc...
26
  #define AUTOFS_PROTO_SUBVERSION		1
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
27
28
29
30
  
  /* Mask for expire behaviour */
  #define AUTOFS_EXP_IMMEDIATE		1
  #define AUTOFS_EXP_LEAVES		2
a92daf6ba   Ian Kent   autofs4: make aut...
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
  #define AUTOFS_TYPE_ANY			0U
  #define AUTOFS_TYPE_INDIRECT		1U
  #define AUTOFS_TYPE_DIRECT		2U
  #define AUTOFS_TYPE_OFFSET		4U
  
  static inline void set_autofs_type_indirect(unsigned int *type)
  {
  	*type = AUTOFS_TYPE_INDIRECT;
  	return;
  }
  
  static inline unsigned int autofs_type_indirect(unsigned int type)
  {
  	return (type == AUTOFS_TYPE_INDIRECT);
  }
  
  static inline void set_autofs_type_direct(unsigned int *type)
  {
  	*type = AUTOFS_TYPE_DIRECT;
  	return;
  }
  
  static inline unsigned int autofs_type_direct(unsigned int type)
  {
  	return (type == AUTOFS_TYPE_DIRECT);
  }
  
  static inline void set_autofs_type_offset(unsigned int *type)
  {
  	*type = AUTOFS_TYPE_OFFSET;
  	return;
  }
  
  static inline unsigned int autofs_type_offset(unsigned int type)
  {
  	return (type == AUTOFS_TYPE_OFFSET);
  }
  
  static inline unsigned int autofs_type_trigger(unsigned int type)
  {
  	return (type == AUTOFS_TYPE_DIRECT || type == AUTOFS_TYPE_OFFSET);
  }
  
  /*
   * This isn't really a type as we use it to say "no type set" to
   * indicate we want to search for "any" mount in the
   * autofs_dev_ioctl_ismountpoint() device ioctl function.
   */
  static inline void set_autofs_type_any(unsigned int *type)
  {
  	*type = AUTOFS_TYPE_ANY;
  	return;
  }
  
  static inline unsigned int autofs_type_any(unsigned int type)
  {
  	return (type == AUTOFS_TYPE_ANY);
  }
bb979d7fc   Ian Kent   autofs4: cleanup ...
89

5c0a32fc2   Ian Kent   [PATCH] autofs4: ...
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
  /* Daemon notification packet types */
  enum autofs_notify {
  	NFY_NONE,
  	NFY_MOUNT,
  	NFY_EXPIRE
  };
  
  /* Kernel protocol version 4 packet types */
  
  /* Expire entry (umount request) */
  #define autofs_ptype_expire_multi	2
  
  /* Kernel protocol version 5 packet types */
  
  /* Indirect mount missing and expire requests. */
  #define autofs_ptype_missing_indirect	3
  #define autofs_ptype_expire_indirect	4
  
  /* Direct mount missing and expire requests */
  #define autofs_ptype_missing_direct	5
  #define autofs_ptype_expire_direct	6
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
111
112
113
114
115
116
117
118
  
  /* v4 multi expire (via pipe) */
  struct autofs_packet_expire_multi {
  	struct autofs_packet_hdr hdr;
          autofs_wqt_t wait_queue_token;
  	int len;
  	char name[NAME_MAX+1];
  };
e8514478f   Ian Kent   [PATCH] autofs4: ...
119
120
121
122
123
124
  union autofs_packet_union {
  	struct autofs_packet_hdr hdr;
  	struct autofs_packet_missing missing;
  	struct autofs_packet_expire expire;
  	struct autofs_packet_expire_multi expire_multi;
  };
5c0a32fc2   Ian Kent   [PATCH] autofs4: ...
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
  /* autofs v5 common packet struct */
  struct autofs_v5_packet {
  	struct autofs_packet_hdr hdr;
  	autofs_wqt_t wait_queue_token;
  	__u32 dev;
  	__u64 ino;
  	__u32 uid;
  	__u32 gid;
  	__u32 pid;
  	__u32 tgid;
  	__u32 len;
  	char name[NAME_MAX+1];
  };
  
  typedef struct autofs_v5_packet autofs_packet_missing_indirect_t;
  typedef struct autofs_v5_packet autofs_packet_expire_indirect_t;
  typedef struct autofs_v5_packet autofs_packet_missing_direct_t;
  typedef struct autofs_v5_packet autofs_packet_expire_direct_t;
e8514478f   Ian Kent   [PATCH] autofs4: ...
143
  union autofs_v5_packet_union {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
144
  	struct autofs_packet_hdr hdr;
5c0a32fc2   Ian Kent   [PATCH] autofs4: ...
145
  	struct autofs_v5_packet v5_packet;
e8514478f   Ian Kent   [PATCH] autofs4: ...
146
147
148
149
  	autofs_packet_missing_indirect_t missing_indirect;
  	autofs_packet_expire_indirect_t expire_indirect;
  	autofs_packet_missing_direct_t missing_direct;
  	autofs_packet_expire_direct_t expire_direct;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
150
151
152
  };
  
  #define AUTOFS_IOC_EXPIRE_MULTI		_IOW(0x93,0x66,int)
5c0a32fc2   Ian Kent   [PATCH] autofs4: ...
153
154
  #define AUTOFS_IOC_EXPIRE_INDIRECT	AUTOFS_IOC_EXPIRE_MULTI
  #define AUTOFS_IOC_EXPIRE_DIRECT	AUTOFS_IOC_EXPIRE_MULTI
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
155
  #define AUTOFS_IOC_PROTOSUBVER		_IOR(0x93,0x67,int)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
156
157
158
159
  #define AUTOFS_IOC_ASKUMOUNT		_IOR(0x93,0x70,int)
  
  
  #endif /* _LINUX_AUTO_FS4_H */