home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / linux / auto_fs4.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  2.6 KB  |  99 lines

  1. /* -*- 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/auto_fs.h>
  16.  
  17. /* autofs v4 definitions */
  18. #undef AUTOFS_PROTO_VERSION
  19. #undef AUTOFS_MIN_PROTO_VERSION
  20. #undef AUTOFS_MAX_PROTO_VERSION
  21.  
  22. #define AUTOFS_PROTO_VERSION        5
  23. #define AUTOFS_MIN_PROTO_VERSION    3
  24. #define AUTOFS_MAX_PROTO_VERSION    5
  25.  
  26. #define AUTOFS_PROTO_SUBVERSION        0
  27.  
  28. /* Mask for expire behaviour */
  29. #define AUTOFS_EXP_IMMEDIATE        1
  30. #define AUTOFS_EXP_LEAVES        2
  31.  
  32. /* Daemon notification packet types */
  33. enum autofs_notify {
  34.     NFY_NONE,
  35.     NFY_MOUNT,
  36.     NFY_EXPIRE
  37. };
  38.  
  39. /* Kernel protocol version 4 packet types */
  40.  
  41. /* Expire entry (umount request) */
  42. #define autofs_ptype_expire_multi    2
  43.  
  44. /* Kernel protocol version 5 packet types */
  45.  
  46. /* Indirect mount missing and expire requests. */
  47. #define autofs_ptype_missing_indirect    3
  48. #define autofs_ptype_expire_indirect    4
  49.  
  50. /* Direct mount missing and expire requests */
  51. #define autofs_ptype_missing_direct    5
  52. #define autofs_ptype_expire_direct    6
  53.  
  54. /* v4 multi expire (via pipe) */
  55. struct autofs_packet_expire_multi {
  56.     struct autofs_packet_hdr hdr;
  57.         autofs_wqt_t wait_queue_token;
  58.     int len;
  59.     char name[NAME_MAX+1];
  60. };
  61.  
  62. /* autofs v5 common packet struct */
  63. struct autofs_v5_packet {
  64.     struct autofs_packet_hdr hdr;
  65.     autofs_wqt_t wait_queue_token;
  66.     __u32 dev;
  67.     __u64 ino;
  68.     __u32 uid;
  69.     __u32 gid;
  70.     __u32 pid;
  71.     __u32 tgid;
  72.     __u32 len;
  73.     char name[NAME_MAX+1];
  74. };
  75.  
  76. typedef struct autofs_v5_packet autofs_packet_missing_indirect_t;
  77. typedef struct autofs_v5_packet autofs_packet_expire_indirect_t;
  78. typedef struct autofs_v5_packet autofs_packet_missing_direct_t;
  79. typedef struct autofs_v5_packet autofs_packet_expire_direct_t;
  80.  
  81. union autofs_packet_union {
  82.     struct autofs_packet_hdr hdr;
  83.     struct autofs_packet_missing missing;
  84.     struct autofs_packet_expire expire;
  85.     struct autofs_packet_expire_multi expire_multi;
  86.     struct autofs_v5_packet v5_packet;
  87. };
  88.  
  89. #define AUTOFS_IOC_EXPIRE_MULTI        _IOW(0x93,0x66,int)
  90. #define AUTOFS_IOC_EXPIRE_INDIRECT    AUTOFS_IOC_EXPIRE_MULTI
  91. #define AUTOFS_IOC_EXPIRE_DIRECT    AUTOFS_IOC_EXPIRE_MULTI
  92. #define AUTOFS_IOC_PROTOSUBVER        _IOR(0x93,0x67,int)
  93. #define AUTOFS_IOC_ASKREGHOST           _IOR(0x93,0x68,int)
  94. #define AUTOFS_IOC_TOGGLEREGHOST        _IOR(0x93,0x69,int)
  95. #define AUTOFS_IOC_ASKUMOUNT        _IOR(0x93,0x70,int)
  96.  
  97.  
  98. #endif /* _LINUX_AUTO_FS4_H */
  99.