d1f9541aa8d0b9acccb518b2e3882fffac51aafc
[bpt/guile.git] / lib / sys_time.in.h
1 /* Provide a more complete sys/time.h.
2
3 Copyright (C) 2007-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 Lesser General Public License as published by
7 the Free Software Foundation; either version 2, 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 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
18
19 /* Written by Paul Eggert. */
20
21 #if __GNUC__ >= 3
22 @PRAGMA_SYSTEM_HEADER@
23 #endif
24 @PRAGMA_COLUMNS@
25
26 #if defined _@GUARD_PREFIX@_SYS_TIME_H
27
28 /* Simply delegate to the system's header, without adding anything. */
29 # if @HAVE_SYS_TIME_H@
30 # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
31 # endif
32
33 #else
34
35 # define _@GUARD_PREFIX@_SYS_TIME_H
36
37 # if @HAVE_SYS_TIME_H@
38 # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
39 # else
40 # include <time.h>
41 # endif
42
43 /* On native Windows with MSVC:
44 Get the 'struct timeval' type. */
45 # if defined _MSC_VER && @HAVE_WINSOCK2_H@ && !defined _GL_INCLUDING_WINSOCK2_H
46 # define _GL_INCLUDING_WINSOCK2_H
47 # include <winsock2.h>
48 # undef _GL_INCLUDING_WINSOCK2_H
49 # endif
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 # ifdef __cplusplus
58 extern "C" {
59 # endif
60
61 # if ! @HAVE_STRUCT_TIMEVAL@
62
63 # if !GNULIB_defined_struct_timeval
64 struct timeval
65 {
66 time_t tv_sec;
67 long int tv_usec;
68 };
69 # define GNULIB_defined_struct_timeval 1
70 # endif
71
72 # endif
73
74 # ifdef __cplusplus
75 }
76 # endif
77
78 # if @GNULIB_GETTIMEOFDAY@
79 # if @REPLACE_GETTIMEOFDAY@
80 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
81 # undef gettimeofday
82 # define gettimeofday rpl_gettimeofday
83 # endif
84 _GL_FUNCDECL_RPL (gettimeofday, int,
85 (struct timeval *restrict, void *restrict)
86 _GL_ARG_NONNULL ((1)));
87 _GL_CXXALIAS_RPL (gettimeofday, int,
88 (struct timeval *restrict, void *restrict));
89 # else
90 # if !@HAVE_GETTIMEOFDAY@
91 _GL_FUNCDECL_SYS (gettimeofday, int,
92 (struct timeval *restrict, void *restrict)
93 _GL_ARG_NONNULL ((1)));
94 # endif
95 /* Need to cast, because on glibc systems, by default, the second argument is
96 struct timezone *. */
97 _GL_CXXALIAS_SYS_CAST (gettimeofday, int,
98 (struct timeval *restrict, void *restrict));
99 # endif
100 _GL_CXXALIASWARN (gettimeofday);
101 # elif defined GNULIB_POSIXCHECK
102 # undef gettimeofday
103 # if HAVE_RAW_DECL_GETTIMEOFDAY
104 _GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - "
105 "use gnulib module gettimeofday for portability");
106 # endif
107 # endif
108
109 /* Hide some function declarations from <winsock2.h>. */
110
111 # if defined _MSC_VER && @HAVE_WINSOCK2_H@
112 # if !defined _@GUARD_PREFIX@_UNISTD_H
113 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
114 # undef close
115 # define close close_used_without_including_unistd_h
116 # else
117 _GL_WARN_ON_USE (close,
118 "close() used without including <unistd.h>");
119 # endif
120 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
121 # undef gethostname
122 # define gethostname gethostname_used_without_including_unistd_h
123 # else
124 _GL_WARN_ON_USE (gethostname,
125 "gethostname() used without including <unistd.h>");
126 # endif
127 # endif
128 # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
129 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
130 # undef socket
131 # define socket socket_used_without_including_sys_socket_h
132 # undef connect
133 # define connect connect_used_without_including_sys_socket_h
134 # undef accept
135 # define accept accept_used_without_including_sys_socket_h
136 # undef bind
137 # define bind bind_used_without_including_sys_socket_h
138 # undef getpeername
139 # define getpeername getpeername_used_without_including_sys_socket_h
140 # undef getsockname
141 # define getsockname getsockname_used_without_including_sys_socket_h
142 # undef getsockopt
143 # define getsockopt getsockopt_used_without_including_sys_socket_h
144 # undef listen
145 # define listen listen_used_without_including_sys_socket_h
146 # undef recv
147 # define recv recv_used_without_including_sys_socket_h
148 # undef send
149 # define send send_used_without_including_sys_socket_h
150 # undef recvfrom
151 # define recvfrom recvfrom_used_without_including_sys_socket_h
152 # undef sendto
153 # define sendto sendto_used_without_including_sys_socket_h
154 # undef setsockopt
155 # define setsockopt setsockopt_used_without_including_sys_socket_h
156 # undef shutdown
157 # define shutdown shutdown_used_without_including_sys_socket_h
158 # else
159 _GL_WARN_ON_USE (socket,
160 "socket() used without including <sys/socket.h>");
161 _GL_WARN_ON_USE (connect,
162 "connect() used without including <sys/socket.h>");
163 _GL_WARN_ON_USE (accept,
164 "accept() used without including <sys/socket.h>");
165 _GL_WARN_ON_USE (bind,
166 "bind() used without including <sys/socket.h>");
167 _GL_WARN_ON_USE (getpeername,
168 "getpeername() used without including <sys/socket.h>");
169 _GL_WARN_ON_USE (getsockname,
170 "getsockname() used without including <sys/socket.h>");
171 _GL_WARN_ON_USE (getsockopt,
172 "getsockopt() used without including <sys/socket.h>");
173 _GL_WARN_ON_USE (listen,
174 "listen() used without including <sys/socket.h>");
175 _GL_WARN_ON_USE (recv,
176 "recv() used without including <sys/socket.h>");
177 _GL_WARN_ON_USE (send,
178 "send() used without including <sys/socket.h>");
179 _GL_WARN_ON_USE (recvfrom,
180 "recvfrom() used without including <sys/socket.h>");
181 _GL_WARN_ON_USE (sendto,
182 "sendto() used without including <sys/socket.h>");
183 _GL_WARN_ON_USE (setsockopt,
184 "setsockopt() used without including <sys/socket.h>");
185 _GL_WARN_ON_USE (shutdown,
186 "shutdown() used without including <sys/socket.h>");
187 # endif
188 # endif
189 # if !defined _@GUARD_PREFIX@_SYS_SELECT_H
190 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
191 # undef select
192 # define select select_used_without_including_sys_select_h
193 # else
194 _GL_WARN_ON_USE (select,
195 "select() used without including <sys/select.h>");
196 # endif
197 # endif
198 # endif
199
200 #endif /* _@GUARD_PREFIX@_SYS_TIME_H */