The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/openzfs/include/os/linux/spl/sys/vnode.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  *  Copyright (C) 2007-2010 Lawrence Livermore National Security, LLC.
    3  *  Copyright (C) 2007 The Regents of the University of California.
    4  *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
    5  *  Written by Brian Behlendorf <behlendorf1@llnl.gov>.
    6  *  UCRL-CODE-235197
    7  *
    8  *  This file is part of the SPL, Solaris Porting Layer.
    9  *
   10  *  The SPL is free software; you can redistribute it and/or modify it
   11  *  under the terms of the GNU General Public License as published by the
   12  *  Free Software Foundation; either version 2 of the License, or (at your
   13  *  option) any later version.
   14  *
   15  *  The SPL is distributed in the hope that it will be useful, but WITHOUT
   16  *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   17  *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   18  *  for more details.
   19  *
   20  *  You should have received a copy of the GNU General Public License along
   21  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
   22  */
   23 
   24 #ifndef _SPL_VNODE_H
   25 #define _SPL_VNODE_H
   26 
   27 #include <linux/module.h>
   28 #include <linux/syscalls.h>
   29 #include <linux/fcntl.h>
   30 #include <linux/buffer_head.h>
   31 #include <linux/dcache.h>
   32 #include <linux/namei.h>
   33 #include <linux/file.h>
   34 #include <linux/fs.h>
   35 #include <linux/fs_struct.h>
   36 #include <linux/mount.h>
   37 #include <sys/kmem.h>
   38 #include <sys/mutex.h>
   39 #include <sys/types.h>
   40 #include <sys/time.h>
   41 #include <sys/uio.h>
   42 #include <sys/user.h>
   43 
   44 /*
   45  * Prior to linux-2.6.33 only O_DSYNC semantics were implemented and
   46  * they used the O_SYNC flag.  As of linux-2.6.33 the this behavior
   47  * was properly split in to O_SYNC and O_DSYNC respectively.
   48  */
   49 #ifndef O_DSYNC
   50 #define O_DSYNC         O_SYNC
   51 #endif
   52 
   53 #define F_FREESP        11      /* Free file space */
   54 
   55 
   56 #if defined(SEEK_HOLE) && defined(SEEK_DATA)
   57 #define F_SEEK_DATA     SEEK_DATA
   58 #define F_SEEK_HOLE     SEEK_HOLE
   59 #endif
   60 
   61 /*
   62  * The vnode AT_ flags are mapped to the Linux ATTR_* flags.
   63  * This allows them to be used safely with an iattr structure.
   64  * The AT_XVATTR flag has been added and mapped to the upper
   65  * bit range to avoid conflicting with the standard Linux set.
   66  */
   67 #undef AT_UID
   68 #undef AT_GID
   69 
   70 #define AT_MODE         ATTR_MODE
   71 #define AT_UID          ATTR_UID
   72 #define AT_GID          ATTR_GID
   73 #define AT_SIZE         ATTR_SIZE
   74 #define AT_ATIME        ATTR_ATIME
   75 #define AT_MTIME        ATTR_MTIME
   76 #define AT_CTIME        ATTR_CTIME
   77 
   78 #define ATTR_XVATTR     (1U << 31)
   79 #define AT_XVATTR       ATTR_XVATTR
   80 
   81 #define ATTR_IATTR_MASK (ATTR_MODE | ATTR_UID | ATTR_GID | ATTR_SIZE | \
   82                         ATTR_ATIME | ATTR_MTIME | ATTR_CTIME | ATTR_FILE)
   83 
   84 #define CRCREAT         0x01
   85 #define RMFILE          0x02
   86 
   87 #define B_INVAL         0x01
   88 #define B_TRUNC         0x02
   89 
   90 #define LOOKUP_DIR              0x01
   91 #define LOOKUP_XATTR            0x02
   92 #define CREATE_XATTR_DIR        0x04
   93 #define ATTR_NOACLCHECK         0x20
   94 
   95 typedef struct vattr {
   96         uint32_t        va_mask;        /* attribute bit-mask */
   97         ushort_t        va_mode;        /* acc mode */
   98         uid_t           va_uid;         /* owner uid */
   99         gid_t           va_gid;         /* owner gid */
  100         long            va_fsid;        /* fs id */
  101         long            va_nodeid;      /* node # */
  102         uint32_t        va_nlink;       /* # links */
  103         uint64_t        va_size;        /* file size */
  104         inode_timespec_t va_atime;      /* last acc */
  105         inode_timespec_t va_mtime;      /* last mod */
  106         inode_timespec_t va_ctime;      /* last chg */
  107         dev_t           va_rdev;        /* dev */
  108         uint64_t        va_nblocks;     /* space used */
  109         uint32_t        va_blksize;     /* block size */
  110         struct dentry   *va_dentry;     /* dentry to wire */
  111 } vattr_t;
  112 #endif /* SPL_VNODE_H */

Cache object: bed98a892f87ca2d37fca460c864668d


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.