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/common/sys/stat.h

Version: -  FREEBSD  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-2  -  FREEBSD-11-1  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-4  -  FREEBSD-10-3  -  FREEBSD-10-2  -  FREEBSD-10-1  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-3  -  FREEBSD-9-2  -  FREEBSD-9-1  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-4  -  FREEBSD-8-3  -  FREEBSD-8-2  -  FREEBSD-8-1  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-4  -  FREEBSD-7-3  -  FREEBSD-7-2  -  FREEBSD-7-1  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-4  -  FREEBSD-6-3  -  FREEBSD-6-2  -  FREEBSD-6-1  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-5  -  FREEBSD-5-4  -  FREEBSD-5-3  -  FREEBSD-5-2  -  FREEBSD-5-1  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  linux-2.6  -  linux-2.4.22  -  MK83  -  MK84  -  PLAN9  -  DFBSD  -  NETBSD  -  NETBSD5  -  NETBSD4  -  NETBSD3  -  NETBSD20  -  OPENBSD  -  xnu-517  -  xnu-792  -  xnu-792.6.70  -  xnu-1228  -  xnu-1456.1.26  -  xnu-1699.24.8  -  xnu-2050.18.24  -  OPENSOLARIS  -  minix-3-1-1 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * CDDL HEADER START
    3  *
    4  * The contents of this file are subject to the terms of the
    5  * Common Development and Distribution License (the "License").
    6  * You may not use this file except in compliance with the License.
    7  *
    8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
    9  * or http://www.opensolaris.org/os/licensing.
   10  * See the License for the specific language governing permissions
   11  * and limitations under the License.
   12  *
   13  * When distributing Covered Code, include this CDDL HEADER in each
   14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
   15  * If applicable, add the following below this CDDL HEADER, with the
   16  * fields enclosed by brackets "[]" replaced with your own identifying
   17  * information: Portions Copyright [yyyy] [name of copyright owner]
   18  *
   19  * CDDL HEADER END
   20  */
   21 
   22 /*
   23  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   24  */
   25 
   26 /*      Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */
   27 /*      Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T   */
   28 /*      All Rights Reserved     */
   29 
   30 #ifndef _SYS_STAT_H
   31 #define _SYS_STAT_H
   32 
   33 #include <sys/feature_tests.h>
   34 #include <sys/types.h>
   35 
   36 #ifdef  __cplusplus
   37 extern "C" {
   38 #endif
   39 
   40 /*
   41  * The implementation specific header <sys/time_impl.h> includes a
   42  * definition for timestruc_t needed by the stat structure.  However,
   43  * including either <time.h>, which includes <sys/time_impl.h>, or
   44  * including <sys/time_impl.h> directly will break both X/Open and
   45  * POSIX namespace. Preceeding tag, structure, and structure member
   46  * names with underscores eliminates the namespace breakage and at the
   47  * same time, with unique type names, eliminates the possibility of
   48  * timespec_t or timestruct_t naming conflicts that could otherwise
   49  * result based on the order of inclusion of <sys/stat.h> and
   50  * <sys/time.h>.  The header <sys/time_std_impl.h> contains the
   51  * standards namespace safe versions of these definitions.
   52  */
   53 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
   54 #include <sys/time_impl.h>
   55 #else
   56 #include <sys/time_std_impl.h>
   57 #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
   58 
   59 #define _ST_FSTYPSZ 16          /* array size for file system type name */
   60 
   61 /*
   62  * stat structure, used by stat(2) and fstat(2)
   63  */
   64 
   65 #if defined(_KERNEL)
   66 
   67         /* Expanded stat structure */
   68 
   69 #if defined(_LP64)
   70 
   71 struct stat {
   72         dev_t           st_dev;
   73         ino_t           st_ino;
   74         mode_t          st_mode;
   75         nlink_t         st_nlink;
   76         uid_t           st_uid;
   77         gid_t           st_gid;
   78         dev_t           st_rdev;
   79         off_t           st_size;
   80         timestruc_t     st_atim;
   81         timestruc_t     st_mtim;
   82         timestruc_t     st_ctim;
   83         blksize_t       st_blksize;
   84         blkcnt_t        st_blocks;
   85         char            st_fstype[_ST_FSTYPSZ];
   86 };
   87 
   88 struct stat64 {
   89         dev_t           st_dev;
   90         ino_t           st_ino;
   91         mode_t          st_mode;
   92         nlink_t         st_nlink;
   93         uid_t           st_uid;
   94         gid_t           st_gid;
   95         dev_t           st_rdev;
   96         off_t           st_size;
   97         timestruc_t     st_atim;
   98         timestruc_t     st_mtim;
   99         timestruc_t     st_ctim;
  100         blksize_t       st_blksize;
  101         blkcnt_t        st_blocks;
  102         char            st_fstype[_ST_FSTYPSZ];
  103 };
  104 
  105 #else   /* _LP64 */
  106 
  107 struct  stat {
  108         dev_t           st_dev;
  109         long            st_pad1[3];     /* reserve for dev expansion, */
  110                                         /* sysid definition */
  111         ino_t           st_ino;
  112         mode_t          st_mode;
  113         nlink_t         st_nlink;
  114         uid_t           st_uid;
  115         gid_t           st_gid;
  116         dev_t           st_rdev;
  117         long            st_pad2[2];
  118         off_t           st_size;
  119         long            st_pad3;        /* pad for future off_t expansion */
  120         timestruc_t     st_atim;
  121         timestruc_t     st_mtim;
  122         timestruc_t     st_ctim;
  123         blksize_t       st_blksize;
  124         blkcnt_t        st_blocks;
  125         char            st_fstype[_ST_FSTYPSZ];
  126         long            st_pad4[8];     /* expansion area */
  127 };
  128 
  129 struct  stat64 {
  130         dev_t           st_dev;
  131         long            st_pad1[3];     /* reserve for dev expansion, */
  132                                 /* sysid definition */
  133         ino64_t         st_ino;
  134         mode_t          st_mode;
  135         nlink_t         st_nlink;
  136         uid_t           st_uid;
  137         gid_t           st_gid;
  138         dev_t           st_rdev;
  139         long            st_pad2[2];
  140         off64_t         st_size;        /* large file support */
  141         timestruc_t     st_atim;
  142         timestruc_t     st_mtim;
  143         timestruc_t     st_ctim;
  144         blksize_t       st_blksize;
  145         blkcnt64_t      st_blocks;      /* large file support */
  146         char            st_fstype[_ST_FSTYPSZ];
  147         long            st_pad4[8];     /* expansion area */
  148 };
  149 
  150 #endif  /* _LP64 */
  151 
  152 #else /* !defined(_KERNEL) */
  153 
  154 /*
  155  * large file compilation environment setup
  156  */
  157 #if !defined(_LP64) && _FILE_OFFSET_BITS == 64
  158 #ifdef  __PRAGMA_REDEFINE_EXTNAME
  159 #pragma redefine_extname        fstat   fstat64
  160 #pragma redefine_extname        stat    stat64
  161 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) || \
  162         defined(_ATFILE_SOURCE)
  163 #pragma redefine_extname        fstatat fstatat64
  164 #endif /* defined (_ATFILE_SOURCE) */
  165 
  166 #if !defined(__XOPEN_OR_POSIX) || defined(_XPG_2) || defined(__EXTENSIONS__)
  167 #pragma redefine_extname        lstat   lstat64
  168 #endif
  169 #else   /* __PRAGMA_REDEFINE_EXTNAME */
  170 #define fstat   fstat64
  171 #define stat    stat64
  172 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) || \
  173         defined(_ATFILE_SOURCE)
  174 #define fstatat fstatat64
  175 #endif /* defined (_ATFILE_SOURCE) */
  176 #if !defined(__XOPEN_OR_POSIX) || defined(_XPG_2) || defined(__EXTENSIONS__)
  177 #define lstat   lstat64
  178 #endif
  179 #endif  /* __PRAGMA_REDEFINE_EXTNAME */
  180 #endif  /* !_LP64 && _FILE_OFFSET_BITS == 64 */
  181 
  182 /*
  183  * In the LP64 compilation environment, map large file interfaces
  184  * back to native versions where possible.
  185  */
  186 #if defined(_LP64) && defined(_LARGEFILE64_SOURCE)
  187 #ifdef  __PRAGMA_REDEFINE_EXTNAME
  188 #pragma redefine_extname        fstat64 fstat
  189 #pragma redefine_extname        stat64  stat
  190 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) || \
  191         defined(_ATFILE_SOURCE)
  192 #pragma redefine_extname        fstatat64 fstatat
  193 #endif /* defined (_ATFILE_SOURCE) */
  194 #if !defined(__XOPEN_OR_POSIX) || defined(_XPG_2) || defined(__EXTENSIONS__)
  195 #pragma redefine_extname        lstat64 lstat
  196 #endif
  197 #else   /* __PRAGMA_REDEFINE_EXTNAME */
  198 #define fstat64 fstat
  199 #define stat64  stat
  200 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) || \
  201         defined(_ATFILE_SOURCE)
  202 #define fstatat64       fstatat
  203 #endif /* defined (_ATFILE_SOURCE) */
  204 #if !defined(__XOPEN_OR_POSIX) || defined(_XPG_2) || defined(__EXTENSIONS__)
  205 #define lstat64 lstat
  206 #endif
  207 #endif  /* __PRAGMA_REDEFINE_EXTNAME */
  208 #endif  /* _LP64 && _LARGEFILE64_SOURCE */
  209 
  210 /*
  211  * User level stat structure definitions.
  212  */
  213 
  214 #if defined(_LP64)
  215 
  216 struct stat {
  217         dev_t           st_dev;
  218         ino_t           st_ino;
  219         mode_t          st_mode;
  220         nlink_t         st_nlink;
  221         uid_t           st_uid;
  222         gid_t           st_gid;
  223         dev_t           st_rdev;
  224         off_t           st_size;
  225 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
  226         timestruc_t     st_atim;
  227         timestruc_t     st_mtim;
  228         timestruc_t     st_ctim;
  229 #else
  230         _timestruc_t    st_atim;
  231         _timestruc_t    st_mtim;
  232         _timestruc_t    st_ctim;
  233 #endif
  234         blksize_t       st_blksize;
  235         blkcnt_t        st_blocks;
  236         char            st_fstype[_ST_FSTYPSZ];
  237 };
  238 
  239 #else   /* _LP64 */
  240 
  241 struct  stat {
  242         dev_t           st_dev;
  243         long            st_pad1[3];     /* reserved for network id */
  244         ino_t           st_ino;
  245         mode_t          st_mode;
  246         nlink_t         st_nlink;
  247         uid_t           st_uid;
  248         gid_t           st_gid;
  249         dev_t           st_rdev;
  250         long            st_pad2[2];
  251         off_t           st_size;
  252 #if _FILE_OFFSET_BITS != 64
  253         long            st_pad3;        /* future off_t expansion */
  254 #endif
  255 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
  256         timestruc_t     st_atim;
  257         timestruc_t     st_mtim;
  258         timestruc_t     st_ctim;
  259 #else
  260         _timestruc_t    st_atim;
  261         _timestruc_t    st_mtim;
  262         _timestruc_t    st_ctim;
  263 #endif
  264         blksize_t       st_blksize;
  265         blkcnt_t        st_blocks;
  266         char            st_fstype[_ST_FSTYPSZ];
  267         long            st_pad4[8];     /* expansion area */
  268 };
  269 
  270 #endif  /* _LP64 */
  271 
  272 /* transitional large file interface version */
  273 #if     defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
  274             !defined(__PRAGMA_REDEFINE_EXTNAME))
  275 #if defined(_LP64)
  276 
  277 struct stat64 {
  278         dev_t           st_dev;
  279         ino_t           st_ino;
  280         mode_t          st_mode;
  281         nlink_t         st_nlink;
  282         uid_t           st_uid;
  283         gid_t           st_gid;
  284         dev_t           st_rdev;
  285         off_t           st_size;
  286 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
  287         timestruc_t     st_atim;
  288         timestruc_t     st_mtim;
  289         timestruc_t     st_ctim;
  290 #else
  291         _timestruc_t    st_atim;
  292         _timestruc_t    st_mtim;
  293         _timestruc_t    st_ctim;
  294 #endif
  295         blksize_t       st_blksize;
  296         blkcnt_t        st_blocks;
  297         char            st_fstype[_ST_FSTYPSZ];
  298 };
  299 
  300 #else   /* _LP64 */
  301 
  302 struct  stat64 {
  303         dev_t           st_dev;
  304         long            st_pad1[3];     /* reserved for network id */
  305         ino64_t         st_ino;
  306         mode_t          st_mode;
  307         nlink_t         st_nlink;
  308         uid_t           st_uid;
  309         gid_t           st_gid;
  310         dev_t           st_rdev;
  311         long            st_pad2[2];
  312         off64_t         st_size;
  313 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
  314         timestruc_t     st_atim;
  315         timestruc_t     st_mtim;
  316         timestruc_t     st_ctim;
  317 #else
  318         _timestruc_t    st_atim;
  319         _timestruc_t    st_mtim;
  320         _timestruc_t    st_ctim;
  321 #endif
  322         blksize_t       st_blksize;
  323         blkcnt64_t      st_blocks;
  324         char            st_fstype[_ST_FSTYPSZ];
  325         long            st_pad4[8];     /* expansion area */
  326 };
  327 
  328 #endif  /* _LP64 */
  329 #endif
  330 
  331 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
  332 #define st_atime        st_atim.tv_sec
  333 #define st_mtime        st_mtim.tv_sec
  334 #define st_ctime        st_ctim.tv_sec
  335 #else
  336 #define st_atime        st_atim.__tv_sec
  337 #define st_mtime        st_mtim.__tv_sec
  338 #define st_ctime        st_ctim.__tv_sec
  339 #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
  340 
  341 #endif /* end defined(_KERNEL) */
  342 
  343 #if defined(_SYSCALL32)
  344 
  345 /*
  346  * Kernel's view of user ILP32 stat and stat64 structures
  347  */
  348 
  349 struct stat32 {
  350         dev32_t         st_dev;
  351         int32_t         st_pad1[3];
  352         ino32_t         st_ino;
  353         mode32_t        st_mode;
  354         nlink32_t       st_nlink;
  355         uid32_t         st_uid;
  356         gid32_t         st_gid;
  357         dev32_t         st_rdev;
  358         int32_t         st_pad2[2];
  359         off32_t         st_size;
  360         int32_t         st_pad3;
  361         timestruc32_t   st_atim;
  362         timestruc32_t   st_mtim;
  363         timestruc32_t   st_ctim;
  364         int32_t         st_blksize;
  365         blkcnt32_t      st_blocks;
  366         char            st_fstype[_ST_FSTYPSZ];
  367         int32_t         st_pad4[8];
  368 };
  369 
  370 #if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4
  371 #pragma pack(4)
  372 #endif
  373 
  374 struct stat64_32 {
  375         dev32_t         st_dev;
  376         int32_t         st_pad1[3];
  377         ino64_t         st_ino;
  378         mode32_t        st_mode;
  379         nlink32_t       st_nlink;
  380         uid32_t         st_uid;
  381         gid32_t         st_gid;
  382         dev32_t         st_rdev;
  383         int32_t         st_pad2[2];
  384         off64_t         st_size;
  385         timestruc32_t   st_atim;
  386         timestruc32_t   st_mtim;
  387         timestruc32_t   st_ctim;
  388         int32_t         st_blksize;
  389         blkcnt64_t      st_blocks;
  390         char            st_fstype[_ST_FSTYPSZ];
  391         int32_t         st_pad4[8];
  392 };
  393 
  394 #if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4
  395 #pragma pack()
  396 #endif
  397 
  398 #endif  /* _SYSCALL32 */
  399 
  400 /* MODE MASKS */
  401 
  402 /* de facto standard definitions */
  403 
  404 #define S_IFMT          0xF000  /* type of file */
  405 #define S_IAMB          0x1FF   /* access mode bits */
  406 #define S_IFIFO         0x1000  /* fifo */
  407 #define S_IFCHR         0x2000  /* character special */
  408 #define S_IFDIR         0x4000  /* directory */
  409 /* XENIX definitions are not relevant to Solaris */
  410 #define S_IFNAM         0x5000  /* XENIX special named file */
  411 #define S_INSEM         0x1     /* XENIX semaphore subtype of IFNAM */
  412 #define S_INSHD         0x2     /* XENIX shared data subtype of IFNAM */
  413 #define S_IFBLK         0x6000  /* block special */
  414 #define S_IFREG         0x8000  /* regular */
  415 #define S_IFLNK         0xA000  /* symbolic link */
  416 #define S_IFSOCK        0xC000  /* socket */
  417 #define S_IFDOOR        0xD000  /* door */
  418 #define S_IFPORT        0xE000  /* event port */
  419 #define S_ISUID         0x800   /* set user id on execution */
  420 #define S_ISGID         0x400   /* set group id on execution */
  421 #define S_ISVTX         0x200   /* save swapped text even after use */
  422 #define S_IREAD         00400   /* read permission, owner */
  423 #define S_IWRITE        00200   /* write permission, owner */
  424 #define S_IEXEC         00100   /* execute/search permission, owner */
  425 #define S_ENFMT         S_ISGID /* record locking enforcement flag */
  426 
  427 /* the following macros are for POSIX conformance */
  428 
  429 #define S_IRWXU         00700   /* read, write, execute: owner */
  430 #define S_IRUSR         00400   /* read permission: owner */
  431 #define S_IWUSR         00200   /* write permission: owner */
  432 #define S_IXUSR         00100   /* execute permission: owner */
  433 #define S_IRWXG         00070   /* read, write, execute: group */
  434 #define S_IRGRP         00040   /* read permission: group */
  435 #define S_IWGRP         00020   /* write permission: group */
  436 #define S_IXGRP         00010   /* execute permission: group */
  437 #define S_IRWXO         00007   /* read, write, execute: other */
  438 #define S_IROTH         00004   /* read permission: other */
  439 #define S_IWOTH         00002   /* write permission: other */
  440 #define S_IXOTH         00001   /* execute permission: other */
  441 
  442 
  443 #define S_ISFIFO(mode)  (((mode)&0xF000) == 0x1000)
  444 #define S_ISCHR(mode)   (((mode)&0xF000) == 0x2000)
  445 #define S_ISDIR(mode)   (((mode)&0xF000) == 0x4000)
  446 #define S_ISBLK(mode)   (((mode)&0xF000) == 0x6000)
  447 #define S_ISREG(mode)   (((mode)&0xF000) == 0x8000)
  448 #define S_ISLNK(mode)   (((mode)&0xF000) == 0xa000)
  449 #define S_ISSOCK(mode)  (((mode)&0xF000) == 0xc000)
  450 #define S_ISDOOR(mode)  (((mode)&0xF000) == 0xd000)
  451 #define S_ISPORT(mode)  (((mode)&0xF000) == 0xe000)
  452 
  453 /* POSIX.4 macros */
  454 #define S_TYPEISMQ(_buf)        (0)
  455 #define S_TYPEISSEM(_buf)       (0)
  456 #define S_TYPEISSHM(_buf)       (0)
  457 
  458 #if defined(__i386) || (defined(__i386_COMPAT) && defined(_KERNEL))
  459 
  460 /*
  461  * A version number is included in the x86 SVR4 stat and mknod interfaces
  462  * so that SVR4 binaries can be supported.  An LP64 kernel that supports
  463  * the i386 ABI need to be aware of this too.
  464  */
  465 
  466 #define _R3_MKNOD_VER   1       /* SVR3.0 mknod */
  467 #define _MKNOD_VER      2       /* current version of mknod */
  468 #define _R3_STAT_VER    1       /* SVR3.0 stat */
  469 #define _STAT_VER       2       /* current version of stat */
  470 
  471 #endif  /* __i386 || (__i386_COMPAT && _KERNEL) */
  472 
  473 #if defined(__EXTENSIONS__) || \
  474         (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
  475         /* || defined(_XPG7) */
  476 /* for use with futimens() and utimensat() */
  477 #define UTIME_NOW       -1L
  478 #define UTIME_OMIT      -2L
  479 #endif  /* defined(__EXTENSIONS__) ... */
  480 
  481 #if !defined(_KERNEL) || defined(_BOOT)
  482 
  483 #if defined(__STDC__)
  484 
  485 #if !defined(__XOPEN_OR_POSIX) || (_POSIX_C_SOURCE > 2) || \
  486         defined(_XPG4_2) || defined(__EXTENSIONS__)
  487 extern int fchmod(int, mode_t);
  488 #endif /* !defined(__XOPEN_OR_POSIX) || (_POSIX_C_SOURCE > 2)... */
  489 
  490 extern int chmod(const char *, mode_t);
  491 extern int mkdir(const char *, mode_t);
  492 extern int mkfifo(const char *, mode_t);
  493 extern mode_t umask(mode_t);
  494 
  495 /* transitional large file interfaces */
  496 #if     defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
  497             !defined(__PRAGMA_REDEFINE_EXTNAME))
  498 extern int fstat64(int, struct stat64 *);
  499 extern int stat64(const char *_RESTRICT_KYWD, struct stat64 *_RESTRICT_KYWD);
  500 extern int lstat64(const char *_RESTRICT_KYWD, struct stat64 *_RESTRICT_KYWD);
  501 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) || \
  502         defined(_ATFILE_SOURCE)
  503 extern int fstatat64(int, const char *, struct stat64 *, int);
  504 #endif /* defined (_ATFILE_SOURCE) */
  505 #endif
  506 
  507 #if defined(__EXTENSIONS__) || defined(_ATFILE_SOURCE) || \
  508         (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
  509         /* || defined(_XPG7) */
  510 extern int mkdirat(int, const char *, mode_t);
  511 extern int mkfifoat(int, const char *, mode_t);
  512 extern int mknodat(int, const char *, mode_t, dev_t);
  513 extern int fchmodat(int, const char *, mode_t, int);
  514 extern int futimens(int, const struct timespec[2]);
  515 extern int utimensat(int, const char *, const struct timespec[2], int);
  516 #endif  /* defined(__EXTENSIONS__) ... */
  517 
  518 #else /* !__STDC__ */
  519 
  520 #if !defined(__XOPEN_OR_POSIX) || (_POSIX_C_SOURCE > 2) || \
  521         defined(_XPG4_2) || defined(__EXTENSIONS__)
  522 extern int fchmod();
  523 #endif /* !defined(__XOPEN_OR_POSIX) || (_POSIX_C_SOURCE > 2)... */
  524 
  525 extern int chmod();
  526 extern int mkdir();
  527 extern int mkfifo();
  528 extern mode_t umask();
  529 
  530 /* transitional large file interfaces */
  531 #if     defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
  532             !defined(__PRAGMA_REDEFINE_EXTNAME))
  533 extern int fstat64();
  534 extern int stat64();
  535 extern int lstat64();
  536 #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) || \
  537         defined(_ATFILE_SOURCE)
  538 extern int fstatat64();
  539 #endif /* defined (_ATFILE_SOURCE) */
  540 #endif
  541 
  542 #if defined(__EXTENSIONS__) || defined(_ATFILE_SOURCE) || \
  543         (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
  544         /* || defined(_XPG7) */
  545 extern int mkdirat();
  546 extern int mkfifoat();
  547 extern int mknodat();
  548 extern int fchmodat();
  549 extern int futimens();
  550 extern int utimensat();
  551 #endif  /* defined(__EXTENSIONS__) ... */
  552 
  553 #endif /* defined(__STDC__) */
  554 
  555 #include <sys/stat_impl.h>
  556 
  557 #endif /* !defined(_KERNEL) */
  558 
  559 #ifdef  __cplusplus
  560 }
  561 #endif
  562 
  563 #endif  /* _SYS_STAT_H */

Cache object: 6310768500b2c6f899d492ce218a282b


[ 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.