OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [linux-headers/] [include/] [linux/] [auto_fs4.h] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 serginhofr
/* -*- 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/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 */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.