1 /* 2 * This file is auto-generated. Modifications will be lost. 3 * 4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5 * for more information. 6 */ 7 #ifndef _UAPI_LINUX_AUTO_FS_H 8 #define _UAPI_LINUX_AUTO_FS_H 9 #include <linux/types.h> 10 #include <linux/limits.h> 11 #include <sys/ioctl.h> 12 #define AUTOFS_PROTO_VERSION 5 13 #define AUTOFS_MIN_PROTO_VERSION 3 14 #define AUTOFS_MAX_PROTO_VERSION 5 15 #define AUTOFS_PROTO_SUBVERSION 5 16 #if defined(__ia64__) || defined(__alpha__) 17 typedef unsigned long autofs_wqt_t; 18 #else 19 typedef unsigned int autofs_wqt_t; 20 #endif 21 #define autofs_ptype_missing 0 22 #define autofs_ptype_expire 1 23 struct autofs_packet_hdr { 24 int proto_version; 25 int type; 26 }; 27 struct autofs_packet_missing { 28 struct autofs_packet_hdr hdr; 29 autofs_wqt_t wait_queue_token; 30 int len; 31 char name[NAME_MAX + 1]; 32 }; 33 struct autofs_packet_expire { 34 struct autofs_packet_hdr hdr; 35 int len; 36 char name[NAME_MAX + 1]; 37 }; 38 #define AUTOFS_IOCTL 0x93 39 enum { 40 AUTOFS_IOC_READY_CMD = 0x60, 41 AUTOFS_IOC_FAIL_CMD, 42 AUTOFS_IOC_CATATONIC_CMD, 43 AUTOFS_IOC_PROTOVER_CMD, 44 AUTOFS_IOC_SETTIMEOUT_CMD, 45 AUTOFS_IOC_EXPIRE_CMD, 46 }; 47 #define AUTOFS_IOC_READY _IO(AUTOFS_IOCTL, AUTOFS_IOC_READY_CMD) 48 #define AUTOFS_IOC_FAIL _IO(AUTOFS_IOCTL, AUTOFS_IOC_FAIL_CMD) 49 #define AUTOFS_IOC_CATATONIC _IO(AUTOFS_IOCTL, AUTOFS_IOC_CATATONIC_CMD) 50 #define AUTOFS_IOC_PROTOVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOVER_CMD, int) 51 #define AUTOFS_IOC_SETTIMEOUT32 _IOWR(AUTOFS_IOCTL, AUTOFS_IOC_SETTIMEOUT_CMD, compat_ulong_t) 52 #define AUTOFS_IOC_SETTIMEOUT _IOWR(AUTOFS_IOCTL, AUTOFS_IOC_SETTIMEOUT_CMD, unsigned long) 53 #define AUTOFS_IOC_EXPIRE _IOR(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_CMD, struct autofs_packet_expire) 54 #define AUTOFS_EXP_NORMAL 0x00 55 #define AUTOFS_EXP_IMMEDIATE 0x01 56 #define AUTOFS_EXP_LEAVES 0x02 57 #define AUTOFS_EXP_FORCED 0x04 58 #define AUTOFS_TYPE_ANY 0U 59 #define AUTOFS_TYPE_INDIRECT 1U 60 #define AUTOFS_TYPE_DIRECT 2U 61 #define AUTOFS_TYPE_OFFSET 4U 62 enum autofs_notify { 63 NFY_NONE, 64 NFY_MOUNT, 65 NFY_EXPIRE 66 }; 67 #define autofs_ptype_expire_multi 2 68 #define autofs_ptype_missing_indirect 3 69 #define autofs_ptype_expire_indirect 4 70 #define autofs_ptype_missing_direct 5 71 #define autofs_ptype_expire_direct 6 72 struct autofs_packet_expire_multi { 73 struct autofs_packet_hdr hdr; 74 autofs_wqt_t wait_queue_token; 75 int len; 76 char name[NAME_MAX + 1]; 77 }; 78 union autofs_packet_union { 79 struct autofs_packet_hdr hdr; 80 struct autofs_packet_missing missing; 81 struct autofs_packet_expire expire; 82 struct autofs_packet_expire_multi expire_multi; 83 }; 84 struct autofs_v5_packet { 85 struct autofs_packet_hdr hdr; 86 autofs_wqt_t wait_queue_token; 87 __u32 dev; 88 __u64 ino; 89 __u32 uid; 90 __u32 gid; 91 __u32 pid; 92 __u32 tgid; 93 __u32 len; 94 char name[NAME_MAX + 1]; 95 }; 96 typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; 97 typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; 98 typedef struct autofs_v5_packet autofs_packet_missing_direct_t; 99 typedef struct autofs_v5_packet autofs_packet_expire_direct_t; 100 union autofs_v5_packet_union { 101 struct autofs_packet_hdr hdr; 102 struct autofs_v5_packet v5_packet; 103 autofs_packet_missing_indirect_t missing_indirect; 104 autofs_packet_expire_indirect_t expire_indirect; 105 autofs_packet_missing_direct_t missing_direct; 106 autofs_packet_expire_direct_t expire_direct; 107 }; 108 enum { 109 AUTOFS_IOC_EXPIRE_MULTI_CMD = 0x66, 110 AUTOFS_IOC_PROTOSUBVER_CMD, 111 AUTOFS_IOC_ASKUMOUNT_CMD = 0x70, 112 }; 113 #define AUTOFS_IOC_EXPIRE_MULTI _IOW(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_MULTI_CMD, int) 114 #define AUTOFS_IOC_PROTOSUBVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOSUBVER_CMD, int) 115 #define AUTOFS_IOC_ASKUMOUNT _IOR(AUTOFS_IOCTL, AUTOFS_IOC_ASKUMOUNT_CMD, int) 116 #endif 117