|
1 /* -*- linux-c -*- ------------------------------------------------------- * |
|
2 * |
|
3 * linux/include/linux/auto_fs.h |
|
4 * |
|
5 * Copyright 1997 Transmeta Corporation - All Rights Reserved |
|
6 * |
|
7 * This file is part of the Linux kernel and is made available under |
|
8 * the terms of the GNU General Public License, version 2, or at your |
|
9 * option, any later version, incorporated herein by reference. |
|
10 * |
|
11 * ----------------------------------------------------------------------- */ |
|
12 |
|
13 |
|
14 #ifndef _LINUX_AUTO_FS_H |
|
15 #define _LINUX_AUTO_FS_H |
|
16 |
|
17 #ifdef __KERNEL__ |
|
18 #include <linux/fs.h> |
|
19 #include <linux/limits.h> |
|
20 #include <asm/types.h> |
|
21 #endif /* __KERNEL__ */ |
|
22 |
|
23 #include <linux/ioctl.h> |
|
24 |
|
25 /* This file describes autofs v3 */ |
|
26 #define AUTOFS_PROTO_VERSION 3 |
|
27 |
|
28 /* Range of protocol versions defined */ |
|
29 #define AUTOFS_MAX_PROTO_VERSION AUTOFS_PROTO_VERSION |
|
30 #define AUTOFS_MIN_PROTO_VERSION AUTOFS_PROTO_VERSION |
|
31 |
|
32 /* |
|
33 * Architectures where both 32- and 64-bit binaries can be executed |
|
34 * on 64-bit kernels need this. This keeps the structure format |
|
35 * uniform, and makes sure the wait_queue_token isn't too big to be |
|
36 * passed back down to the kernel. |
|
37 * |
|
38 * This assumes that on these architectures: |
|
39 * mode 32 bit 64 bit |
|
40 * ------------------------- |
|
41 * int 32 bit 32 bit |
|
42 * long 32 bit 64 bit |
|
43 * |
|
44 * If so, 32-bit user-space code should be backwards compatible. |
|
45 */ |
|
46 |
|
47 #if defined(__sparc__) || defined(__mips__) || defined(__x86_64__) \ |
|
48 || defined(__powerpc__) || defined(__s390__) |
|
49 typedef unsigned int autofs_wqt_t; |
|
50 #else |
|
51 typedef unsigned long autofs_wqt_t; |
|
52 #endif |
|
53 |
|
54 /* Packet types */ |
|
55 #define autofs_ptype_missing 0 /* Missing entry (mount request) */ |
|
56 #define autofs_ptype_expire 1 /* Expire entry (umount request) */ |
|
57 |
|
58 struct autofs_packet_hdr { |
|
59 int proto_version; /* Protocol version */ |
|
60 int type; /* Type of packet */ |
|
61 }; |
|
62 |
|
63 struct autofs_packet_missing { |
|
64 struct autofs_packet_hdr hdr; |
|
65 autofs_wqt_t wait_queue_token; |
|
66 int len; |
|
67 char name[NAME_MAX+1]; |
|
68 }; |
|
69 |
|
70 /* v3 expire (via ioctl) */ |
|
71 struct autofs_packet_expire { |
|
72 struct autofs_packet_hdr hdr; |
|
73 int len; |
|
74 char name[NAME_MAX+1]; |
|
75 }; |
|
76 |
|
77 #define AUTOFS_IOC_READY _IO(0x93,0x60) |
|
78 #define AUTOFS_IOC_FAIL _IO(0x93,0x61) |
|
79 #define AUTOFS_IOC_CATATONIC _IO(0x93,0x62) |
|
80 #define AUTOFS_IOC_PROTOVER _IOR(0x93,0x63,int) |
|
81 #define AUTOFS_IOC_SETTIMEOUT _IOWR(0x93,0x64,unsigned long) |
|
82 #define AUTOFS_IOC_EXPIRE _IOR(0x93,0x65,struct autofs_packet_expire) |
|
83 |
|
84 #endif /* _LINUX_AUTO_FS_H */ |