Annotation of embedaddon/libiconv/srclib/sys_stat.in.h, revision 1.1

1.1     ! misho       1: /* Provide a more complete sys/stat header file.
        !             2:    Copyright (C) 2005-2011 Free Software Foundation, Inc.
        !             3: 
        !             4:    This program is free software; you can redistribute it and/or modify
        !             5:    it under the terms of the GNU General Public License as published by
        !             6:    the Free Software Foundation; either version 3, or (at your option)
        !             7:    any later version.
        !             8: 
        !             9:    This program is distributed in the hope that it will be useful,
        !            10:    but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            11:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            12:    GNU General Public License for more details.
        !            13: 
        !            14:    You should have received a copy of the GNU General Public License
        !            15:    along with this program; if not, write to the Free Software Foundation,
        !            16:    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
        !            17: 
        !            18: /* Written by Eric Blake, Paul Eggert, and Jim Meyering.  */
        !            19: 
        !            20: /* This file is supposed to be used on platforms where <sys/stat.h> is
        !            21:    incomplete.  It is intended to provide definitions and prototypes
        !            22:    needed by an application.  Start with what the system provides.  */
        !            23: 
        !            24: #if __GNUC__ >= 3
        !            25: @PRAGMA_SYSTEM_HEADER@
        !            26: #endif
        !            27: @PRAGMA_COLUMNS@
        !            28: 
        !            29: #if defined __need_system_sys_stat_h
        !            30: /* Special invocation convention.  */
        !            31: 
        !            32: #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@
        !            33: 
        !            34: #else
        !            35: /* Normal invocation convention.  */
        !            36: 
        !            37: #ifndef _@GUARD_PREFIX@_SYS_STAT_H
        !            38: 
        !            39: /* Get nlink_t.  */
        !            40: #include <sys/types.h>
        !            41: 
        !            42: /* Get struct timespec.  */
        !            43: #include <time.h>
        !            44: 
        !            45: /* The include_next requires a split double-inclusion guard.  */
        !            46: #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@
        !            47: 
        !            48: #ifndef _@GUARD_PREFIX@_SYS_STAT_H
        !            49: #define _@GUARD_PREFIX@_SYS_STAT_H
        !            50: 
        !            51: /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
        !            52: 
        !            53: /* The definition of _GL_ARG_NONNULL is copied here.  */
        !            54: 
        !            55: /* The definition of _GL_WARN_ON_USE is copied here.  */
        !            56: 
        !            57: /* Before doing "#define mkdir rpl_mkdir" below, we need to include all
        !            58:    headers that may declare mkdir().  */
        !            59: #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
        !            60: # include <io.h>     /* mingw32, mingw64 */
        !            61: # include <direct.h> /* mingw64 */
        !            62: #endif
        !            63: 
        !            64: #ifndef S_IFMT
        !            65: # define S_IFMT 0170000
        !            66: #endif
        !            67: 
        !            68: #if STAT_MACROS_BROKEN
        !            69: # undef S_ISBLK
        !            70: # undef S_ISCHR
        !            71: # undef S_ISDIR
        !            72: # undef S_ISFIFO
        !            73: # undef S_ISLNK
        !            74: # undef S_ISNAM
        !            75: # undef S_ISMPB
        !            76: # undef S_ISMPC
        !            77: # undef S_ISNWK
        !            78: # undef S_ISREG
        !            79: # undef S_ISSOCK
        !            80: #endif
        !            81: 
        !            82: #ifndef S_ISBLK
        !            83: # ifdef S_IFBLK
        !            84: #  define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
        !            85: # else
        !            86: #  define S_ISBLK(m) 0
        !            87: # endif
        !            88: #endif
        !            89: 
        !            90: #ifndef S_ISCHR
        !            91: # ifdef S_IFCHR
        !            92: #  define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
        !            93: # else
        !            94: #  define S_ISCHR(m) 0
        !            95: # endif
        !            96: #endif
        !            97: 
        !            98: #ifndef S_ISDIR
        !            99: # ifdef S_IFDIR
        !           100: #  define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
        !           101: # else
        !           102: #  define S_ISDIR(m) 0
        !           103: # endif
        !           104: #endif
        !           105: 
        !           106: #ifndef S_ISDOOR /* Solaris 2.5 and up */
        !           107: # define S_ISDOOR(m) 0
        !           108: #endif
        !           109: 
        !           110: #ifndef S_ISFIFO
        !           111: # ifdef S_IFIFO
        !           112: #  define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
        !           113: # else
        !           114: #  define S_ISFIFO(m) 0
        !           115: # endif
        !           116: #endif
        !           117: 
        !           118: #ifndef S_ISLNK
        !           119: # ifdef S_IFLNK
        !           120: #  define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
        !           121: # else
        !           122: #  define S_ISLNK(m) 0
        !           123: # endif
        !           124: #endif
        !           125: 
        !           126: #ifndef S_ISMPB /* V7 */
        !           127: # ifdef S_IFMPB
        !           128: #  define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB)
        !           129: #  define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC)
        !           130: # else
        !           131: #  define S_ISMPB(m) 0
        !           132: #  define S_ISMPC(m) 0
        !           133: # endif
        !           134: #endif
        !           135: 
        !           136: #ifndef S_ISNAM /* Xenix */
        !           137: # ifdef S_IFNAM
        !           138: #  define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM)
        !           139: # else
        !           140: #  define S_ISNAM(m) 0
        !           141: # endif
        !           142: #endif
        !           143: 
        !           144: #ifndef S_ISNWK /* HP/UX */
        !           145: # ifdef S_IFNWK
        !           146: #  define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK)
        !           147: # else
        !           148: #  define S_ISNWK(m) 0
        !           149: # endif
        !           150: #endif
        !           151: 
        !           152: #ifndef S_ISPORT /* Solaris 10 and up */
        !           153: # define S_ISPORT(m) 0
        !           154: #endif
        !           155: 
        !           156: #ifndef S_ISREG
        !           157: # ifdef S_IFREG
        !           158: #  define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
        !           159: # else
        !           160: #  define S_ISREG(m) 0
        !           161: # endif
        !           162: #endif
        !           163: 
        !           164: #ifndef S_ISSOCK
        !           165: # ifdef S_IFSOCK
        !           166: #  define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
        !           167: # else
        !           168: #  define S_ISSOCK(m) 0
        !           169: # endif
        !           170: #endif
        !           171: 
        !           172: 
        !           173: #ifndef S_TYPEISMQ
        !           174: # define S_TYPEISMQ(p) 0
        !           175: #endif
        !           176: 
        !           177: #ifndef S_TYPEISTMO
        !           178: # define S_TYPEISTMO(p) 0
        !           179: #endif
        !           180: 
        !           181: 
        !           182: #ifndef S_TYPEISSEM
        !           183: # ifdef S_INSEM
        !           184: #  define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM)
        !           185: # else
        !           186: #  define S_TYPEISSEM(p) 0
        !           187: # endif
        !           188: #endif
        !           189: 
        !           190: #ifndef S_TYPEISSHM
        !           191: # ifdef S_INSHD
        !           192: #  define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD)
        !           193: # else
        !           194: #  define S_TYPEISSHM(p) 0
        !           195: # endif
        !           196: #endif
        !           197: 
        !           198: /* high performance ("contiguous data") */
        !           199: #ifndef S_ISCTG
        !           200: # define S_ISCTG(p) 0
        !           201: #endif
        !           202: 
        !           203: /* Cray DMF (data migration facility): off line, with data  */
        !           204: #ifndef S_ISOFD
        !           205: # define S_ISOFD(p) 0
        !           206: #endif
        !           207: 
        !           208: /* Cray DMF (data migration facility): off line, with no data  */
        !           209: #ifndef S_ISOFL
        !           210: # define S_ISOFL(p) 0
        !           211: #endif
        !           212: 
        !           213: /* 4.4BSD whiteout */
        !           214: #ifndef S_ISWHT
        !           215: # define S_ISWHT(m) 0
        !           216: #endif
        !           217: 
        !           218: /* If any of the following are undefined,
        !           219:    define them to their de facto standard values.  */
        !           220: #if !S_ISUID
        !           221: # define S_ISUID 04000
        !           222: #endif
        !           223: #if !S_ISGID
        !           224: # define S_ISGID 02000
        !           225: #endif
        !           226: 
        !           227: /* S_ISVTX is a common extension to POSIX.  */
        !           228: #ifndef S_ISVTX
        !           229: # define S_ISVTX 01000
        !           230: #endif
        !           231: 
        !           232: #if !S_IRUSR && S_IREAD
        !           233: # define S_IRUSR S_IREAD
        !           234: #endif
        !           235: #if !S_IRUSR
        !           236: # define S_IRUSR 00400
        !           237: #endif
        !           238: #if !S_IRGRP
        !           239: # define S_IRGRP (S_IRUSR >> 3)
        !           240: #endif
        !           241: #if !S_IROTH
        !           242: # define S_IROTH (S_IRUSR >> 6)
        !           243: #endif
        !           244: 
        !           245: #if !S_IWUSR && S_IWRITE
        !           246: # define S_IWUSR S_IWRITE
        !           247: #endif
        !           248: #if !S_IWUSR
        !           249: # define S_IWUSR 00200
        !           250: #endif
        !           251: #if !S_IWGRP
        !           252: # define S_IWGRP (S_IWUSR >> 3)
        !           253: #endif
        !           254: #if !S_IWOTH
        !           255: # define S_IWOTH (S_IWUSR >> 6)
        !           256: #endif
        !           257: 
        !           258: #if !S_IXUSR && S_IEXEC
        !           259: # define S_IXUSR S_IEXEC
        !           260: #endif
        !           261: #if !S_IXUSR
        !           262: # define S_IXUSR 00100
        !           263: #endif
        !           264: #if !S_IXGRP
        !           265: # define S_IXGRP (S_IXUSR >> 3)
        !           266: #endif
        !           267: #if !S_IXOTH
        !           268: # define S_IXOTH (S_IXUSR >> 6)
        !           269: #endif
        !           270: 
        !           271: #if !S_IRWXU
        !           272: # define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
        !           273: #endif
        !           274: #if !S_IRWXG
        !           275: # define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
        !           276: #endif
        !           277: #if !S_IRWXO
        !           278: # define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
        !           279: #endif
        !           280: 
        !           281: /* S_IXUGO is a common extension to POSIX.  */
        !           282: #if !S_IXUGO
        !           283: # define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
        !           284: #endif
        !           285: 
        !           286: #ifndef S_IRWXUGO
        !           287: # define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO)
        !           288: #endif
        !           289: 
        !           290: /* Macros for futimens and utimensat.  */
        !           291: #ifndef UTIME_NOW
        !           292: # define UTIME_NOW (-1)
        !           293: # define UTIME_OMIT (-2)
        !           294: #endif
        !           295: 
        !           296: 
        !           297: #if @GNULIB_FCHMODAT@
        !           298: # if !@HAVE_FCHMODAT@
        !           299: _GL_FUNCDECL_SYS (fchmodat, int,
        !           300:                   (int fd, char const *file, mode_t mode, int flag)
        !           301:                   _GL_ARG_NONNULL ((2)));
        !           302: # endif
        !           303: _GL_CXXALIAS_SYS (fchmodat, int,
        !           304:                   (int fd, char const *file, mode_t mode, int flag));
        !           305: _GL_CXXALIASWARN (fchmodat);
        !           306: #elif defined GNULIB_POSIXCHECK
        !           307: # undef fchmodat
        !           308: # if HAVE_RAW_DECL_FCHMODAT
        !           309: _GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - "
        !           310:                  "use gnulib module openat for portability");
        !           311: # endif
        !           312: #endif
        !           313: 
        !           314: 
        !           315: #if @REPLACE_FSTAT@
        !           316: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           317: #  define fstat rpl_fstat
        !           318: # endif
        !           319: _GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2)));
        !           320: _GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf));
        !           321: #else
        !           322: _GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf));
        !           323: #endif
        !           324: _GL_CXXALIASWARN (fstat);
        !           325: 
        !           326: 
        !           327: #if @GNULIB_FSTATAT@
        !           328: # if @REPLACE_FSTATAT@
        !           329: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           330: #   undef fstatat
        !           331: #   define fstatat rpl_fstatat
        !           332: #  endif
        !           333: _GL_FUNCDECL_RPL (fstatat, int,
        !           334:                   (int fd, char const *name, struct stat *st, int flags)
        !           335:                   _GL_ARG_NONNULL ((2, 3)));
        !           336: _GL_CXXALIAS_RPL (fstatat, int,
        !           337:                   (int fd, char const *name, struct stat *st, int flags));
        !           338: # else
        !           339: #  if !@HAVE_FSTATAT@
        !           340: _GL_FUNCDECL_SYS (fstatat, int,
        !           341:                   (int fd, char const *name, struct stat *st, int flags)
        !           342:                   _GL_ARG_NONNULL ((2, 3)));
        !           343: #  endif
        !           344: _GL_CXXALIAS_SYS (fstatat, int,
        !           345:                   (int fd, char const *name, struct stat *st, int flags));
        !           346: # endif
        !           347: _GL_CXXALIASWARN (fstatat);
        !           348: #elif defined GNULIB_POSIXCHECK
        !           349: # undef fstatat
        !           350: # if HAVE_RAW_DECL_FSTATAT
        !           351: _GL_WARN_ON_USE (fstatat, "fstatat is not portable - "
        !           352:                  "use gnulib module openat for portability");
        !           353: # endif
        !           354: #endif
        !           355: 
        !           356: 
        !           357: #if @GNULIB_FUTIMENS@
        !           358: /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens
        !           359:    implementation relies on futimesat, which on Solaris 10 makes an invocation
        !           360:    to futimens that is meant to invoke the libc's futimens(), not gnulib's
        !           361:    futimens().  */
        !           362: # if @REPLACE_FUTIMENS@ || (!@HAVE_FUTIMENS@ && defined __sun)
        !           363: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           364: #   undef futimens
        !           365: #   define futimens rpl_futimens
        !           366: #  endif
        !           367: _GL_FUNCDECL_RPL (futimens, int, (int fd, struct timespec const times[2]));
        !           368: _GL_CXXALIAS_RPL (futimens, int, (int fd, struct timespec const times[2]));
        !           369: # else
        !           370: #  if !@HAVE_FUTIMENS@
        !           371: _GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2]));
        !           372: #  endif
        !           373: _GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2]));
        !           374: # endif
        !           375: # if @HAVE_FUTIMENS@
        !           376: _GL_CXXALIASWARN (futimens);
        !           377: # endif
        !           378: #elif defined GNULIB_POSIXCHECK
        !           379: # undef futimens
        !           380: # if HAVE_RAW_DECL_FUTIMENS
        !           381: _GL_WARN_ON_USE (futimens, "futimens is not portable - "
        !           382:                  "use gnulib module futimens for portability");
        !           383: # endif
        !           384: #endif
        !           385: 
        !           386: 
        !           387: #if @GNULIB_LCHMOD@
        !           388: /* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME
        !           389:    denotes a symbolic link.  */
        !           390: # if !@HAVE_LCHMOD@
        !           391: /* The lchmod replacement follows symbolic links.  Callers should take
        !           392:    this into account; lchmod should be applied only to arguments that
        !           393:    are known to not be symbolic links.  On hosts that lack lchmod,
        !           394:    this can lead to race conditions between the check and the
        !           395:    invocation of lchmod, but we know of no workarounds that are
        !           396:    reliable in general.  You might try requesting support for lchmod
        !           397:    from your operating system supplier.  */
        !           398: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           399: #   define lchmod chmod
        !           400: #  endif
        !           401: /* Need to cast, because on mingw, the second parameter of chmod is
        !           402:                                                 int mode.  */
        !           403: _GL_CXXALIAS_RPL_CAST_1 (lchmod, chmod, int,
        !           404:                          (const char *filename, mode_t mode));
        !           405: # else
        !           406: #  if 0 /* assume already declared */
        !           407: _GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode)
        !           408:                                _GL_ARG_NONNULL ((1)));
        !           409: #  endif
        !           410: _GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode));
        !           411: # endif
        !           412: # if @HAVE_LCHMOD@
        !           413: _GL_CXXALIASWARN (lchmod);
        !           414: # endif
        !           415: #elif defined GNULIB_POSIXCHECK
        !           416: # undef lchmod
        !           417: # if HAVE_RAW_DECL_LCHMOD
        !           418: _GL_WARN_ON_USE (lchmod, "lchmod is unportable - "
        !           419:                  "use gnulib module lchmod for portability");
        !           420: # endif
        !           421: #endif
        !           422: 
        !           423: 
        !           424: #if @GNULIB_LSTAT@
        !           425: # if ! @HAVE_LSTAT@
        !           426: /* mingw does not support symlinks, therefore it does not have lstat.  But
        !           427:    without links, stat does just fine.  */
        !           428: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           429: #   define lstat stat
        !           430: #  endif
        !           431: _GL_CXXALIAS_RPL_1 (lstat, stat, int, (const char *name, struct stat *buf));
        !           432: # elif @REPLACE_LSTAT@
        !           433: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           434: #   undef lstat
        !           435: #   define lstat rpl_lstat
        !           436: #  endif
        !           437: _GL_FUNCDECL_RPL (lstat, int, (const char *name, struct stat *buf)
        !           438:                               _GL_ARG_NONNULL ((1, 2)));
        !           439: _GL_CXXALIAS_RPL (lstat, int, (const char *name, struct stat *buf));
        !           440: # else
        !           441: _GL_CXXALIAS_SYS (lstat, int, (const char *name, struct stat *buf));
        !           442: # endif
        !           443: # if @HAVE_LSTAT@
        !           444: _GL_CXXALIASWARN (lstat);
        !           445: # endif
        !           446: #elif defined GNULIB_POSIXCHECK
        !           447: # undef lstat
        !           448: # if HAVE_RAW_DECL_LSTAT
        !           449: _GL_WARN_ON_USE (lstat, "lstat is unportable - "
        !           450:                  "use gnulib module lstat for portability");
        !           451: # endif
        !           452: #endif
        !           453: 
        !           454: 
        !           455: #if @REPLACE_MKDIR@
        !           456: # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           457: #  undef mkdir
        !           458: #  define mkdir rpl_mkdir
        !           459: # endif
        !           460: _GL_FUNCDECL_RPL (mkdir, int, (char const *name, mode_t mode)
        !           461:                               _GL_ARG_NONNULL ((1)));
        !           462: _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode));
        !           463: #else
        !           464: /* mingw's _mkdir() function has 1 argument, but we pass 2 arguments.
        !           465:    Additionally, it declares _mkdir (and depending on compile flags, an
        !           466:    alias mkdir), only in the nonstandard includes <direct.h> and <io.h>,
        !           467:    which are included above.  */
        !           468: # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
        !           469: 
        !           470: #  if !GNULIB_defined_rpl_mkdir
        !           471: static inline int
        !           472: rpl_mkdir (char const *name, mode_t mode)
        !           473: {
        !           474:   return _mkdir (name);
        !           475: }
        !           476: #   define GNULIB_defined_rpl_mkdir 1
        !           477: #  endif
        !           478: 
        !           479: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           480: #   define mkdir rpl_mkdir
        !           481: #  endif
        !           482: _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode));
        !           483: # else
        !           484: _GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode));
        !           485: # endif
        !           486: #endif
        !           487: _GL_CXXALIASWARN (mkdir);
        !           488: 
        !           489: 
        !           490: #if @GNULIB_MKDIRAT@
        !           491: # if !@HAVE_MKDIRAT@
        !           492: _GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode)
        !           493:                                 _GL_ARG_NONNULL ((2)));
        !           494: # endif
        !           495: _GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode));
        !           496: _GL_CXXALIASWARN (mkdirat);
        !           497: #elif defined GNULIB_POSIXCHECK
        !           498: # undef mkdirat
        !           499: # if HAVE_RAW_DECL_MKDIRAT
        !           500: _GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - "
        !           501:                  "use gnulib module openat for portability");
        !           502: # endif
        !           503: #endif
        !           504: 
        !           505: 
        !           506: #if @GNULIB_MKFIFO@
        !           507: # if @REPLACE_MKFIFO@
        !           508: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           509: #   undef mkfifo
        !           510: #   define mkfifo rpl_mkfifo
        !           511: #  endif
        !           512: _GL_FUNCDECL_RPL (mkfifo, int, (char const *file, mode_t mode)
        !           513:                                _GL_ARG_NONNULL ((1)));
        !           514: _GL_CXXALIAS_RPL (mkfifo, int, (char const *file, mode_t mode));
        !           515: # else
        !           516: #  if !@HAVE_MKFIFO@
        !           517: _GL_FUNCDECL_SYS (mkfifo, int, (char const *file, mode_t mode)
        !           518:                                _GL_ARG_NONNULL ((1)));
        !           519: #  endif
        !           520: _GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode));
        !           521: # endif
        !           522: _GL_CXXALIASWARN (mkfifo);
        !           523: #elif defined GNULIB_POSIXCHECK
        !           524: # undef mkfifo
        !           525: # if HAVE_RAW_DECL_MKFIFO
        !           526: _GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - "
        !           527:                  "use gnulib module mkfifo for portability");
        !           528: # endif
        !           529: #endif
        !           530: 
        !           531: 
        !           532: #if @GNULIB_MKFIFOAT@
        !           533: # if !@HAVE_MKFIFOAT@
        !           534: _GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)
        !           535:                                  _GL_ARG_NONNULL ((2)));
        !           536: # endif
        !           537: _GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode));
        !           538: _GL_CXXALIASWARN (mkfifoat);
        !           539: #elif defined GNULIB_POSIXCHECK
        !           540: # undef mkfifoat
        !           541: # if HAVE_RAW_DECL_MKFIFOAT
        !           542: _GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - "
        !           543:                  "use gnulib module mkfifoat for portability");
        !           544: # endif
        !           545: #endif
        !           546: 
        !           547: 
        !           548: #if @GNULIB_MKNOD@
        !           549: # if @REPLACE_MKNOD@
        !           550: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           551: #   undef mknod
        !           552: #   define mknod rpl_mknod
        !           553: #  endif
        !           554: _GL_FUNCDECL_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev)
        !           555:                               _GL_ARG_NONNULL ((1)));
        !           556: _GL_CXXALIAS_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev));
        !           557: # else
        !           558: #  if !@HAVE_MKNOD@
        !           559: _GL_FUNCDECL_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev)
        !           560:                               _GL_ARG_NONNULL ((1)));
        !           561: #  endif
        !           562: /* Need to cast, because on OSF/1 5.1, the third parameter is '...'.  */
        !           563: _GL_CXXALIAS_SYS_CAST (mknod, int, (char const *file, mode_t mode, dev_t dev));
        !           564: # endif
        !           565: _GL_CXXALIASWARN (mknod);
        !           566: #elif defined GNULIB_POSIXCHECK
        !           567: # undef mknod
        !           568: # if HAVE_RAW_DECL_MKNOD
        !           569: _GL_WARN_ON_USE (mknod, "mknod is not portable - "
        !           570:                  "use gnulib module mknod for portability");
        !           571: # endif
        !           572: #endif
        !           573: 
        !           574: 
        !           575: #if @GNULIB_MKNODAT@
        !           576: # if !@HAVE_MKNODAT@
        !           577: _GL_FUNCDECL_SYS (mknodat, int,
        !           578:                   (int fd, char const *file, mode_t mode, dev_t dev)
        !           579:                   _GL_ARG_NONNULL ((2)));
        !           580: # endif
        !           581: _GL_CXXALIAS_SYS (mknodat, int,
        !           582:                   (int fd, char const *file, mode_t mode, dev_t dev));
        !           583: _GL_CXXALIASWARN (mknodat);
        !           584: #elif defined GNULIB_POSIXCHECK
        !           585: # undef mknodat
        !           586: # if HAVE_RAW_DECL_MKNODAT
        !           587: _GL_WARN_ON_USE (mknodat, "mknodat is not portable - "
        !           588:                  "use gnulib module mkfifoat for portability");
        !           589: # endif
        !           590: #endif
        !           591: 
        !           592: 
        !           593: #if @GNULIB_STAT@
        !           594: # if @REPLACE_STAT@
        !           595: /* We can't use the object-like #define stat rpl_stat, because of
        !           596:    struct stat.  This means that rpl_stat will not be used if the user
        !           597:    does (stat)(a,b).  Oh well.  */
        !           598: #  undef stat
        !           599: #  ifdef _LARGE_FILES
        !           600:     /* With _LARGE_FILES defined, AIX (only) defines stat to stat64,
        !           601:        so we have to replace stat64() instead of stat(). */
        !           602: #   define stat stat64
        !           603: #   undef stat64
        !           604: #   define stat64(name, st) rpl_stat (name, st)
        !           605: #  else /* !_LARGE_FILES */
        !           606: #   define stat(name, st) rpl_stat (name, st)
        !           607: #  endif /* !_LARGE_FILES */
        !           608: _GL_EXTERN_C int stat (const char *name, struct stat *buf)
        !           609:                       _GL_ARG_NONNULL ((1, 2));
        !           610: # endif
        !           611: #elif defined GNULIB_POSIXCHECK
        !           612: # undef stat
        !           613: # if HAVE_RAW_DECL_STAT
        !           614: _GL_WARN_ON_USE (stat, "stat is unportable - "
        !           615:                  "use gnulib module stat for portability");
        !           616: # endif
        !           617: #endif
        !           618: 
        !           619: 
        !           620: #if @GNULIB_UTIMENSAT@
        !           621: /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat
        !           622:    implementation relies on futimesat, which on Solaris 10 makes an invocation
        !           623:    to utimensat that is meant to invoke the libc's utimensat(), not gnulib's
        !           624:    utimensat().  */
        !           625: # if @REPLACE_UTIMENSAT@ || (!@HAVE_UTIMENSAT@ && defined __sun)
        !           626: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           627: #   undef utimensat
        !           628: #   define utimensat rpl_utimensat
        !           629: #  endif
        !           630: _GL_FUNCDECL_RPL (utimensat, int, (int fd, char const *name,
        !           631:                                    struct timespec const times[2], int flag)
        !           632:                                   _GL_ARG_NONNULL ((2)));
        !           633: _GL_CXXALIAS_RPL (utimensat, int, (int fd, char const *name,
        !           634:                                    struct timespec const times[2], int flag));
        !           635: # else
        !           636: #  if !@HAVE_UTIMENSAT@
        !           637: _GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name,
        !           638:                                    struct timespec const times[2], int flag)
        !           639:                                   _GL_ARG_NONNULL ((2)));
        !           640: #  endif
        !           641: _GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name,
        !           642:                                    struct timespec const times[2], int flag));
        !           643: # endif
        !           644: # if @HAVE_UTIMENSAT@
        !           645: _GL_CXXALIASWARN (utimensat);
        !           646: # endif
        !           647: #elif defined GNULIB_POSIXCHECK
        !           648: # undef utimensat
        !           649: # if HAVE_RAW_DECL_UTIMENSAT
        !           650: _GL_WARN_ON_USE (utimensat, "utimensat is not portable - "
        !           651:                  "use gnulib module utimensat for portability");
        !           652: # endif
        !           653: #endif
        !           654: 
        !           655: 
        !           656: #endif /* _@GUARD_PREFIX@_SYS_STAT_H */
        !           657: #endif /* _@GUARD_PREFIX@_SYS_STAT_H */
        !           658: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>