Annotation of embedaddon/libiconv/srclib/sys_stat.in.h, revision 1.1.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>