Blame gl/sys_time.in.h

Packit a4aae4
/* Provide a more complete sys/time.h.
Packit a4aae4
Packit a4aae4
   Copyright (C) 2007-2017 Free Software Foundation, Inc.
Packit a4aae4
Packit a4aae4
   This program is free software; you can redistribute it and/or modify
Packit a4aae4
   it under the terms of the GNU Lesser General Public License as published by
Packit a4aae4
   the Free Software Foundation; either version 2, or (at your option)
Packit a4aae4
   any later version.
Packit a4aae4
Packit a4aae4
   This program is distributed in the hope that it will be useful,
Packit a4aae4
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit a4aae4
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit a4aae4
   GNU Lesser General Public License for more details.
Packit a4aae4
Packit a4aae4
   You should have received a copy of the GNU Lesser General Public License
Packit a4aae4
   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
Packit a4aae4
Packit a4aae4
/* Written by Paul Eggert.  */
Packit a4aae4
Packit a4aae4
#ifndef _@GUARD_PREFIX@_SYS_TIME_H
Packit a4aae4
Packit a4aae4
#if __GNUC__ >= 3
Packit a4aae4
@PRAGMA_SYSTEM_HEADER@
Packit a4aae4
#endif
Packit a4aae4
@PRAGMA_COLUMNS@
Packit a4aae4
Packit a4aae4
/* On Cygwin and on many BSDish systems, <sys/time.h> includes itself
Packit a4aae4
   recursively via <sys/select.h>.
Packit a4aae4
   Simply delegate to the system's header in this case; it is a no-op.
Packit a4aae4
   Without this extra ifdef, the C++ gettimeofday declaration below
Packit a4aae4
   would be a forward declaration in gnulib's nested <sys/time.h>.  */
Packit a4aae4
#if defined _CYGWIN_SYS_TIME_H || defined _SYS_TIME_H || defined _SYS_TIME_H_
Packit a4aae4
# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
Packit a4aae4
#else
Packit a4aae4
Packit a4aae4
/* The include_next requires a split double-inclusion guard.  */
Packit a4aae4
#if @HAVE_SYS_TIME_H@
Packit a4aae4
# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
Packit a4aae4
#endif
Packit a4aae4
Packit a4aae4
#ifndef _@GUARD_PREFIX@_SYS_TIME_H
Packit a4aae4
#define _@GUARD_PREFIX@_SYS_TIME_H
Packit a4aae4
Packit a4aae4
#if ! @HAVE_SYS_TIME_H@
Packit a4aae4
# include <time.h>
Packit a4aae4
#endif
Packit a4aae4
Packit a4aae4
/* On native Windows with MSVC, get the 'struct timeval' type.
Packit a4aae4
   Also, on native Windows with a 64-bit time_t, where we are overriding the
Packit a4aae4
   'struct timeval' type, get all declarations of system functions whose
Packit a4aae4
   signature contains 'struct timeval'.  */
Packit a4aae4
#if (defined _MSC_VER || @REPLACE_STRUCT_TIMEVAL@) && @HAVE_WINSOCK2_H@ && !defined _GL_INCLUDING_WINSOCK2_H
Packit a4aae4
# define _GL_INCLUDING_WINSOCK2_H
Packit a4aae4
# include <winsock2.h>
Packit a4aae4
# undef _GL_INCLUDING_WINSOCK2_H
Packit a4aae4
#endif
Packit a4aae4
Packit a4aae4
/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
Packit a4aae4
Packit a4aae4
/* The definition of _GL_ARG_NONNULL is copied here.  */
Packit a4aae4
Packit a4aae4
/* The definition of _GL_WARN_ON_USE is copied here.  */
Packit a4aae4
Packit a4aae4
#ifdef __cplusplus
Packit a4aae4
extern "C" {
Packit a4aae4
#endif
Packit a4aae4
Packit a4aae4
#if !@HAVE_STRUCT_TIMEVAL@ || @REPLACE_STRUCT_TIMEVAL@
Packit a4aae4
Packit a4aae4
# if @REPLACE_STRUCT_TIMEVAL@
Packit a4aae4
#  define timeval rpl_timeval
Packit a4aae4
# endif
Packit a4aae4
Packit a4aae4
# if !GNULIB_defined_struct_timeval
Packit a4aae4
struct timeval
Packit a4aae4
{
Packit a4aae4
  time_t tv_sec;
Packit a4aae4
  long int tv_usec;
Packit a4aae4
};
Packit a4aae4
#  define GNULIB_defined_struct_timeval 1
Packit a4aae4
# endif
Packit a4aae4
Packit a4aae4
#endif
Packit a4aae4
Packit a4aae4
#ifdef __cplusplus
Packit a4aae4
}
Packit a4aae4
#endif
Packit a4aae4
Packit a4aae4
#if @GNULIB_GETTIMEOFDAY@
Packit a4aae4
# if @REPLACE_GETTIMEOFDAY@
Packit a4aae4
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit a4aae4
#   undef gettimeofday
Packit a4aae4
#   define gettimeofday rpl_gettimeofday
Packit a4aae4
#  endif
Packit a4aae4
_GL_FUNCDECL_RPL (gettimeofday, int,
Packit a4aae4
                  (struct timeval *restrict, void *restrict)
Packit a4aae4
                  _GL_ARG_NONNULL ((1)));
Packit a4aae4
_GL_CXXALIAS_RPL (gettimeofday, int,
Packit a4aae4
                  (struct timeval *restrict, void *restrict));
Packit a4aae4
# else
Packit a4aae4
#  if !@HAVE_GETTIMEOFDAY@
Packit a4aae4
_GL_FUNCDECL_SYS (gettimeofday, int,
Packit a4aae4
                  (struct timeval *restrict, void *restrict)
Packit a4aae4
                  _GL_ARG_NONNULL ((1)));
Packit a4aae4
#  endif
Packit a4aae4
/* Need to cast, because on glibc systems, by default, the second argument is
Packit a4aae4
                                                  struct timezone *.  */
Packit a4aae4
_GL_CXXALIAS_SYS_CAST (gettimeofday, int,
Packit a4aae4
                       (struct timeval *restrict, void *restrict));
Packit a4aae4
# endif
Packit a4aae4
_GL_CXXALIASWARN (gettimeofday);
Packit a4aae4
# if defined __cplusplus && defined GNULIB_NAMESPACE
Packit a4aae4
namespace GNULIB_NAMESPACE {
Packit a4aae4
  typedef ::timeval
Packit a4aae4
#undef timeval
Packit a4aae4
    timeval;
Packit a4aae4
}
Packit a4aae4
# endif
Packit a4aae4
#elif defined GNULIB_POSIXCHECK
Packit a4aae4
# undef gettimeofday
Packit a4aae4
# if HAVE_RAW_DECL_GETTIMEOFDAY
Packit a4aae4
_GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - "
Packit a4aae4
                 "use gnulib module gettimeofday for portability");
Packit a4aae4
# endif
Packit a4aae4
#endif
Packit a4aae4
Packit a4aae4
/* Hide some function declarations from <winsock2.h>.  */
Packit a4aae4
Packit a4aae4
#if defined _MSC_VER && @HAVE_WINSOCK2_H@
Packit a4aae4
# if !defined _@GUARD_PREFIX@_UNISTD_H
Packit a4aae4
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit a4aae4
#   undef close
Packit a4aae4
#   define close close_used_without_including_unistd_h
Packit a4aae4
#  else
Packit a4aae4
     _GL_WARN_ON_USE (close,
Packit a4aae4
                      "close() used without including <unistd.h>");
Packit a4aae4
#  endif
Packit a4aae4
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit a4aae4
#   undef gethostname
Packit a4aae4
#   define gethostname gethostname_used_without_including_unistd_h
Packit a4aae4
#  else
Packit a4aae4
     _GL_WARN_ON_USE (gethostname,
Packit a4aae4
                      "gethostname() used without including <unistd.h>");
Packit a4aae4
#  endif
Packit a4aae4
# endif
Packit a4aae4
# if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
Packit a4aae4
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit a4aae4
#   undef socket
Packit a4aae4
#   define socket              socket_used_without_including_sys_socket_h
Packit a4aae4
#   undef connect
Packit a4aae4
#   define connect             connect_used_without_including_sys_socket_h
Packit a4aae4
#   undef accept
Packit a4aae4
#   define accept              accept_used_without_including_sys_socket_h
Packit a4aae4
#   undef bind
Packit a4aae4
#   define bind                bind_used_without_including_sys_socket_h
Packit a4aae4
#   undef getpeername
Packit a4aae4
#   define getpeername         getpeername_used_without_including_sys_socket_h
Packit a4aae4
#   undef getsockname
Packit a4aae4
#   define getsockname         getsockname_used_without_including_sys_socket_h
Packit a4aae4
#   undef getsockopt
Packit a4aae4
#   define getsockopt          getsockopt_used_without_including_sys_socket_h
Packit a4aae4
#   undef listen
Packit a4aae4
#   define listen              listen_used_without_including_sys_socket_h
Packit a4aae4
#   undef recv
Packit a4aae4
#   define recv                recv_used_without_including_sys_socket_h
Packit a4aae4
#   undef send
Packit a4aae4
#   define send                send_used_without_including_sys_socket_h
Packit a4aae4
#   undef recvfrom
Packit a4aae4
#   define recvfrom            recvfrom_used_without_including_sys_socket_h
Packit a4aae4
#   undef sendto
Packit a4aae4
#   define sendto              sendto_used_without_including_sys_socket_h
Packit a4aae4
#   undef setsockopt
Packit a4aae4
#   define setsockopt          setsockopt_used_without_including_sys_socket_h
Packit a4aae4
#   undef shutdown
Packit a4aae4
#   define shutdown            shutdown_used_without_including_sys_socket_h
Packit a4aae4
#  else
Packit a4aae4
     _GL_WARN_ON_USE (socket,
Packit a4aae4
                      "socket() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (connect,
Packit a4aae4
                      "connect() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (accept,
Packit a4aae4
                      "accept() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (bind,
Packit a4aae4
                      "bind() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (getpeername,
Packit a4aae4
                      "getpeername() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (getsockname,
Packit a4aae4
                      "getsockname() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (getsockopt,
Packit a4aae4
                      "getsockopt() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (listen,
Packit a4aae4
                      "listen() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (recv,
Packit a4aae4
                      "recv() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (send,
Packit a4aae4
                      "send() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (recvfrom,
Packit a4aae4
                      "recvfrom() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (sendto,
Packit a4aae4
                      "sendto() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (setsockopt,
Packit a4aae4
                      "setsockopt() used without including <sys/socket.h>");
Packit a4aae4
     _GL_WARN_ON_USE (shutdown,
Packit a4aae4
                      "shutdown() used without including <sys/socket.h>");
Packit a4aae4
#  endif
Packit a4aae4
# endif
Packit a4aae4
# if !defined _@GUARD_PREFIX@_SYS_SELECT_H
Packit a4aae4
#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
Packit a4aae4
#   undef select
Packit a4aae4
#   define select select_used_without_including_sys_select_h
Packit a4aae4
#  else
Packit a4aae4
     _GL_WARN_ON_USE (select,
Packit a4aae4
                      "select() used without including <sys/select.h>");
Packit a4aae4
#  endif
Packit a4aae4
# endif
Packit a4aae4
#endif
Packit a4aae4
Packit a4aae4
#endif /* _@GUARD_PREFIX@_SYS_TIME_H */
Packit a4aae4
#endif /* _CYGWIN_SYS_TIME_H */
Packit a4aae4
#endif /* _@GUARD_PREFIX@_SYS_TIME_H */