1/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
2/* Substitute for and wrapper around <unistd.h>.
3   Copyright (C) 2003-2012 Free Software Foundation, Inc.
4
5   This program is free software; you can redistribute it and/or modify
6   it under the terms of the GNU General Public License as published by
7   the Free Software Foundation; either version 3, or (at your option)
8   any later version.
9
10   This program is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   GNU General Public License for more details.
14
15   You should have received a copy of the GNU General Public License
16   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
17
18#if __GNUC__ >= 3
19#pragma GCC system_header
20#endif
21
22
23/* Special invocation convention:
24   - On mingw, several headers, including <winsock2.h>, include <unistd.h>,
25     but we need to ensure that both the system <unistd.h> and <winsock2.h>
26     are completely included before we replace gethostname.  */
27#if 0 && 0 \
28  && !defined _GL_WINSOCK2_H_WITNESS && defined _WINSOCK2_H
29/* <unistd.h> is being indirectly included for the first time from
30   <winsock2.h>; avoid declaring any overrides.  */
31# if 1
32#  include_next <unistd.h>
33# else
34#  error unexpected; report this to bug-gnulib@gnu.org
35# endif
36# define _GL_WINSOCK2_H_WITNESS
37
38/* Normal invocation.  */
39#elif !defined _GL_UNISTD_H
40
41/* The include_next requires a split double-inclusion guard.  */
42#if 1
43# include_next <unistd.h>
44#endif
45
46/* Get all possible declarations of gethostname().  */
47#if 0 && 0 \
48  && !defined _GL_INCLUDING_WINSOCK2_H
49# define _GL_INCLUDING_WINSOCK2_H
50# include <winsock2.h>
51# undef _GL_INCLUDING_WINSOCK2_H
52#endif
53
54#if !defined _GL_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H
55#define _GL_UNISTD_H
56
57/* NetBSD 5.0 mis-defines NULL.  Also get size_t.  */
58#include <stddef.h>
59
60/* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>.  */
61/* Cygwin 1.7.1 declares symlinkat in <stdio.h>, not in <unistd.h>.  */
62/* But avoid namespace pollution on glibc systems.  */
63#if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \
64     || ((0 || defined GNULIB_POSIXCHECK) \
65         && defined __CYGWIN__)) \
66    && ! defined __GLIBC__
67# include <stdio.h>
68#endif
69
70/* Cygwin 1.7.1 declares unlinkat in <fcntl.h>, not in <unistd.h>.  */
71/* But avoid namespace pollution on glibc systems.  */
72#if (0 || defined GNULIB_POSIXCHECK) && defined __CYGWIN__ \
73    && ! defined __GLIBC__
74# include <fcntl.h>
75#endif
76
77/* mingw fails to declare _exit in <unistd.h>.  */
78/* mingw, MSVC, BeOS, Haiku declare environ in <stdlib.h>, not in
79   <unistd.h>.  */
80/* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>.  */
81/* But avoid namespace pollution on glibc systems.  */
82#ifndef __GLIBC__
83# include <stdlib.h>
84#endif
85
86/* Native Windows platforms declare chdir, getcwd, rmdir in
87   <io.h> and/or <direct.h>, not in <unistd.h>.
88   They also declare access(), chmod(), close(), dup(), dup2(), isatty(),
89   lseek(), read(), unlink(), write() in <io.h>.  */
90#if ((0 || 0 || 0 \
91      || defined GNULIB_POSIXCHECK) \
92     && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
93# include <io.h>     /* mingw32, mingw64 */
94# include <direct.h> /* mingw64, MSVC 9 */
95#elif (1 || 0 || 1 || 0 \
96       || 0 || 0 || 0 || 0 \
97       || defined GNULIB_POSIXCHECK) \
98      && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
99# include <io.h>
100#endif
101
102/* AIX and OSF/1 5.1 declare getdomainname in <netdb.h>, not in <unistd.h>.
103   NonStop Kernel declares gethostname in <netdb.h>, not in <unistd.h>.  */
104/* But avoid namespace pollution on glibc systems.  */
105#if ((0 && (defined _AIX || defined __osf__)) \
106     || (0 && defined __TANDEM)) \
107    && !defined __GLIBC__
108# include <netdb.h>
109#endif
110
111/* MSVC defines off_t in <sys/types.h>.
112   May also define off_t to a 64-bit type on native Windows.  */
113#if !1 || 0
114/* Get off_t.  */
115# include <sys/types.h>
116#endif
117
118#if (0 || 0 \
119     || 0 || 0 \
120     || 0 || 0 || defined GNULIB_POSIXCHECK)
121/* Get ssize_t.  */
122# include <sys/types.h>
123#endif
124
125/* Get getopt(), optarg, optind, opterr, optopt.
126   But avoid namespace pollution on glibc systems.  */
127#if 01 && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT
128# include <getopt.h>
129#endif
130
131_GL_INLINE_HEADER_BEGIN
132#ifndef _GL_UNISTD_INLINE
133# define _GL_UNISTD_INLINE _GL_INLINE
134#endif
135
136/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
137#ifndef _GL_CXXDEFS_H
138#define _GL_CXXDEFS_H
139
140/* The three most frequent use cases of these macros are:
141
142   * For providing a substitute for a function that is missing on some
143     platforms, but is declared and works fine on the platforms on which
144     it exists:
145
146       #if @GNULIB_FOO@
147       # if !@HAVE_FOO@
148       _GL_FUNCDECL_SYS (foo, ...);
149       # endif
150       _GL_CXXALIAS_SYS (foo, ...);
151       _GL_CXXALIASWARN (foo);
152       #elif defined GNULIB_POSIXCHECK
153       ...
154       #endif
155
156   * For providing a replacement for a function that exists on all platforms,
157     but is broken/insufficient and needs to be replaced on some platforms:
158
159       #if @GNULIB_FOO@
160       # if @REPLACE_FOO@
161       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
162       #   undef foo
163       #   define foo rpl_foo
164       #  endif
165       _GL_FUNCDECL_RPL (foo, ...);
166       _GL_CXXALIAS_RPL (foo, ...);
167       # else
168       _GL_CXXALIAS_SYS (foo, ...);
169       # endif
170       _GL_CXXALIASWARN (foo);
171       #elif defined GNULIB_POSIXCHECK
172       ...
173       #endif
174
175   * For providing a replacement for a function that exists on some platforms
176     but is broken/insufficient and needs to be replaced on some of them and
177     is additionally either missing or undeclared on some other platforms:
178
179       #if @GNULIB_FOO@
180       # if @REPLACE_FOO@
181       #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
182       #   undef foo
183       #   define foo rpl_foo
184       #  endif
185       _GL_FUNCDECL_RPL (foo, ...);
186       _GL_CXXALIAS_RPL (foo, ...);
187       # else
188       #  if !@HAVE_FOO@   or   if !@HAVE_DECL_FOO@
189       _GL_FUNCDECL_SYS (foo, ...);
190       #  endif
191       _GL_CXXALIAS_SYS (foo, ...);
192       # endif
193       _GL_CXXALIASWARN (foo);
194       #elif defined GNULIB_POSIXCHECK
195       ...
196       #endif
197*/
198
199/* _GL_EXTERN_C declaration;
200   performs the declaration with C linkage.  */
201#if defined __cplusplus
202# define _GL_EXTERN_C extern "C"
203#else
204# define _GL_EXTERN_C extern
205#endif
206
207/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
208   declares a replacement function, named rpl_func, with the given prototype,
209   consisting of return type, parameters, and attributes.
210   Example:
211     _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
212                                  _GL_ARG_NONNULL ((1)));
213 */
214#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
215  _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
216#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
217  _GL_EXTERN_C rettype rpl_func parameters_and_attributes
218
219/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
220   declares the system function, named func, with the given prototype,
221   consisting of return type, parameters, and attributes.
222   Example:
223     _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
224                                  _GL_ARG_NONNULL ((1)));
225 */
226#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
227  _GL_EXTERN_C rettype func parameters_and_attributes
228
229/* _GL_CXXALIAS_RPL (func, rettype, parameters);
230   declares a C++ alias called GNULIB_NAMESPACE::func
231   that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
232   Example:
233     _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
234 */
235#define _GL_CXXALIAS_RPL(func,rettype,parameters) \
236  _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
237#if defined __cplusplus && defined GNULIB_NAMESPACE
238# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
239    namespace GNULIB_NAMESPACE                                \
240    {                                                         \
241      rettype (*const func) parameters = ::rpl_func;          \
242    }                                                         \
243    _GL_EXTERN_C int _gl_cxxalias_dummy
244#else
245# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
246    _GL_EXTERN_C int _gl_cxxalias_dummy
247#endif
248
249/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
250   is like  _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
251   except that the C function rpl_func may have a slightly different
252   declaration.  A cast is used to silence the "invalid conversion" error
253   that would otherwise occur.  */
254#if defined __cplusplus && defined GNULIB_NAMESPACE
255# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
256    namespace GNULIB_NAMESPACE                                     \
257    {                                                              \
258      rettype (*const func) parameters =                           \
259        reinterpret_cast<rettype(*)parameters>(::rpl_func);        \
260    }                                                              \
261    _GL_EXTERN_C int _gl_cxxalias_dummy
262#else
263# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
264    _GL_EXTERN_C int _gl_cxxalias_dummy
265#endif
266
267/* _GL_CXXALIAS_SYS (func, rettype, parameters);
268   declares a C++ alias called GNULIB_NAMESPACE::func
269   that redirects to the system provided function func, if GNULIB_NAMESPACE
270   is defined.
271   Example:
272     _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
273 */
274#if defined __cplusplus && defined GNULIB_NAMESPACE
275  /* If we were to write
276       rettype (*const func) parameters = ::func;
277     like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls
278     better (remove an indirection through a 'static' pointer variable),
279     but then the _GL_CXXALIASWARN macro below would cause a warning not only
280     for uses of ::func but also for uses of GNULIB_NAMESPACE::func.  */
281# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
282    namespace GNULIB_NAMESPACE                     \
283    {                                              \
284      static rettype (*func) parameters = ::func;  \
285    }                                              \
286    _GL_EXTERN_C int _gl_cxxalias_dummy
287#else
288# define _GL_CXXALIAS_SYS(func,rettype,parameters) \
289    _GL_EXTERN_C int _gl_cxxalias_dummy
290#endif
291
292/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
293   is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
294   except that the C function func may have a slightly different declaration.
295   A cast is used to silence the "invalid conversion" error that would
296   otherwise occur.  */
297#if defined __cplusplus && defined GNULIB_NAMESPACE
298# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
299    namespace GNULIB_NAMESPACE                          \
300    {                                                   \
301      static rettype (*func) parameters =               \
302        reinterpret_cast<rettype(*)parameters>(::func); \
303    }                                                   \
304    _GL_EXTERN_C int _gl_cxxalias_dummy
305#else
306# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
307    _GL_EXTERN_C int _gl_cxxalias_dummy
308#endif
309
310/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
311   is like  _GL_CXXALIAS_SYS (func, rettype, parameters);
312   except that the C function is picked among a set of overloaded functions,
313   namely the one with rettype2 and parameters2.  Two consecutive casts
314   are used to silence the "cannot find a match" and "invalid conversion"
315   errors that would otherwise occur.  */
316#if defined __cplusplus && defined GNULIB_NAMESPACE
317  /* The outer cast must be a reinterpret_cast.
318     The inner cast: When the function is defined as a set of overloaded
319     functions, it works as a static_cast<>, choosing the designated variant.
320     When the function is defined as a single variant, it works as a
321     reinterpret_cast<>. The parenthesized cast syntax works both ways.  */
322# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
323    namespace GNULIB_NAMESPACE                                                \
324    {                                                                         \
325      static rettype (*func) parameters =                                     \
326        reinterpret_cast<rettype(*)parameters>(                               \
327          (rettype2(*)parameters2)(::func));                                  \
328    }                                                                         \
329    _GL_EXTERN_C int _gl_cxxalias_dummy
330#else
331# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
332    _GL_EXTERN_C int _gl_cxxalias_dummy
333#endif
334
335/* _GL_CXXALIASWARN (func);
336   causes a warning to be emitted when ::func is used but not when
337   GNULIB_NAMESPACE::func is used.  func must be defined without overloaded
338   variants.  */
339#if defined __cplusplus && defined GNULIB_NAMESPACE
340# define _GL_CXXALIASWARN(func) \
341   _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
342# define _GL_CXXALIASWARN_1(func,namespace) \
343   _GL_CXXALIASWARN_2 (func, namespace)
344/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
345   we enable the warning only when not optimizing.  */
346# if !__OPTIMIZE__
347#  define _GL_CXXALIASWARN_2(func,namespace) \
348    _GL_WARN_ON_USE (func, \
349                     "The symbol ::" #func " refers to the system function. " \
350                     "Use " #namespace "::" #func " instead.")
351# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
352#  define _GL_CXXALIASWARN_2(func,namespace) \
353     extern __typeof__ (func) func
354# else
355#  define _GL_CXXALIASWARN_2(func,namespace) \
356     _GL_EXTERN_C int _gl_cxxalias_dummy
357# endif
358#else
359# define _GL_CXXALIASWARN(func) \
360    _GL_EXTERN_C int _gl_cxxalias_dummy
361#endif
362
363/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
364   causes a warning to be emitted when the given overloaded variant of ::func
365   is used but not when GNULIB_NAMESPACE::func is used.  */
366#if defined __cplusplus && defined GNULIB_NAMESPACE
367# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
368   _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
369                        GNULIB_NAMESPACE)
370# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
371   _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
372/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
373   we enable the warning only when not optimizing.  */
374# if !__OPTIMIZE__
375#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
376    _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
377                         "The symbol ::" #func " refers to the system function. " \
378                         "Use " #namespace "::" #func " instead.")
379# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
380#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
381     extern __typeof__ (func) func
382# else
383#  define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
384     _GL_EXTERN_C int _gl_cxxalias_dummy
385# endif
386#else
387# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
388    _GL_EXTERN_C int _gl_cxxalias_dummy
389#endif
390
391#endif /* _GL_CXXDEFS_H */
392
393/* The definition of _GL_ARG_NONNULL is copied here.  */
394/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
395   that the values passed as arguments n, ..., m must be non-NULL pointers.
396   n = 1 stands for the first argument, n = 2 for the second argument etc.  */
397#ifndef _GL_ARG_NONNULL
398# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
399#  define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
400# else
401#  define _GL_ARG_NONNULL(params)
402# endif
403#endif
404
405/* The definition of _GL_WARN_ON_USE is copied here.  */
406#ifndef _GL_WARN_ON_USE
407
408# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
409/* A compiler attribute is available in gcc versions 4.3.0 and later.  */
410#  define _GL_WARN_ON_USE(function, message) \
411extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
412# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
413/* Verify the existence of the function.  */
414#  define _GL_WARN_ON_USE(function, message) \
415extern __typeof__ (function) function
416# else /* Unsupported.  */
417#  define _GL_WARN_ON_USE(function, message) \
418_GL_WARN_EXTERN_C int _gl_warn_on_use
419# endif
420#endif
421
422/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
423   is like _GL_WARN_ON_USE (function, "string"), except that the function is
424   declared with the given prototype, consisting of return type, parameters,
425   and attributes.
426   This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
427   not work in this case.  */
428#ifndef _GL_WARN_ON_USE_CXX
429# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
430#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
431extern rettype function parameters_and_attributes \
432     __attribute__ ((__warning__ (msg)))
433# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
434/* Verify the existence of the function.  */
435#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
436extern rettype function parameters_and_attributes
437# else /* Unsupported.  */
438#  define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
439_GL_WARN_EXTERN_C int _gl_warn_on_use
440# endif
441#endif
442
443/* _GL_WARN_EXTERN_C declaration;
444   performs the declaration with C linkage.  */
445#ifndef _GL_WARN_EXTERN_C
446# if defined __cplusplus
447#  define _GL_WARN_EXTERN_C extern "C"
448# else
449#  define _GL_WARN_EXTERN_C extern
450# endif
451#endif
452
453
454/* Hide some function declarations from <winsock2.h>.  */
455
456#if 0 && 0
457# if !defined _GL_SYS_SOCKET_H
458#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
459#   undef socket
460#   define socket              socket_used_without_including_sys_socket_h
461#   undef connect
462#   define connect             connect_used_without_including_sys_socket_h
463#   undef accept
464#   define accept              accept_used_without_including_sys_socket_h
465#   undef bind
466#   define bind                bind_used_without_including_sys_socket_h
467#   undef getpeername
468#   define getpeername         getpeername_used_without_including_sys_socket_h
469#   undef getsockname
470#   define getsockname         getsockname_used_without_including_sys_socket_h
471#   undef getsockopt
472#   define getsockopt          getsockopt_used_without_including_sys_socket_h
473#   undef listen
474#   define listen              listen_used_without_including_sys_socket_h
475#   undef recv
476#   define recv                recv_used_without_including_sys_socket_h
477#   undef send
478#   define send                send_used_without_including_sys_socket_h
479#   undef recvfrom
480#   define recvfrom            recvfrom_used_without_including_sys_socket_h
481#   undef sendto
482#   define sendto              sendto_used_without_including_sys_socket_h
483#   undef setsockopt
484#   define setsockopt          setsockopt_used_without_including_sys_socket_h
485#   undef shutdown
486#   define shutdown            shutdown_used_without_including_sys_socket_h
487#  else
488    _GL_WARN_ON_USE (socket,
489                     "socket() used without including <sys/socket.h>");
490    _GL_WARN_ON_USE (connect,
491                     "connect() used without including <sys/socket.h>");
492    _GL_WARN_ON_USE (accept,
493                     "accept() used without including <sys/socket.h>");
494    _GL_WARN_ON_USE (bind,
495                     "bind() used without including <sys/socket.h>");
496    _GL_WARN_ON_USE (getpeername,
497                     "getpeername() used without including <sys/socket.h>");
498    _GL_WARN_ON_USE (getsockname,
499                     "getsockname() used without including <sys/socket.h>");
500    _GL_WARN_ON_USE (getsockopt,
501                     "getsockopt() used without including <sys/socket.h>");
502    _GL_WARN_ON_USE (listen,
503                     "listen() used without including <sys/socket.h>");
504    _GL_WARN_ON_USE (recv,
505                     "recv() used without including <sys/socket.h>");
506    _GL_WARN_ON_USE (send,
507                     "send() used without including <sys/socket.h>");
508    _GL_WARN_ON_USE (recvfrom,
509                     "recvfrom() used without including <sys/socket.h>");
510    _GL_WARN_ON_USE (sendto,
511                     "sendto() used without including <sys/socket.h>");
512    _GL_WARN_ON_USE (setsockopt,
513                     "setsockopt() used without including <sys/socket.h>");
514    _GL_WARN_ON_USE (shutdown,
515                     "shutdown() used without including <sys/socket.h>");
516#  endif
517# endif
518# if !defined _GL_SYS_SELECT_H
519#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
520#   undef select
521#   define select              select_used_without_including_sys_select_h
522#  else
523    _GL_WARN_ON_USE (select,
524                     "select() used without including <sys/select.h>");
525#  endif
526# endif
527#endif
528
529
530/* OS/2 EMX lacks these macros.  */
531#ifndef STDIN_FILENO
532# define STDIN_FILENO 0
533#endif
534#ifndef STDOUT_FILENO
535# define STDOUT_FILENO 1
536#endif
537#ifndef STDERR_FILENO
538# define STDERR_FILENO 2
539#endif
540
541/* Ensure *_OK macros exist.  */
542#ifndef F_OK
543# define F_OK 0
544# define X_OK 1
545# define W_OK 2
546# define R_OK 4
547#endif
548
549
550/* Declare overridden functions.  */
551
552
553#if defined GNULIB_POSIXCHECK
554/* The access() function is a security risk.  */
555_GL_WARN_ON_USE (access, "the access function is a security risk - "
556                 "use the gnulib module faccessat instead");
557#endif
558
559
560#if 0
561_GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1)));
562_GL_CXXALIASWARN (chdir);
563#elif defined GNULIB_POSIXCHECK
564# undef chdir
565# if HAVE_RAW_DECL_CHDIR
566_GL_WARN_ON_USE (chown, "chdir is not always in <unistd.h> - "
567                 "use gnulib module chdir for portability");
568# endif
569#endif
570
571
572#if 0
573/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
574   to GID (if GID is not -1).  Follow symbolic links.
575   Return 0 if successful, otherwise -1 and errno set.
576   See the POSIX:2008 specification
577   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/chown.html.  */
578# if 0
579#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
580#   undef chown
581#   define chown rpl_chown
582#  endif
583_GL_FUNCDECL_RPL (chown, int, (const char *file, uid_t uid, gid_t gid)
584                              _GL_ARG_NONNULL ((1)));
585_GL_CXXALIAS_RPL (chown, int, (const char *file, uid_t uid, gid_t gid));
586# else
587#  if !1
588_GL_FUNCDECL_SYS (chown, int, (const char *file, uid_t uid, gid_t gid)
589                              _GL_ARG_NONNULL ((1)));
590#  endif
591_GL_CXXALIAS_SYS (chown, int, (const char *file, uid_t uid, gid_t gid));
592# endif
593_GL_CXXALIASWARN (chown);
594#elif defined GNULIB_POSIXCHECK
595# undef chown
596# if HAVE_RAW_DECL_CHOWN
597_GL_WARN_ON_USE (chown, "chown fails to follow symlinks on some systems and "
598                 "doesn't treat a uid or gid of -1 on some systems - "
599                 "use gnulib module chown for portability");
600# endif
601#endif
602
603
604#if 1
605# if 0
606/* Automatically included by modules that need a replacement for close.  */
607#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
608#   undef close
609#   define close rpl_close
610#  endif
611_GL_FUNCDECL_RPL (close, int, (int fd));
612_GL_CXXALIAS_RPL (close, int, (int fd));
613# else
614_GL_CXXALIAS_SYS (close, int, (int fd));
615# endif
616_GL_CXXALIASWARN (close);
617#elif 0
618# undef close
619# define close close_used_without_requesting_gnulib_module_close
620#elif defined GNULIB_POSIXCHECK
621# undef close
622/* Assume close is always declared.  */
623_GL_WARN_ON_USE (close, "close does not portably work on sockets - "
624                 "use gnulib module close for portability");
625#endif
626
627
628#if 0
629# if 0
630#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
631#   define dup rpl_dup
632#  endif
633_GL_FUNCDECL_RPL (dup, int, (int oldfd));
634_GL_CXXALIAS_RPL (dup, int, (int oldfd));
635# else
636_GL_CXXALIAS_SYS (dup, int, (int oldfd));
637# endif
638_GL_CXXALIASWARN (dup);
639#elif defined GNULIB_POSIXCHECK
640# undef dup
641# if HAVE_RAW_DECL_DUP
642_GL_WARN_ON_USE (dup, "dup is unportable - "
643                 "use gnulib module dup for portability");
644# endif
645#endif
646
647
648#if 1
649/* Copy the file descriptor OLDFD into file descriptor NEWFD.  Do nothing if
650   NEWFD = OLDFD, otherwise close NEWFD first if it is open.
651   Return newfd if successful, otherwise -1 and errno set.
652   See the POSIX:2008 specification
653   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/dup2.html>.  */
654# if 0
655#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
656#   define dup2 rpl_dup2
657#  endif
658_GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd));
659_GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd));
660# else
661#  if !1
662_GL_FUNCDECL_SYS (dup2, int, (int oldfd, int newfd));
663#  endif
664_GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd));
665# endif
666_GL_CXXALIASWARN (dup2);
667#elif defined GNULIB_POSIXCHECK
668# undef dup2
669# if HAVE_RAW_DECL_DUP2
670_GL_WARN_ON_USE (dup2, "dup2 is unportable - "
671                 "use gnulib module dup2 for portability");
672# endif
673#endif
674
675
676#if 0
677/* Copy the file descriptor OLDFD into file descriptor NEWFD, with the
678   specified flags.
679   The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
680   and O_TEXT, O_BINARY (defined in "binary-io.h").
681   Close NEWFD first if it is open.
682   Return newfd if successful, otherwise -1 and errno set.
683   See the Linux man page at
684   <http://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>.  */
685# if 1
686#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
687#   define dup3 rpl_dup3
688#  endif
689_GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags));
690_GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags));
691# else
692_GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags));
693_GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags));
694# endif
695_GL_CXXALIASWARN (dup3);
696#elif defined GNULIB_POSIXCHECK
697# undef dup3
698# if HAVE_RAW_DECL_DUP3
699_GL_WARN_ON_USE (dup3, "dup3 is unportable - "
700                 "use gnulib module dup3 for portability");
701# endif
702#endif
703
704
705#if 1
706# if !0
707/* Set of environment variables and values.  An array of strings of the form
708   "VARIABLE=VALUE", terminated with a NULL.  */
709#  if defined __APPLE__ && defined __MACH__
710#   include <crt_externs.h>
711#   define environ (*_NSGetEnviron ())
712#  else
713#   ifdef __cplusplus
714extern "C" {
715#   endif
716extern char **environ;
717#   ifdef __cplusplus
718}
719#   endif
720#  endif
721# endif
722#elif defined GNULIB_POSIXCHECK
723# if HAVE_RAW_DECL_ENVIRON
724_GL_UNISTD_INLINE char ***
725rpl_environ (void)
726{
727  return &environ;
728}
729_GL_WARN_ON_USE (rpl_environ, "environ is unportable - "
730                 "use gnulib module environ for portability");
731#  undef environ
732#  define environ (*rpl_environ ())
733# endif
734#endif
735
736
737#if 0
738/* Like access(), except that it uses the effective user id and group id of
739   the current process.  */
740# if !1
741_GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode)
742                                   _GL_ARG_NONNULL ((1)));
743# endif
744_GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode));
745_GL_CXXALIASWARN (euidaccess);
746# if defined GNULIB_POSIXCHECK
747/* Like access(), this function is a security risk.  */
748_GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - "
749                 "use the gnulib module faccessat instead");
750# endif
751#elif defined GNULIB_POSIXCHECK
752# undef euidaccess
753# if HAVE_RAW_DECL_EUIDACCESS
754_GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - "
755                 "use gnulib module euidaccess for portability");
756# endif
757#endif
758
759
760#if 0
761# if !1
762_GL_FUNCDECL_SYS (faccessat, int,
763                  (int fd, char const *file, int mode, int flag)
764                  _GL_ARG_NONNULL ((2)));
765# endif
766_GL_CXXALIAS_SYS (faccessat, int,
767                  (int fd, char const *file, int mode, int flag));
768_GL_CXXALIASWARN (faccessat);
769#elif defined GNULIB_POSIXCHECK
770# undef faccessat
771# if HAVE_RAW_DECL_FACCESSAT
772_GL_WARN_ON_USE (faccessat, "faccessat is not portable - "
773                 "use gnulib module faccessat for portability");
774# endif
775#endif
776
777
778#if 0
779/* Change the process' current working directory to the directory on which
780   the given file descriptor is open.
781   Return 0 if successful, otherwise -1 and errno set.
782   See the POSIX:2008 specification
783   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fchdir.html>.  */
784# if ! 1
785_GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
786
787/* Gnulib internal hooks needed to maintain the fchdir metadata.  */
788_GL_EXTERN_C int _gl_register_fd (int fd, const char *filename)
789     _GL_ARG_NONNULL ((2));
790_GL_EXTERN_C void _gl_unregister_fd (int fd);
791_GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd);
792_GL_EXTERN_C const char *_gl_directory_name (int fd);
793
794# else
795#  if !1
796_GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
797#  endif
798# endif
799_GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/));
800_GL_CXXALIASWARN (fchdir);
801#elif defined GNULIB_POSIXCHECK
802# undef fchdir
803# if HAVE_RAW_DECL_FCHDIR
804_GL_WARN_ON_USE (fchdir, "fchdir is unportable - "
805                 "use gnulib module fchdir for portability");
806# endif
807#endif
808
809
810#if 0
811# if 0
812#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
813#   undef fchownat
814#   define fchownat rpl_fchownat
815#  endif
816_GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file,
817                                  uid_t owner, gid_t group, int flag)
818                                 _GL_ARG_NONNULL ((2)));
819_GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file,
820                                  uid_t owner, gid_t group, int flag));
821# else
822#  if !1
823_GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file,
824                                  uid_t owner, gid_t group, int flag)
825                                 _GL_ARG_NONNULL ((2)));
826#  endif
827_GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file,
828                                  uid_t owner, gid_t group, int flag));
829# endif
830_GL_CXXALIASWARN (fchownat);
831#elif defined GNULIB_POSIXCHECK
832# undef fchownat
833# if HAVE_RAW_DECL_FCHOWNAT
834_GL_WARN_ON_USE (fchownat, "fchownat is not portable - "
835                 "use gnulib module openat for portability");
836# endif
837#endif
838
839
840#if 0
841/* Synchronize changes to a file.
842   Return 0 if successful, otherwise -1 and errno set.
843   See POSIX:2008 specification
844   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>.  */
845# if !1 || !1
846_GL_FUNCDECL_SYS (fdatasync, int, (int fd));
847# endif
848_GL_CXXALIAS_SYS (fdatasync, int, (int fd));
849_GL_CXXALIASWARN (fdatasync);
850#elif defined GNULIB_POSIXCHECK
851# undef fdatasync
852# if HAVE_RAW_DECL_FDATASYNC
853_GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - "
854                 "use gnulib module fdatasync for portability");
855# endif
856#endif
857
858
859#if 0
860/* Synchronize changes, including metadata, to a file.
861   Return 0 if successful, otherwise -1 and errno set.
862   See POSIX:2008 specification
863   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html>.  */
864# if !1
865_GL_FUNCDECL_SYS (fsync, int, (int fd));
866# endif
867_GL_CXXALIAS_SYS (fsync, int, (int fd));
868_GL_CXXALIASWARN (fsync);
869#elif defined GNULIB_POSIXCHECK
870# undef fsync
871# if HAVE_RAW_DECL_FSYNC
872_GL_WARN_ON_USE (fsync, "fsync is unportable - "
873                 "use gnulib module fsync for portability");
874# endif
875#endif
876
877
878#if 0
879/* Change the size of the file to which FD is opened to become equal to LENGTH.
880   Return 0 if successful, otherwise -1 and errno set.
881   See the POSIX:2008 specification
882   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/ftruncate.html>.  */
883# if 0
884#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
885#   undef ftruncate
886#   define ftruncate rpl_ftruncate
887#  endif
888_GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length));
889_GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length));
890# else
891#  if !1
892_GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length));
893#  endif
894_GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length));
895# endif
896_GL_CXXALIASWARN (ftruncate);
897#elif defined GNULIB_POSIXCHECK
898# undef ftruncate
899# if HAVE_RAW_DECL_FTRUNCATE
900_GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - "
901                 "use gnulib module ftruncate for portability");
902# endif
903#endif
904
905
906#if 0
907/* Get the name of the current working directory, and put it in SIZE bytes
908   of BUF.
909   Return BUF if successful, or NULL if the directory couldn't be determined
910   or SIZE was too small.
911   See the POSIX:2008 specification
912   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html>.
913   Additionally, the gnulib module 'getcwd' guarantees the following GNU
914   extension: If BUF is NULL, an array is allocated with 'malloc'; the array
915   is SIZE bytes long, unless SIZE == 0, in which case it is as big as
916   necessary.  */
917# if 0
918#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
919#   define getcwd rpl_getcwd
920#  endif
921_GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size));
922_GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size));
923# else
924/* Need to cast, because on mingw, the second parameter is
925                                                   int size.  */
926_GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size));
927# endif
928_GL_CXXALIASWARN (getcwd);
929#elif defined GNULIB_POSIXCHECK
930# undef getcwd
931# if HAVE_RAW_DECL_GETCWD
932_GL_WARN_ON_USE (getcwd, "getcwd is unportable - "
933                 "use gnulib module getcwd for portability");
934# endif
935#endif
936
937
938#if 0
939/* Return the NIS domain name of the machine.
940   WARNING! The NIS domain name is unrelated to the fully qualified host name
941            of the machine.  It is also unrelated to email addresses.
942   WARNING! The NIS domain name is usually the empty string or "(none)" when
943            not using NIS.
944
945   Put up to LEN bytes of the NIS domain name into NAME.
946   Null terminate it if the name is shorter than LEN.
947   If the NIS domain name is longer than LEN, set errno = EINVAL and return -1.
948   Return 0 if successful, otherwise set errno and return -1.  */
949# if 0
950#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
951#   undef getdomainname
952#   define getdomainname rpl_getdomainname
953#  endif
954_GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len)
955                                      _GL_ARG_NONNULL ((1)));
956_GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len));
957# else
958#  if !1
959_GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len)
960                                      _GL_ARG_NONNULL ((1)));
961#  endif
962_GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len));
963# endif
964_GL_CXXALIASWARN (getdomainname);
965#elif defined GNULIB_POSIXCHECK
966# undef getdomainname
967# if HAVE_RAW_DECL_GETDOMAINNAME
968_GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - "
969                 "use gnulib module getdomainname for portability");
970# endif
971#endif
972
973
974#if 1
975/* Return the maximum number of file descriptors in the current process.
976   In POSIX, this is same as sysconf (_SC_OPEN_MAX).  */
977# if !1
978_GL_FUNCDECL_SYS (getdtablesize, int, (void));
979# endif
980_GL_CXXALIAS_SYS (getdtablesize, int, (void));
981_GL_CXXALIASWARN (getdtablesize);
982#elif defined GNULIB_POSIXCHECK
983# undef getdtablesize
984# if HAVE_RAW_DECL_GETDTABLESIZE
985_GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - "
986                 "use gnulib module getdtablesize for portability");
987# endif
988#endif
989
990
991#if 0
992/* Return the supplemental groups that the current process belongs to.
993   It is unspecified whether the effective group id is in the list.
994   If N is 0, return the group count; otherwise, N describes how many
995   entries are available in GROUPS.  Return -1 and set errno if N is
996   not 0 and not large enough.  Fails with ENOSYS on some systems.  */
997# if 0
998#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
999#   undef getgroups
1000#   define getgroups rpl_getgroups
1001#  endif
1002_GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups));
1003_GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups));
1004# else
1005#  if !1
1006_GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups));
1007#  endif
1008_GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups));
1009# endif
1010_GL_CXXALIASWARN (getgroups);
1011#elif defined GNULIB_POSIXCHECK
1012# undef getgroups
1013# if HAVE_RAW_DECL_GETGROUPS
1014_GL_WARN_ON_USE (getgroups, "getgroups is unportable - "
1015                 "use gnulib module getgroups for portability");
1016# endif
1017#endif
1018
1019
1020#if 0
1021/* Return the standard host name of the machine.
1022   WARNING! The host name may or may not be fully qualified.
1023
1024   Put up to LEN bytes of the host name into NAME.
1025   Null terminate it if the name is shorter than LEN.
1026   If the host name is longer than LEN, set errno = EINVAL and return -1.
1027   Return 0 if successful, otherwise set errno and return -1.  */
1028# if 0
1029#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1030#   undef gethostname
1031#   define gethostname rpl_gethostname
1032#  endif
1033_GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len)
1034                                    _GL_ARG_NONNULL ((1)));
1035_GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len));
1036# else
1037#  if !1
1038_GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len)
1039                                    _GL_ARG_NONNULL ((1)));
1040#  endif
1041/* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second
1042   parameter is
1043                                                      int len.  */
1044_GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len));
1045# endif
1046_GL_CXXALIASWARN (gethostname);
1047#elif 0
1048# undef gethostname
1049# define gethostname gethostname_used_without_requesting_gnulib_module_gethostname
1050#elif defined GNULIB_POSIXCHECK
1051# undef gethostname
1052# if HAVE_RAW_DECL_GETHOSTNAME
1053_GL_WARN_ON_USE (gethostname, "gethostname is unportable - "
1054                 "use gnulib module gethostname for portability");
1055# endif
1056#endif
1057
1058
1059#if 0
1060/* Returns the user's login name, or NULL if it cannot be found.  Upon error,
1061   returns NULL with errno set.
1062
1063   See <http://www.opengroup.org/susv3xsh/getlogin.html>.
1064
1065   Most programs don't need to use this function, because the information is
1066   available through environment variables:
1067     ${LOGNAME-$USER}        on Unix platforms,
1068     $USERNAME               on native Windows platforms.
1069 */
1070# if !1
1071_GL_FUNCDECL_SYS (getlogin, char *, (void));
1072# endif
1073_GL_CXXALIAS_SYS (getlogin, char *, (void));
1074_GL_CXXALIASWARN (getlogin);
1075#elif defined GNULIB_POSIXCHECK
1076# undef getlogin
1077# if HAVE_RAW_DECL_GETLOGIN
1078_GL_WARN_ON_USE (getlogin, "getlogin is unportable - "
1079                 "use gnulib module getlogin for portability");
1080# endif
1081#endif
1082
1083
1084#if 0
1085/* Copies the user's login name to NAME.
1086   The array pointed to by NAME has room for SIZE bytes.
1087
1088   Returns 0 if successful.  Upon error, an error number is returned, or -1 in
1089   the case that the login name cannot be found but no specific error is
1090   provided (this case is hopefully rare but is left open by the POSIX spec).
1091
1092   See <http://www.opengroup.org/susv3xsh/getlogin.html>.
1093
1094   Most programs don't need to use this function, because the information is
1095   available through environment variables:
1096     ${LOGNAME-$USER}        on Unix platforms,
1097     $USERNAME               on native Windows platforms.
1098 */
1099# if 0
1100#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1101#   define getlogin_r rpl_getlogin_r
1102#  endif
1103_GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size)
1104                                   _GL_ARG_NONNULL ((1)));
1105_GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size));
1106# else
1107#  if !1
1108_GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size)
1109                                   _GL_ARG_NONNULL ((1)));
1110#  endif
1111/* Need to cast, because on Solaris 10 systems, the second argument is
1112                                                     int size.  */
1113_GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size));
1114# endif
1115_GL_CXXALIASWARN (getlogin_r);
1116#elif defined GNULIB_POSIXCHECK
1117# undef getlogin_r
1118# if HAVE_RAW_DECL_GETLOGIN_R
1119_GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - "
1120                 "use gnulib module getlogin_r for portability");
1121# endif
1122#endif
1123
1124
1125#if 0
1126# if 0
1127#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1128#   define getpagesize rpl_getpagesize
1129#  endif
1130_GL_FUNCDECL_RPL (getpagesize, int, (void));
1131_GL_CXXALIAS_RPL (getpagesize, int, (void));
1132# else
1133#  if !1
1134#   if !defined getpagesize
1135/* This is for POSIX systems.  */
1136#    if !defined _gl_getpagesize && defined _SC_PAGESIZE
1137#     if ! (defined __VMS && __VMS_VER < 70000000)
1138#      define _gl_getpagesize() sysconf (_SC_PAGESIZE)
1139#     endif
1140#    endif
1141/* This is for older VMS.  */
1142#    if !defined _gl_getpagesize && defined __VMS
1143#     ifdef __ALPHA
1144#      define _gl_getpagesize() 8192
1145#     else
1146#      define _gl_getpagesize() 512
1147#     endif
1148#    endif
1149/* This is for BeOS.  */
1150#    if !defined _gl_getpagesize && 0
1151#     include <OS.h>
1152#     if defined B_PAGE_SIZE
1153#      define _gl_getpagesize() B_PAGE_SIZE
1154#     endif
1155#    endif
1156/* This is for AmigaOS4.0.  */
1157#    if !defined _gl_getpagesize && defined __amigaos4__
1158#     define _gl_getpagesize() 2048
1159#    endif
1160/* This is for older Unix systems.  */
1161#    if !defined _gl_getpagesize && 0
1162#     include <sys/param.h>
1163#     ifdef EXEC_PAGESIZE
1164#      define _gl_getpagesize() EXEC_PAGESIZE
1165#     else
1166#      ifdef NBPG
1167#       ifndef CLSIZE
1168#        define CLSIZE 1
1169#       endif
1170#       define _gl_getpagesize() (NBPG * CLSIZE)
1171#      else
1172#       ifdef NBPC
1173#        define _gl_getpagesize() NBPC
1174#       endif
1175#      endif
1176#     endif
1177#    endif
1178#    if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1179#     define getpagesize() _gl_getpagesize ()
1180#    else
1181#     if !GNULIB_defined_getpagesize_function
1182_GL_UNISTD_INLINE int
1183getpagesize ()
1184{
1185  return _gl_getpagesize ();
1186}
1187#      define GNULIB_defined_getpagesize_function 1
1188#     endif
1189#    endif
1190#   endif
1191#  endif
1192/* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t.  */
1193_GL_CXXALIAS_SYS_CAST (getpagesize, int, (void));
1194# endif
1195# if 1
1196_GL_CXXALIASWARN (getpagesize);
1197# endif
1198#elif defined GNULIB_POSIXCHECK
1199# undef getpagesize
1200# if HAVE_RAW_DECL_GETPAGESIZE
1201_GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - "
1202                 "use gnulib module getpagesize for portability");
1203# endif
1204#endif
1205
1206
1207#if 0
1208/* Return the next valid login shell on the system, or NULL when the end of
1209   the list has been reached.  */
1210# if !1
1211_GL_FUNCDECL_SYS (getusershell, char *, (void));
1212# endif
1213_GL_CXXALIAS_SYS (getusershell, char *, (void));
1214_GL_CXXALIASWARN (getusershell);
1215#elif defined GNULIB_POSIXCHECK
1216# undef getusershell
1217# if HAVE_RAW_DECL_GETUSERSHELL
1218_GL_WARN_ON_USE (getusershell, "getusershell is unportable - "
1219                 "use gnulib module getusershell for portability");
1220# endif
1221#endif
1222
1223#if 0
1224/* Rewind to pointer that is advanced at each getusershell() call.  */
1225# if !1
1226_GL_FUNCDECL_SYS (setusershell, void, (void));
1227# endif
1228_GL_CXXALIAS_SYS (setusershell, void, (void));
1229_GL_CXXALIASWARN (setusershell);
1230#elif defined GNULIB_POSIXCHECK
1231# undef setusershell
1232# if HAVE_RAW_DECL_SETUSERSHELL
1233_GL_WARN_ON_USE (setusershell, "setusershell is unportable - "
1234                 "use gnulib module getusershell for portability");
1235# endif
1236#endif
1237
1238#if 0
1239/* Free the pointer that is advanced at each getusershell() call and
1240   associated resources.  */
1241# if !1
1242_GL_FUNCDECL_SYS (endusershell, void, (void));
1243# endif
1244_GL_CXXALIAS_SYS (endusershell, void, (void));
1245_GL_CXXALIASWARN (endusershell);
1246#elif defined GNULIB_POSIXCHECK
1247# undef endusershell
1248# if HAVE_RAW_DECL_ENDUSERSHELL
1249_GL_WARN_ON_USE (endusershell, "endusershell is unportable - "
1250                 "use gnulib module getusershell for portability");
1251# endif
1252#endif
1253
1254
1255#if 0
1256/* Determine whether group id is in calling user's group list.  */
1257# if !1
1258_GL_FUNCDECL_SYS (group_member, int, (gid_t gid));
1259# endif
1260_GL_CXXALIAS_SYS (group_member, int, (gid_t gid));
1261_GL_CXXALIASWARN (group_member);
1262#elif defined GNULIB_POSIXCHECK
1263# undef group_member
1264# if HAVE_RAW_DECL_GROUP_MEMBER
1265_GL_WARN_ON_USE (group_member, "group_member is unportable - "
1266                 "use gnulib module group-member for portability");
1267# endif
1268#endif
1269
1270
1271#if 0
1272# if 0
1273#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1274#   undef isatty
1275#   define isatty rpl_isatty
1276#  endif
1277_GL_FUNCDECL_RPL (isatty, int, (int fd));
1278_GL_CXXALIAS_RPL (isatty, int, (int fd));
1279# else
1280_GL_CXXALIAS_SYS (isatty, int, (int fd));
1281# endif
1282_GL_CXXALIASWARN (isatty);
1283#elif defined GNULIB_POSIXCHECK
1284# undef isatty
1285# if HAVE_RAW_DECL_ISATTY
1286_GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - "
1287                 "use gnulib module isatty for portability");
1288# endif
1289#endif
1290
1291
1292#if 0
1293/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
1294   to GID (if GID is not -1).  Do not follow symbolic links.
1295   Return 0 if successful, otherwise -1 and errno set.
1296   See the POSIX:2008 specification
1297   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/lchown.html>.  */
1298# if 0
1299#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1300#   undef lchown
1301#   define lchown rpl_lchown
1302#  endif
1303_GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)
1304                               _GL_ARG_NONNULL ((1)));
1305_GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group));
1306# else
1307#  if !1
1308_GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)
1309                               _GL_ARG_NONNULL ((1)));
1310#  endif
1311_GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group));
1312# endif
1313_GL_CXXALIASWARN (lchown);
1314#elif defined GNULIB_POSIXCHECK
1315# undef lchown
1316# if HAVE_RAW_DECL_LCHOWN
1317_GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - "
1318                 "use gnulib module lchown for portability");
1319# endif
1320#endif
1321
1322
1323#if 0
1324/* Create a new hard link for an existing file.
1325   Return 0 if successful, otherwise -1 and errno set.
1326   See POSIX:2008 specification
1327   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html>.  */
1328# if 0
1329#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1330#   define link rpl_link
1331#  endif
1332_GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2)
1333                             _GL_ARG_NONNULL ((1, 2)));
1334_GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2));
1335# else
1336#  if !1
1337_GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2)
1338                             _GL_ARG_NONNULL ((1, 2)));
1339#  endif
1340_GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2));
1341# endif
1342_GL_CXXALIASWARN (link);
1343#elif defined GNULIB_POSIXCHECK
1344# undef link
1345# if HAVE_RAW_DECL_LINK
1346_GL_WARN_ON_USE (link, "link is unportable - "
1347                 "use gnulib module link for portability");
1348# endif
1349#endif
1350
1351
1352#if 0
1353/* Create a new hard link for an existing file, relative to two
1354   directories.  FLAG controls whether symlinks are followed.
1355   Return 0 if successful, otherwise -1 and errno set.  */
1356# if 0
1357#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1358#   undef linkat
1359#   define linkat rpl_linkat
1360#  endif
1361_GL_FUNCDECL_RPL (linkat, int,
1362                  (int fd1, const char *path1, int fd2, const char *path2,
1363                   int flag)
1364                  _GL_ARG_NONNULL ((2, 4)));
1365_GL_CXXALIAS_RPL (linkat, int,
1366                  (int fd1, const char *path1, int fd2, const char *path2,
1367                   int flag));
1368# else
1369#  if !1
1370_GL_FUNCDECL_SYS (linkat, int,
1371                  (int fd1, const char *path1, int fd2, const char *path2,
1372                   int flag)
1373                  _GL_ARG_NONNULL ((2, 4)));
1374#  endif
1375_GL_CXXALIAS_SYS (linkat, int,
1376                  (int fd1, const char *path1, int fd2, const char *path2,
1377                   int flag));
1378# endif
1379_GL_CXXALIASWARN (linkat);
1380#elif defined GNULIB_POSIXCHECK
1381# undef linkat
1382# if HAVE_RAW_DECL_LINKAT
1383_GL_WARN_ON_USE (linkat, "linkat is unportable - "
1384                 "use gnulib module linkat for portability");
1385# endif
1386#endif
1387
1388
1389#if 0
1390/* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END.
1391   Return the new offset if successful, otherwise -1 and errno set.
1392   See the POSIX:2008 specification
1393   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/lseek.html>.  */
1394# if 0
1395#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1396#   define lseek rpl_lseek
1397#  endif
1398_GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence));
1399_GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence));
1400# else
1401_GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence));
1402# endif
1403_GL_CXXALIASWARN (lseek);
1404#elif defined GNULIB_POSIXCHECK
1405# undef lseek
1406# if HAVE_RAW_DECL_LSEEK
1407_GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some "
1408                 "systems - use gnulib module lseek for portability");
1409# endif
1410#endif
1411
1412
1413#if 0
1414/* Create a pipe, defaulting to O_BINARY mode.
1415   Store the read-end as fd[0] and the write-end as fd[1].
1416   Return 0 upon success, or -1 with errno set upon failure.  */
1417# if !1
1418_GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1)));
1419# endif
1420_GL_CXXALIAS_SYS (pipe, int, (int fd[2]));
1421_GL_CXXALIASWARN (pipe);
1422#elif defined GNULIB_POSIXCHECK
1423# undef pipe
1424# if HAVE_RAW_DECL_PIPE
1425_GL_WARN_ON_USE (pipe, "pipe is unportable - "
1426                 "use gnulib module pipe-posix for portability");
1427# endif
1428#endif
1429
1430
1431#if 1
1432/* Create a pipe, applying the given flags when opening the read-end of the
1433   pipe and the write-end of the pipe.
1434   The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
1435   and O_TEXT, O_BINARY (defined in "binary-io.h").
1436   Store the read-end as fd[0] and the write-end as fd[1].
1437   Return 0 upon success, or -1 with errno set upon failure.
1438   See also the Linux man page at
1439   <http://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>.  */
1440# if 0
1441#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1442#   define pipe2 rpl_pipe2
1443#  endif
1444_GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1)));
1445_GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags));
1446# else
1447_GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1)));
1448_GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags));
1449# endif
1450_GL_CXXALIASWARN (pipe2);
1451#elif defined GNULIB_POSIXCHECK
1452# undef pipe2
1453# if HAVE_RAW_DECL_PIPE2
1454_GL_WARN_ON_USE (pipe2, "pipe2 is unportable - "
1455                 "use gnulib module pipe2 for portability");
1456# endif
1457#endif
1458
1459
1460#if 0
1461/* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET.
1462   Return the number of bytes placed into BUF if successful, otherwise
1463   set errno and return -1.  0 indicates EOF.
1464   See the POSIX:2008 specification
1465   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pread.html>.  */
1466# if 0
1467#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1468#   undef pread
1469#   define pread rpl_pread
1470#  endif
1471_GL_FUNCDECL_RPL (pread, ssize_t,
1472                  (int fd, void *buf, size_t bufsize, off_t offset)
1473                  _GL_ARG_NONNULL ((2)));
1474_GL_CXXALIAS_RPL (pread, ssize_t,
1475                  (int fd, void *buf, size_t bufsize, off_t offset));
1476# else
1477#  if !1
1478_GL_FUNCDECL_SYS (pread, ssize_t,
1479                  (int fd, void *buf, size_t bufsize, off_t offset)
1480                  _GL_ARG_NONNULL ((2)));
1481#  endif
1482_GL_CXXALIAS_SYS (pread, ssize_t,
1483                  (int fd, void *buf, size_t bufsize, off_t offset));
1484# endif
1485_GL_CXXALIASWARN (pread);
1486#elif defined GNULIB_POSIXCHECK
1487# undef pread
1488# if HAVE_RAW_DECL_PREAD
1489_GL_WARN_ON_USE (pread, "pread is unportable - "
1490                 "use gnulib module pread for portability");
1491# endif
1492#endif
1493
1494
1495#if 0
1496/* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET.
1497   Return the number of bytes written if successful, otherwise
1498   set errno and return -1.  0 indicates nothing written.  See the
1499   POSIX:2008 specification
1500   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pwrite.html>.  */
1501# if 0
1502#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1503#   undef pwrite
1504#   define pwrite rpl_pwrite
1505#  endif
1506_GL_FUNCDECL_RPL (pwrite, ssize_t,
1507                  (int fd, const void *buf, size_t bufsize, off_t offset)
1508                  _GL_ARG_NONNULL ((2)));
1509_GL_CXXALIAS_RPL (pwrite, ssize_t,
1510                  (int fd, const void *buf, size_t bufsize, off_t offset));
1511# else
1512#  if !1
1513_GL_FUNCDECL_SYS (pwrite, ssize_t,
1514                  (int fd, const void *buf, size_t bufsize, off_t offset)
1515                  _GL_ARG_NONNULL ((2)));
1516#  endif
1517_GL_CXXALIAS_SYS (pwrite, ssize_t,
1518                  (int fd, const void *buf, size_t bufsize, off_t offset));
1519# endif
1520_GL_CXXALIASWARN (pwrite);
1521#elif defined GNULIB_POSIXCHECK
1522# undef pwrite
1523# if HAVE_RAW_DECL_PWRITE
1524_GL_WARN_ON_USE (pwrite, "pwrite is unportable - "
1525                 "use gnulib module pwrite for portability");
1526# endif
1527#endif
1528
1529
1530#if 0
1531/* Read up to COUNT bytes from file descriptor FD into the buffer starting
1532   at BUF.  See the POSIX:2008 specification
1533   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html>.  */
1534# if 0
1535#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1536#   undef read
1537#   define read rpl_read
1538#  endif
1539_GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count)
1540                                 _GL_ARG_NONNULL ((2)));
1541_GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count));
1542# else
1543/* Need to cast, because on mingw, the third parameter is
1544                                                          unsigned int count
1545   and the return type is 'int'.  */
1546_GL_CXXALIAS_SYS_CAST (read, ssize_t, (int fd, void *buf, size_t count));
1547# endif
1548_GL_CXXALIASWARN (read);
1549#endif
1550
1551
1552#if 0
1553/* Read the contents of the symbolic link FILE and place the first BUFSIZE
1554   bytes of it into BUF.  Return the number of bytes placed into BUF if
1555   successful, otherwise -1 and errno set.
1556   See the POSIX:2008 specification
1557   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>.  */
1558# if 0
1559#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1560#   define readlink rpl_readlink
1561#  endif
1562_GL_FUNCDECL_RPL (readlink, ssize_t,
1563                  (const char *file, char *buf, size_t bufsize)
1564                  _GL_ARG_NONNULL ((1, 2)));
1565_GL_CXXALIAS_RPL (readlink, ssize_t,
1566                  (const char *file, char *buf, size_t bufsize));
1567# else
1568#  if !1
1569_GL_FUNCDECL_SYS (readlink, ssize_t,
1570                  (const char *file, char *buf, size_t bufsize)
1571                  _GL_ARG_NONNULL ((1, 2)));
1572#  endif
1573_GL_CXXALIAS_SYS (readlink, ssize_t,
1574                  (const char *file, char *buf, size_t bufsize));
1575# endif
1576_GL_CXXALIASWARN (readlink);
1577#elif defined GNULIB_POSIXCHECK
1578# undef readlink
1579# if HAVE_RAW_DECL_READLINK
1580_GL_WARN_ON_USE (readlink, "readlink is unportable - "
1581                 "use gnulib module readlink for portability");
1582# endif
1583#endif
1584
1585
1586#if 0
1587# if !1
1588_GL_FUNCDECL_SYS (readlinkat, ssize_t,
1589                  (int fd, char const *file, char *buf, size_t len)
1590                  _GL_ARG_NONNULL ((2, 3)));
1591# endif
1592_GL_CXXALIAS_SYS (readlinkat, ssize_t,
1593                  (int fd, char const *file, char *buf, size_t len));
1594_GL_CXXALIASWARN (readlinkat);
1595#elif defined GNULIB_POSIXCHECK
1596# undef readlinkat
1597# if HAVE_RAW_DECL_READLINKAT
1598_GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - "
1599                 "use gnulib module readlinkat for portability");
1600# endif
1601#endif
1602
1603
1604#if 0
1605/* Remove the directory DIR.  */
1606# if 0
1607#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1608#   define rmdir rpl_rmdir
1609#  endif
1610_GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1)));
1611_GL_CXXALIAS_RPL (rmdir, int, (char const *name));
1612# else
1613_GL_CXXALIAS_SYS (rmdir, int, (char const *name));
1614# endif
1615_GL_CXXALIASWARN (rmdir);
1616#elif defined GNULIB_POSIXCHECK
1617# undef rmdir
1618# if HAVE_RAW_DECL_RMDIR
1619_GL_WARN_ON_USE (rmdir, "rmdir is unportable - "
1620                 "use gnulib module rmdir for portability");
1621# endif
1622#endif
1623
1624
1625#if 0
1626/* Set the host name of the machine.
1627   The host name may or may not be fully qualified.
1628
1629   Put LEN bytes of NAME into the host name.
1630   Return 0 if successful, otherwise, set errno and return -1.
1631
1632   Platforms with no ability to set the hostname return -1 and set
1633   errno = ENOSYS.  */
1634# if !1 || !1
1635_GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len)
1636                                    _GL_ARG_NONNULL ((1)));
1637# endif
1638/* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5
1639   and FreeBSD 6.4 the second parameter is int.  On Solaris 11
1640   2011-10, the first parameter is not const.  */
1641_GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len));
1642_GL_CXXALIASWARN (sethostname);
1643#elif defined GNULIB_POSIXCHECK
1644# undef sethostname
1645# if HAVE_RAW_DECL_SETHOSTNAME
1646_GL_WARN_ON_USE (sethostname, "sethostname is unportable - "
1647                 "use gnulib module sethostname for portability");
1648# endif
1649#endif
1650
1651
1652#if 0
1653/* Pause the execution of the current thread for N seconds.
1654   Returns the number of seconds left to sleep.
1655   See the POSIX:2008 specification
1656   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/sleep.html>.  */
1657# if 0
1658#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1659#   undef sleep
1660#   define sleep rpl_sleep
1661#  endif
1662_GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n));
1663_GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n));
1664# else
1665#  if !1
1666_GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n));
1667#  endif
1668_GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n));
1669# endif
1670_GL_CXXALIASWARN (sleep);
1671#elif defined GNULIB_POSIXCHECK
1672# undef sleep
1673# if HAVE_RAW_DECL_SLEEP
1674_GL_WARN_ON_USE (sleep, "sleep is unportable - "
1675                 "use gnulib module sleep for portability");
1676# endif
1677#endif
1678
1679
1680#if 0
1681# if 0
1682#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1683#   undef symlink
1684#   define symlink rpl_symlink
1685#  endif
1686_GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file)
1687                                _GL_ARG_NONNULL ((1, 2)));
1688_GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file));
1689# else
1690#  if !1
1691_GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file)
1692                                _GL_ARG_NONNULL ((1, 2)));
1693#  endif
1694_GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file));
1695# endif
1696_GL_CXXALIASWARN (symlink);
1697#elif defined GNULIB_POSIXCHECK
1698# undef symlink
1699# if HAVE_RAW_DECL_SYMLINK
1700_GL_WARN_ON_USE (symlink, "symlink is not portable - "
1701                 "use gnulib module symlink for portability");
1702# endif
1703#endif
1704
1705
1706#if 0
1707# if !1
1708_GL_FUNCDECL_SYS (symlinkat, int,
1709                  (char const *contents, int fd, char const *file)
1710                  _GL_ARG_NONNULL ((1, 3)));
1711# endif
1712_GL_CXXALIAS_SYS (symlinkat, int,
1713                  (char const *contents, int fd, char const *file));
1714_GL_CXXALIASWARN (symlinkat);
1715#elif defined GNULIB_POSIXCHECK
1716# undef symlinkat
1717# if HAVE_RAW_DECL_SYMLINKAT
1718_GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - "
1719                 "use gnulib module symlinkat for portability");
1720# endif
1721#endif
1722
1723
1724#if 0
1725/* Store at most BUFLEN characters of the pathname of the terminal FD is
1726   open on in BUF.  Return 0 on success, otherwise an error number.  */
1727# if 0
1728#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1729#   undef ttyname_r
1730#   define ttyname_r rpl_ttyname_r
1731#  endif
1732_GL_FUNCDECL_RPL (ttyname_r, int,
1733                  (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2)));
1734_GL_CXXALIAS_RPL (ttyname_r, int,
1735                  (int fd, char *buf, size_t buflen));
1736# else
1737#  if !1
1738_GL_FUNCDECL_SYS (ttyname_r, int,
1739                  (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2)));
1740#  endif
1741_GL_CXXALIAS_SYS (ttyname_r, int,
1742                  (int fd, char *buf, size_t buflen));
1743# endif
1744_GL_CXXALIASWARN (ttyname_r);
1745#elif defined GNULIB_POSIXCHECK
1746# undef ttyname_r
1747# if HAVE_RAW_DECL_TTYNAME_R
1748_GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - "
1749                 "use gnulib module ttyname_r for portability");
1750# endif
1751#endif
1752
1753
1754#if 0
1755# if 0
1756#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1757#   undef unlink
1758#   define unlink rpl_unlink
1759#  endif
1760_GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1)));
1761_GL_CXXALIAS_RPL (unlink, int, (char const *file));
1762# else
1763_GL_CXXALIAS_SYS (unlink, int, (char const *file));
1764# endif
1765_GL_CXXALIASWARN (unlink);
1766#elif defined GNULIB_POSIXCHECK
1767# undef unlink
1768# if HAVE_RAW_DECL_UNLINK
1769_GL_WARN_ON_USE (unlink, "unlink is not portable - "
1770                 "use gnulib module unlink for portability");
1771# endif
1772#endif
1773
1774
1775#if 0
1776# if 0
1777#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1778#   undef unlinkat
1779#   define unlinkat rpl_unlinkat
1780#  endif
1781_GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag)
1782                                 _GL_ARG_NONNULL ((2)));
1783_GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag));
1784# else
1785#  if !1
1786_GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag)
1787                                 _GL_ARG_NONNULL ((2)));
1788#  endif
1789_GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag));
1790# endif
1791_GL_CXXALIASWARN (unlinkat);
1792#elif defined GNULIB_POSIXCHECK
1793# undef unlinkat
1794# if HAVE_RAW_DECL_UNLINKAT
1795_GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - "
1796                 "use gnulib module openat for portability");
1797# endif
1798#endif
1799
1800
1801#if 0
1802/* Pause the execution of the current thread for N microseconds.
1803   Returns 0 on completion, or -1 on range error.
1804   See the POSIX:2001 specification
1805   <http://www.opengroup.org/susv3xsh/usleep.html>.  */
1806# if 0
1807#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1808#   undef usleep
1809#   define usleep rpl_usleep
1810#  endif
1811_GL_FUNCDECL_RPL (usleep, int, (useconds_t n));
1812_GL_CXXALIAS_RPL (usleep, int, (useconds_t n));
1813# else
1814#  if !1
1815_GL_FUNCDECL_SYS (usleep, int, (useconds_t n));
1816#  endif
1817_GL_CXXALIAS_SYS (usleep, int, (useconds_t n));
1818# endif
1819_GL_CXXALIASWARN (usleep);
1820#elif defined GNULIB_POSIXCHECK
1821# undef usleep
1822# if HAVE_RAW_DECL_USLEEP
1823_GL_WARN_ON_USE (usleep, "usleep is unportable - "
1824                 "use gnulib module usleep for portability");
1825# endif
1826#endif
1827
1828
1829#if 0
1830/* Write up to COUNT bytes starting at BUF to file descriptor FD.
1831   See the POSIX:2008 specification
1832   <http://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html>.  */
1833# if 0
1834#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1835#   undef write
1836#   define write rpl_write
1837#  endif
1838_GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count)
1839                                  _GL_ARG_NONNULL ((2)));
1840_GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count));
1841# else
1842/* Need to cast, because on mingw, the third parameter is
1843                                                             unsigned int count
1844   and the return type is 'int'.  */
1845_GL_CXXALIAS_SYS_CAST (write, ssize_t, (int fd, const void *buf, size_t count));
1846# endif
1847_GL_CXXALIASWARN (write);
1848#endif
1849
1850_GL_INLINE_HEADER_END
1851
1852#endif /* _GL_UNISTD_H */
1853#endif /* _GL_UNISTD_H */
1854