Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
uapi
linux
auto_fs4.h
Go to the documentation of this file.
1
/* -*- c -*-
2
* linux/include/linux/auto_fs4.h
3
*
4
* Copyright 1999-2000 Jeremy Fitzhardinge <
[email protected]
>
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/types.h>
16
#include <linux/auto_fs.h>
17
18
/* autofs v4 definitions */
19
#undef AUTOFS_PROTO_VERSION
20
#undef AUTOFS_MIN_PROTO_VERSION
21
#undef AUTOFS_MAX_PROTO_VERSION
22
23
#define AUTOFS_PROTO_VERSION 5
24
#define AUTOFS_MIN_PROTO_VERSION 3
25
#define AUTOFS_MAX_PROTO_VERSION 5
26
27
#define AUTOFS_PROTO_SUBVERSION 2
28
29
/* Mask for expire behaviour */
30
#define AUTOFS_EXP_IMMEDIATE 1
31
#define AUTOFS_EXP_LEAVES 2
32
33
#define AUTOFS_TYPE_ANY 0U
34
#define AUTOFS_TYPE_INDIRECT 1U
35
#define AUTOFS_TYPE_DIRECT 2U
36
#define AUTOFS_TYPE_OFFSET 4U
37
38
static
inline
void
set_autofs_type_indirect(
unsigned
int
*
type
)
39
{
40
*type =
AUTOFS_TYPE_INDIRECT
;
41
return
;
42
}
43
44
static
inline
unsigned
int
autofs_type_indirect(
unsigned
int
type
)
45
{
46
return
(type ==
AUTOFS_TYPE_INDIRECT
);
47
}
48
49
static
inline
void
set_autofs_type_direct(
unsigned
int
*type)
50
{
51
*type =
AUTOFS_TYPE_DIRECT
;
52
return
;
53
}
54
55
static
inline
unsigned
int
autofs_type_direct(
unsigned
int
type)
56
{
57
return
(type ==
AUTOFS_TYPE_DIRECT
);
58
}
59
60
static
inline
void
set_autofs_type_offset(
unsigned
int
*type)
61
{
62
*type =
AUTOFS_TYPE_OFFSET
;
63
return
;
64
}
65
66
static
inline
unsigned
int
autofs_type_offset(
unsigned
int
type)
67
{
68
return
(type ==
AUTOFS_TYPE_OFFSET
);
69
}
70
71
static
inline
unsigned
int
autofs_type_trigger(
unsigned
int
type)
72
{
73
return
(type ==
AUTOFS_TYPE_DIRECT
|| type ==
AUTOFS_TYPE_OFFSET
);
74
}
75
76
/*
77
* This isn't really a type as we use it to say "no type set" to
78
* indicate we want to search for "any" mount in the
79
* autofs_dev_ioctl_ismountpoint() device ioctl function.
80
*/
81
static
inline
void
set_autofs_type_any(
unsigned
int
*type)
82
{
83
*type =
AUTOFS_TYPE_ANY
;
84
return
;
85
}
86
87
static
inline
unsigned
int
autofs_type_any(
unsigned
int
type)
88
{
89
return
(type ==
AUTOFS_TYPE_ANY
);
90
}
91
92
/* Daemon notification packet types */
93
enum
autofs_notify
{
94
NFY_NONE
,
95
NFY_MOUNT
,
96
NFY_EXPIRE
97
};
98
99
/* Kernel protocol version 4 packet types */
100
101
/* Expire entry (umount request) */
102
#define autofs_ptype_expire_multi 2
103
104
/* Kernel protocol version 5 packet types */
105
106
/* Indirect mount missing and expire requests. */
107
#define autofs_ptype_missing_indirect 3
108
#define autofs_ptype_expire_indirect 4
109
110
/* Direct mount missing and expire requests */
111
#define autofs_ptype_missing_direct 5
112
#define autofs_ptype_expire_direct 6
113
114
/* v4 multi expire (via pipe) */
115
struct
autofs_packet_expire_multi
{
116
struct
autofs_packet_hdr
hdr
;
117
autofs_wqt_t
wait_queue_token
;
118
int
len
;
119
char
name
[
NAME_MAX
+1];
120
};
121
122
union
autofs_packet_union
{
123
struct
autofs_packet_hdr
hdr
;
124
struct
autofs_packet_missing
missing
;
125
struct
autofs_packet_expire
expire
;
126
struct
autofs_packet_expire_multi
expire_multi
;
127
};
128
129
/* autofs v5 common packet struct */
130
struct
autofs_v5_packet
{
131
struct
autofs_packet_hdr
hdr
;
132
autofs_wqt_t
wait_queue_token
;
133
__u32
dev
;
134
__u64
ino
;
135
__u32
uid
;
136
__u32
gid
;
137
__u32
pid
;
138
__u32
tgid
;
139
__u32
len
;
140
char
name
[
NAME_MAX
+1];
141
};
142
143
typedef
struct
autofs_v5_packet
autofs_packet_missing_indirect_t
;
144
typedef
struct
autofs_v5_packet
autofs_packet_expire_indirect_t
;
145
typedef
struct
autofs_v5_packet
autofs_packet_missing_direct_t
;
146
typedef
struct
autofs_v5_packet
autofs_packet_expire_direct_t
;
147
148
union
autofs_v5_packet_union
{
149
struct
autofs_packet_hdr
hdr
;
150
struct
autofs_v5_packet
v5_packet
;
151
autofs_packet_missing_indirect_t
missing_indirect
;
152
autofs_packet_expire_indirect_t
expire_indirect
;
153
autofs_packet_missing_direct_t
missing_direct
;
154
autofs_packet_expire_direct_t
expire_direct
;
155
};
156
157
#define AUTOFS_IOC_EXPIRE_MULTI _IOW(0x93,0x66,int)
158
#define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI
159
#define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI
160
#define AUTOFS_IOC_PROTOSUBVER _IOR(0x93,0x67,int)
161
#define AUTOFS_IOC_ASKUMOUNT _IOR(0x93,0x70,int)
162
163
164
#endif
/* _LINUX_AUTO_FS4_H */
Generated on Thu Jan 10 2013 14:53:47 for Linux Kernel by
1.8.2