(root)/
m4-1.4.19/
tests/
sys_time.in.h
       1  /* Provide a more complete sys/time.h.
       2  
       3     Copyright (C) 2007-2021 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 <https://www.gnu.org/licenses/>.  */
      17  
      18  /* Written by Paul Eggert.  */
      19  
      20  #ifndef _@GUARD_PREFIX@_SYS_TIME_H
      21  
      22  #if __GNUC__ >= 3
      23  @PRAGMA_SYSTEM_HEADER@
      24  #endif
      25  @PRAGMA_COLUMNS@
      26  
      27  /* On Cygwin and on many BSDish systems, <sys/time.h> includes itself
      28     recursively via <sys/select.h>.
      29     Simply delegate to the system's header in this case; it is a no-op.
      30     Without this extra ifdef, the C++ gettimeofday declaration below
      31     would be a forward declaration in gnulib's nested <sys/time.h>.  */
      32  #if defined _CYGWIN_SYS_TIME_H || defined _SYS_TIME_H || defined _SYS_TIME_H_
      33  # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
      34  #else
      35  
      36  /* The include_next requires a split double-inclusion guard.  */
      37  #if @HAVE_SYS_TIME_H@
      38  # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
      39  #endif
      40  
      41  #ifndef _@GUARD_PREFIX@_SYS_TIME_H
      42  #define _@GUARD_PREFIX@_SYS_TIME_H
      43  
      44  #if ! @HAVE_SYS_TIME_H@
      45  # include <time.h>
      46  #endif
      47  
      48  /* On native Windows with MSVC, get the 'struct timeval' type.
      49     Also, on native Windows with a 64-bit time_t, where we are overriding the
      50     'struct timeval' type, get all declarations of system functions whose
      51     signature contains 'struct timeval'.  */
      52  #if (defined _MSC_VER || @REPLACE_STRUCT_TIMEVAL@) && @HAVE_WINSOCK2_H@ && !defined _GL_INCLUDING_WINSOCK2_H
      53  # define _GL_INCLUDING_WINSOCK2_H
      54  # include <winsock2.h>
      55  # undef _GL_INCLUDING_WINSOCK2_H
      56  #endif
      57  
      58  /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
      59  
      60  /* The definition of _GL_ARG_NONNULL is copied here.  */
      61  
      62  /* The definition of _GL_WARN_ON_USE is copied here.  */
      63  
      64  #ifdef __cplusplus
      65  extern "C" {
      66  #endif
      67  
      68  #if !@HAVE_STRUCT_TIMEVAL@ || @REPLACE_STRUCT_TIMEVAL@
      69  
      70  # if @REPLACE_STRUCT_TIMEVAL@
      71  #  define timeval rpl_timeval
      72  # endif
      73  
      74  # if !GNULIB_defined_struct_timeval
      75  struct timeval
      76  {
      77    time_t tv_sec;
      78    long int tv_usec;
      79  };
      80  #  define GNULIB_defined_struct_timeval 1
      81  # endif
      82  
      83  #endif
      84  
      85  #ifdef __cplusplus
      86  }
      87  #endif
      88  
      89  #if @GNULIB_GETTIMEOFDAY@
      90  # if @REPLACE_GETTIMEOFDAY@
      91  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
      92  #   undef gettimeofday
      93  #   define gettimeofday rpl_gettimeofday
      94  #  endif
      95  _GL_FUNCDECL_RPL (gettimeofday, int,
      96                    (struct timeval *restrict, void *restrict)
      97                    _GL_ARG_NONNULL ((1)));
      98  _GL_CXXALIAS_RPL (gettimeofday, int,
      99                    (struct timeval *restrict, void *restrict));
     100  # else
     101  #  if !@HAVE_GETTIMEOFDAY@
     102  _GL_FUNCDECL_SYS (gettimeofday, int,
     103                    (struct timeval *restrict, void *restrict)
     104                    _GL_ARG_NONNULL ((1)));
     105  #  endif
     106  /* Need to cast, because on glibc systems, by default, the second argument is
     107                                                    struct timezone *.  */
     108  _GL_CXXALIAS_SYS_CAST (gettimeofday, int,
     109                         (struct timeval *restrict, void *restrict));
     110  # endif
     111  _GL_CXXALIASWARN (gettimeofday);
     112  # if defined __cplusplus && defined GNULIB_NAMESPACE
     113  namespace GNULIB_NAMESPACE {
     114    typedef ::timeval
     115  #  undef timeval
     116      timeval;
     117  #  if @REPLACE_STRUCT_TIMEVAL@
     118  #   define timeval rpl_timeval
     119    typedef ::timeval timeval;
     120  #  endif
     121  }
     122  # endif
     123  #elif defined GNULIB_POSIXCHECK
     124  # undef gettimeofday
     125  # if HAVE_RAW_DECL_GETTIMEOFDAY
     126  _GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - "
     127                   "use gnulib module gettimeofday for portability");
     128  # endif
     129  #endif
     130  
     131  /* Hide some function declarations from <winsock2.h>.  */
     132  
     133  #if defined _MSC_VER && @HAVE_WINSOCK2_H@
     134  # if !defined _@GUARD_PREFIX@_UNISTD_H
     135  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     136  #   undef close
     137  #   define close close_used_without_including_unistd_h
     138  #  elif !defined __clang__
     139       _GL_WARN_ON_USE (close,
     140                        "close() used without including <unistd.h>");
     141  #  endif
     142  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     143  #   undef gethostname
     144  #   define gethostname gethostname_used_without_including_unistd_h
     145  #  else
     146       _GL_WARN_ON_USE (gethostname,
     147                        "gethostname() used without including <unistd.h>");
     148  #  endif
     149  # endif
     150  # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
     151  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     152  #   undef socket
     153  #   define socket              socket_used_without_including_sys_socket_h
     154  #   undef connect
     155  #   define connect             connect_used_without_including_sys_socket_h
     156  #   undef accept
     157  #   define accept              accept_used_without_including_sys_socket_h
     158  #   undef bind
     159  #   define bind                bind_used_without_including_sys_socket_h
     160  #   undef getpeername
     161  #   define getpeername         getpeername_used_without_including_sys_socket_h
     162  #   undef getsockname
     163  #   define getsockname         getsockname_used_without_including_sys_socket_h
     164  #   undef getsockopt
     165  #   define getsockopt          getsockopt_used_without_including_sys_socket_h
     166  #   undef listen
     167  #   define listen              listen_used_without_including_sys_socket_h
     168  #   undef recv
     169  #   define recv                recv_used_without_including_sys_socket_h
     170  #   undef send
     171  #   define send                send_used_without_including_sys_socket_h
     172  #   undef recvfrom
     173  #   define recvfrom            recvfrom_used_without_including_sys_socket_h
     174  #   undef sendto
     175  #   define sendto              sendto_used_without_including_sys_socket_h
     176  #   undef setsockopt
     177  #   define setsockopt          setsockopt_used_without_including_sys_socket_h
     178  #   undef shutdown
     179  #   define shutdown            shutdown_used_without_including_sys_socket_h
     180  #  else
     181       _GL_WARN_ON_USE (socket,
     182                        "socket() used without including <sys/socket.h>");
     183       _GL_WARN_ON_USE (connect,
     184                        "connect() used without including <sys/socket.h>");
     185       _GL_WARN_ON_USE (accept,
     186                        "accept() used without including <sys/socket.h>");
     187       _GL_WARN_ON_USE (bind,
     188                        "bind() used without including <sys/socket.h>");
     189       _GL_WARN_ON_USE (getpeername,
     190                        "getpeername() used without including <sys/socket.h>");
     191       _GL_WARN_ON_USE (getsockname,
     192                        "getsockname() used without including <sys/socket.h>");
     193       _GL_WARN_ON_USE (getsockopt,
     194                        "getsockopt() used without including <sys/socket.h>");
     195       _GL_WARN_ON_USE (listen,
     196                        "listen() used without including <sys/socket.h>");
     197       _GL_WARN_ON_USE (recv,
     198                        "recv() used without including <sys/socket.h>");
     199       _GL_WARN_ON_USE (send,
     200                        "send() used without including <sys/socket.h>");
     201       _GL_WARN_ON_USE (recvfrom,
     202                        "recvfrom() used without including <sys/socket.h>");
     203       _GL_WARN_ON_USE (sendto,
     204                        "sendto() used without including <sys/socket.h>");
     205       _GL_WARN_ON_USE (setsockopt,
     206                        "setsockopt() used without including <sys/socket.h>");
     207       _GL_WARN_ON_USE (shutdown,
     208                        "shutdown() used without including <sys/socket.h>");
     209  #  endif
     210  # endif
     211  # if !defined _@GUARD_PREFIX@_SYS_SELECT_H
     212  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
     213  #   undef select
     214  #   define select select_used_without_including_sys_select_h
     215  #  else
     216       _GL_WARN_ON_USE (select,
     217                        "select() used without including <sys/select.h>");
     218  #  endif
     219  # endif
     220  #endif
     221  
     222  #endif /* _@GUARD_PREFIX@_SYS_TIME_H */
     223  #endif /* _CYGWIN_SYS_TIME_H */
     224  #endif /* _@GUARD_PREFIX@_SYS_TIME_H */