Commit | Line | Data |
---|---|---|
49114fd4 LC |
1 | /* Provide a more complete sys/time.h. |
2 | ||
f0007cad | 3 | Copyright (C) 2007-2012 Free Software Foundation, Inc. |
49114fd4 LC |
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 | ||
3d458a81 | 26 | #if defined _@GUARD_PREFIX@_SYS_TIME_H |
49114fd4 LC |
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 | ||
3d458a81 | 35 | # define _@GUARD_PREFIX@_SYS_TIME_H |
49114fd4 LC |
36 | |
37 | # if @HAVE_SYS_TIME_H@ | |
38 | # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@ | |
39 | # else | |
40 | # include <time.h> | |
41 | # endif | |
42 | ||
35428fb6 LC |
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 | ||
49114fd4 LC |
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 | ||
35428fb6 LC |
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 | ||
3d458a81 | 200 | #endif /* _@GUARD_PREFIX@_SYS_TIME_H */ |