[BACK]Return to puffs_msgif.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / fs / puffs

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/fs/puffs/puffs_msgif.h between version 1.69 and 1.69.4.2

version 1.69, 2010/01/07 22:45:31 version 1.69.4.2, 2010/07/03 01:19:50
Line 61 
Line 61 
 #define PUFFSOP_OPCLASS(a)      ((a) & PUFFSOP_OPCMASK)  #define PUFFSOP_OPCLASS(a)      ((a) & PUFFSOP_OPCMASK)
 #define PUFFSOP_WANTREPLY(a)    (((a) & PUFFSOPFLAG_FAF) == 0)  #define PUFFSOP_WANTREPLY(a)    (((a) & PUFFSOPFLAG_FAF) == 0)
   
 /* XXX: we don't need everything */  
 enum {  enum {
         PUFFS_VFS_MOUNT,        PUFFS_VFS_START,        PUFFS_VFS_UNMOUNT,          PUFFS_VFS_MOUNT,        PUFFS_VFS_START,        PUFFS_VFS_UNMOUNT,
         PUFFS_VFS_ROOT,         PUFFS_VFS_STATVFS,      PUFFS_VFS_SYNC,          PUFFS_VFS_ROOT,         PUFFS_VFS_QUOTACTL,     PUFFS_VFS_STATVFS,
         PUFFS_VFS_VGET,         PUFFS_VFS_FHTOVP,       PUFFS_VFS_VPTOFH,          PUFFS_VFS_SYNC,         PUFFS_VFS_VGET,         PUFFS_VFS_FHTOVP,
         PUFFS_VFS_INIT,         PUFFS_VFS_DONE,         PUFFS_VFS_SNAPSHOT,          PUFFS_VFS_VPTOFH,       PUFFS_VFS_INIT,         PUFFS_VFS_DONE,
         PUFFS_VFS_EXTATTCTL,    PUFFS_VFS_SUSPEND          PUFFS_VFS_SNAPSHOT,     PUFFS_VFS_EXTATTRCTL,   PUFFS_VFS_SUSPEND
 };  };
 #define PUFFS_VFS_MAX PUFFS_VFS_EXTATTCTL  #define PUFFS_VFS_MAX PUFFS_VFS_SUSPEND
   
 /* moreXXX: we don't need everything here either */  
 enum {  enum {
         PUFFS_VN_LOOKUP,        PUFFS_VN_CREATE,        PUFFS_VN_MKNOD,          PUFFS_VN_LOOKUP,        PUFFS_VN_CREATE,        PUFFS_VN_MKNOD,
         PUFFS_VN_OPEN,          PUFFS_VN_CLOSE,         PUFFS_VN_ACCESS,          PUFFS_VN_OPEN,          PUFFS_VN_CLOSE,         PUFFS_VN_ACCESS,
Line 88  enum {
Line 86  enum {
         PUFFS_VN_ADVLOCK,       PUFFS_VN_LEASE,         PUFFS_VN_WHITEOUT,          PUFFS_VN_ADVLOCK,       PUFFS_VN_LEASE,         PUFFS_VN_WHITEOUT,
         PUFFS_VN_GETPAGES,      PUFFS_VN_PUTPAGES,      PUFFS_VN_GETEXTATTR,          PUFFS_VN_GETPAGES,      PUFFS_VN_PUTPAGES,      PUFFS_VN_GETEXTATTR,
         PUFFS_VN_LISTEXTATTR,   PUFFS_VN_OPENEXTATTR,   PUFFS_VN_DELETEEXTATTR,          PUFFS_VN_LISTEXTATTR,   PUFFS_VN_OPENEXTATTR,   PUFFS_VN_DELETEEXTATTR,
         PUFFS_VN_SETEXTATTR          PUFFS_VN_SETEXTATTR,    PUFFS_VN_CLOSEEXTATTR
           /* NOTE: If you add an op, decrement PUFFS_VN_SPARE accordingly */
 };  };
 #define PUFFS_VN_MAX PUFFS_VN_SETEXTATTR  #define PUFFS_VN_MAX PUFFS_VN_CLOSEEXTATTR
   #define PUFFS_VN_SPARE 32
   
 /*  /*
  * These signal invalid parameters the file system returned.   * These signal invalid parameters the file system returned.
  */   */
 enum {  enum {
           PUFFS_ERR_ERROR,
         PUFFS_ERR_MAKENODE,     PUFFS_ERR_LOOKUP,       PUFFS_ERR_READDIR,          PUFFS_ERR_MAKENODE,     PUFFS_ERR_LOOKUP,       PUFFS_ERR_READDIR,
         PUFFS_ERR_READLINK,     PUFFS_ERR_READ,         PUFFS_ERR_WRITE,          PUFFS_ERR_READLINK,     PUFFS_ERR_READ,         PUFFS_ERR_WRITE,
         PUFFS_ERR_VPTOFH,       PUFFS_ERR_ERROR          PUFFS_ERR_VPTOFH,       PUFFS_ERR_GETEXTATTR,   PUFFS_ERR_LISTEXTATTR
 };  };
 #define PUFFS_ERR_MAX PUFFS_ERR_VPTOFH  #define PUFFS_ERR_MAX PUFFS_ERR_LISTEXTATTR
   
 #define PUFFSDEVELVERS  0x80000000  #define PUFFSVERSION    30
 #define PUFFSVERSION    29  
 #define PUFFSNAMESIZE   32  #define PUFFSNAMESIZE   32
   
 #define PUFFS_TYPEPREFIX "puffs|"  #define PUFFS_TYPEPREFIX "puffs|"
Line 131  struct puffs_kargs {
Line 131  struct puffs_kargs {
         size_t          pa_fhsize;          size_t          pa_fhsize;
         int             pa_fhflags;          int             pa_fhflags;
   
           uint8_t         pa_vnopmask[PUFFS_VN_MAX + PUFFS_VN_SPARE];
   
           char            pa_typename[_VFS_NAMELEN];
           char            pa_mntfromname[_VFS_MNAMELEN];
   
         puffs_cookie_t  pa_root_cookie;          puffs_cookie_t  pa_root_cookie;
         enum vtype      pa_root_vtype;          enum vtype      pa_root_vtype;
         voff_t          pa_root_vsize;          voff_t          pa_root_vsize;
         dev_t           pa_root_rdev;          union {
                   dev_t           dev;
                   uint64_t        container;
           } devunion;
   
         struct statvfs  pa_svfsb;          struct statvfs  pa_svfsb;
   
         char            pa_typename[_VFS_NAMELEN];          uint32_t        pa_spare[128];
         char            pa_mntfromname[_VFS_MNAMELEN];  
   
         uint8_t         pa_vnopmask[PUFFS_VN_MAX];  
 };  };
   #define pa_root_rdev devunion.dev
   
 #define PUFFS_KFLAG_NOCACHE_NAME        0x01    /* don't use name cache     */  #define PUFFS_KFLAG_NOCACHE_NAME        0x01    /* don't use name cache     */
 #define PUFFS_KFLAG_NOCACHE_PAGE        0x02    /* don't use page cache     */  #define PUFFS_KFLAG_NOCACHE_PAGE        0x02    /* don't use page cache     */
 #define PUFFS_KFLAG_NOCACHE             0x03    /* no cache whatsoever      */  #define PUFFS_KFLAG_NOCACHE             0x03    /* no cache whatsoever      */
Line 151  struct puffs_kargs {
Line 158  struct puffs_kargs {
 #define PUFFS_KFLAG_IAONDEMAND          0x10    /* inactive only on demand  */  #define PUFFS_KFLAG_IAONDEMAND          0x10    /* inactive only on demand  */
 #define PUFFS_KFLAG_LOOKUP_FULLPNBUF    0x20    /* full pnbuf in lookup     */  #define PUFFS_KFLAG_LOOKUP_FULLPNBUF    0x20    /* full pnbuf in lookup     */
 #define PUFFS_KFLAG_MASK                0x3f  #define PUFFS_KFLAG_MASK                0x3f
   #define PUFFS_KFLAG_NOCACHE_ATTR        0x40    /* no attrib cache (unused) */
   
 #define PUFFS_FHFLAG_DYNAMIC            0x01  #define PUFFS_FHFLAG_DYNAMIC            0x01
 #define PUFFS_FHFLAG_NFSV2              0x02  #define PUFFS_FHFLAG_NFSV2              0x02
Line 159  struct puffs_kargs {
Line 167  struct puffs_kargs {
 #define PUFFS_FHFLAG_PASSTHROUGH        0x08  #define PUFFS_FHFLAG_PASSTHROUGH        0x08
 #define PUFFS_FHFLAG_MASK               0x0f  #define PUFFS_FHFLAG_MASK               0x0f
   
 #define PUFFS_FHSIZE_MAX        1020    /* XXX: FHANDLE_SIZE_MAX - 4 */  #define PUFFS_FHSIZE_MAX        1020    /* FHANDLE_SIZE_MAX - 4 */
   
 struct puffs_req {  struct puffs_req {
         struct putter_hdr       preq_pth;          struct putter_hdr       preq_pth;
Line 205  struct puffs_req {
Line 213  struct puffs_req {
  * 2) page cache for one entire node   * 2) page cache for one entire node
  */   */
   
 /* XXX: needs restructuring */  
 struct puffs_flush {  struct puffs_flush {
         struct puffs_req        pf_req;          struct puffs_req        pf_req;
   
Line 221  struct puffs_flush {
Line 228  struct puffs_flush {
 #define PUFFS_INVAL_PAGECACHE_NODE_RANGE        3  #define PUFFS_INVAL_PAGECACHE_NODE_RANGE        3
 #define PUFFS_FLUSH_PAGECACHE_NODE_RANGE        4  #define PUFFS_FLUSH_PAGECACHE_NODE_RANGE        4
   
 /* keep this for now */  
 #define PUFFSREQSIZEOP          _IOR ('p', 1, size_t)  
   
 /*  /*
  * Credentials for an operation.  Can be either struct uucred for   * Credentials for an operation.  Can be either struct uucred for
  * ops called from a credential context or NOCRED/FSCRED for ops   * ops called from a credential context or NOCRED/FSCRED for ops
Line 245  struct puffs_kcred {
Line 249  struct puffs_kcred {
  * else treated as garbage   * else treated as garbage
  */   */
 #define PUFFS_MSG_MAXSIZE       2*MAXPHYS  #define PUFFS_MSG_MAXSIZE       2*MAXPHYS
 #define PUFFS_MSGSTRUCT_MAX     4096 /* XXX: approxkludge */  #define PUFFS_MSGSTRUCT_MAX     4096 /* approximate */
   
   #define PUFFS_EXTNAMELEN NAME_MAX /* currently same as EXTATTR_MAXNAMELEN */
   
 #define PUFFS_TOMOVE(a,b) (MIN((a), b->pmp_msg_maxsize - PUFFS_MSGSTRUCT_MAX))  #define PUFFS_TOMOVE(a,b) (MIN((a), b->pmp_msg_maxsize - PUFFS_MSGSTRUCT_MAX))
   
Line 327  struct puffs_vfsmsg_suspend {
Line 333  struct puffs_vfsmsg_suspend {
 #define PUFFS_SUSPEND_RESUME    2  #define PUFFS_SUSPEND_RESUME    2
 #define PUFFS_SUSPEND_ERROR     3  #define PUFFS_SUSPEND_ERROR     3
   
   #define PUFFS_EXTATTRCTL_HASNODE        0x01
   #define PUFFS_EXTATTRCTL_HASATTRNAME    0x02
   struct puffs_vfsmsg_extattrctl {
           struct puffs_req        pvfsr_pr;
   
           int                     pvfsr_cmd;                        /* OUT */
           int                     pvfsr_attrnamespace;              /* OUT */
           int                     pvfsr_flags;                      /* OUT */
           char                    pvfsr_attrname[PUFFS_EXTNAMELEN]; /* OUT */
   };
   
 /*  /*
  * aux structures for vnode operations.   * aux structures for vnode operations.
  */   */
Line 524  struct puffs_vnmsg_readlink {
Line 541  struct puffs_vnmsg_readlink {
   
         struct puffs_kcred      pvnr_cred;              /* OUT */          struct puffs_kcred      pvnr_cred;              /* OUT */
         size_t                  pvnr_linklen;           /* IN  */          size_t                  pvnr_linklen;           /* IN  */
         char                    pvnr_link[MAXPATHLEN];  /* IN, XXX  */          char                    pvnr_link[MAXPATHLEN];  /* IN  */
 };  };
   
 struct puffs_vnmsg_reclaim {  struct puffs_vnmsg_reclaim {
Line 545  struct puffs_vnmsg_pathconf {
Line 562  struct puffs_vnmsg_pathconf {
         struct puffs_req        pvn_pr;          struct puffs_req        pvn_pr;
   
         int                     pvnr_name;              /* OUT  */          int                     pvnr_name;              /* OUT  */
         int                     pvnr_retval;            /* IN   */          register_t              pvnr_retval;            /* IN   */
 };  };
   
 struct puffs_vnmsg_advlock {  struct puffs_vnmsg_advlock {
Line 571  struct puffs_vnmsg_abortop {
Line 588  struct puffs_vnmsg_abortop {
         struct puffs_kcred      pvnr_cn_cred;           /* OUT  */          struct puffs_kcred      pvnr_cn_cred;           /* OUT  */
 };  };
   
   struct puffs_vnmsg_getextattr {
           struct puffs_req        pvn_pr;
   
           int                     pvnr_attrnamespace;             /* OUT    */
           char                    pvnr_attrname[PUFFS_EXTNAMELEN];/* OUT    */
   
           struct puffs_kcred      pvnr_cred;                      /* OUT    */
           size_t                  pvnr_datasize;                  /* IN     */
   
           size_t                  pvnr_resid;                     /* IN/OUT */
           uint8_t                 pvnr_data[0]                    /* IN     */
                                       __aligned(ALIGNBYTES+1);
   };
   
   struct puffs_vnmsg_setextattr {
           struct puffs_req        pvn_pr;
   
           int                     pvnr_attrnamespace;             /* OUT    */
           char                    pvnr_attrname[PUFFS_EXTNAMELEN];/* OUT    */
   
           struct puffs_kcred      pvnr_cred;                      /* OUT  */
   
           size_t                  pvnr_resid;                     /* IN/OUT */
           uint8_t                 pvnr_data[0]                    /* OUT    */
                                       __aligned(ALIGNBYTES+1);
   };
   
   struct puffs_vnmsg_listextattr {
           struct puffs_req        pvn_pr;
   
           int                     pvnr_attrnamespace;             /* OUT    */
   
           struct puffs_kcred      pvnr_cred;                      /* OUT  */
           size_t                  pvnr_datasize;                  /* IN     */
   
           size_t                  pvnr_resid;                     /* IN/OUT */
           uint8_t                 pvnr_data[0]                    /* IN     */
                                       __aligned(ALIGNBYTES+1);
   };
   
   struct puffs_vnmsg_deleteextattr {
           struct puffs_req        pvn_pr;
   
           int                     pvnr_attrnamespace;             /* OUT    */
           char                    pvnr_attrname[PUFFS_EXTNAMELEN];/* OUT    */
   
           struct puffs_kcred      pvnr_cred;                      /* OUT  */
   };
   
 /*  /*
  * For cache reports.  Everything is always out-out-out, no replies   * For cache reports.  Everything is always out-out-out, no replies

Legend:
Removed from v.1.69  
changed lines
  Added in v.1.69.4.2

CVSweb <webmaster@jp.NetBSD.org>