• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _UAPI_LINUX_AUTO_FS_H
20 #define _UAPI_LINUX_AUTO_FS_H
21 #include <linux/types.h>
22 #include <linux/limits.h>
23 #include <sys/ioctl.h>
24 #define AUTOFS_PROTO_VERSION 5
25 #define AUTOFS_MIN_PROTO_VERSION 3
26 #define AUTOFS_MAX_PROTO_VERSION 5
27 #define AUTOFS_PROTO_SUBVERSION 4
28 #if defined(__ia64__) || defined(__alpha__)
29 typedef unsigned long autofs_wqt_t;
30 #else
31 typedef unsigned int autofs_wqt_t;
32 #endif
33 #define autofs_ptype_missing 0
34 #define autofs_ptype_expire 1
35 struct autofs_packet_hdr {
36   int proto_version;
37   int type;
38 };
39 struct autofs_packet_missing {
40   struct autofs_packet_hdr hdr;
41   autofs_wqt_t wait_queue_token;
42   int len;
43   char name[NAME_MAX + 1];
44 };
45 struct autofs_packet_expire {
46   struct autofs_packet_hdr hdr;
47   int len;
48   char name[NAME_MAX + 1];
49 };
50 #define AUTOFS_IOCTL 0x93
51 enum {
52   AUTOFS_IOC_READY_CMD = 0x60,
53   AUTOFS_IOC_FAIL_CMD,
54   AUTOFS_IOC_CATATONIC_CMD,
55   AUTOFS_IOC_PROTOVER_CMD,
56   AUTOFS_IOC_SETTIMEOUT_CMD,
57   AUTOFS_IOC_EXPIRE_CMD,
58 };
59 #define AUTOFS_IOC_READY _IO(AUTOFS_IOCTL, AUTOFS_IOC_READY_CMD)
60 #define AUTOFS_IOC_FAIL _IO(AUTOFS_IOCTL, AUTOFS_IOC_FAIL_CMD)
61 #define AUTOFS_IOC_CATATONIC _IO(AUTOFS_IOCTL, AUTOFS_IOC_CATATONIC_CMD)
62 #define AUTOFS_IOC_PROTOVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOVER_CMD, int)
63 #define AUTOFS_IOC_SETTIMEOUT32 _IOWR(AUTOFS_IOCTL, AUTOFS_IOC_SETTIMEOUT_CMD, compat_ulong_t)
64 #define AUTOFS_IOC_SETTIMEOUT _IOWR(AUTOFS_IOCTL, AUTOFS_IOC_SETTIMEOUT_CMD, unsigned long)
65 #define AUTOFS_IOC_EXPIRE _IOR(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_CMD, struct autofs_packet_expire)
66 #define AUTOFS_EXP_NORMAL 0x00
67 #define AUTOFS_EXP_IMMEDIATE 0x01
68 #define AUTOFS_EXP_LEAVES 0x02
69 #define AUTOFS_EXP_FORCED 0x04
70 #define AUTOFS_TYPE_ANY 0U
71 #define AUTOFS_TYPE_INDIRECT 1U
72 #define AUTOFS_TYPE_DIRECT 2U
73 #define AUTOFS_TYPE_OFFSET 4U
74 enum autofs_notify {
75   NFY_NONE,
76   NFY_MOUNT,
77   NFY_EXPIRE
78 };
79 #define autofs_ptype_expire_multi 2
80 #define autofs_ptype_missing_indirect 3
81 #define autofs_ptype_expire_indirect 4
82 #define autofs_ptype_missing_direct 5
83 #define autofs_ptype_expire_direct 6
84 struct autofs_packet_expire_multi {
85   struct autofs_packet_hdr hdr;
86   autofs_wqt_t wait_queue_token;
87   int len;
88   char name[NAME_MAX + 1];
89 };
90 union autofs_packet_union {
91   struct autofs_packet_hdr hdr;
92   struct autofs_packet_missing missing;
93   struct autofs_packet_expire expire;
94   struct autofs_packet_expire_multi expire_multi;
95 };
96 struct autofs_v5_packet {
97   struct autofs_packet_hdr hdr;
98   autofs_wqt_t wait_queue_token;
99   __u32 dev;
100   __u64 ino;
101   __u32 uid;
102   __u32 gid;
103   __u32 pid;
104   __u32 tgid;
105   __u32 len;
106   char name[NAME_MAX + 1];
107 };
108 typedef struct autofs_v5_packet autofs_packet_missing_indirect_t;
109 typedef struct autofs_v5_packet autofs_packet_expire_indirect_t;
110 typedef struct autofs_v5_packet autofs_packet_missing_direct_t;
111 typedef struct autofs_v5_packet autofs_packet_expire_direct_t;
112 union autofs_v5_packet_union {
113   struct autofs_packet_hdr hdr;
114   struct autofs_v5_packet v5_packet;
115   autofs_packet_missing_indirect_t missing_indirect;
116   autofs_packet_expire_indirect_t expire_indirect;
117   autofs_packet_missing_direct_t missing_direct;
118   autofs_packet_expire_direct_t expire_direct;
119 };
120 enum {
121   AUTOFS_IOC_EXPIRE_MULTI_CMD = 0x66,
122   AUTOFS_IOC_PROTOSUBVER_CMD,
123   AUTOFS_IOC_ASKUMOUNT_CMD = 0x70,
124 };
125 #define AUTOFS_IOC_EXPIRE_MULTI _IOW(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_MULTI_CMD, int)
126 #define AUTOFS_IOC_PROTOSUBVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOSUBVER_CMD, int)
127 #define AUTOFS_IOC_ASKUMOUNT _IOR(AUTOFS_IOCTL, AUTOFS_IOC_ASKUMOUNT_CMD, int)
128 #endif
129