Home | History | Annotate | Download | only in linux
      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