Merge commit '12319ff4e84ca616a671216d991dd6eaf1c39c47' into stable
[gnulib.git] / lib / sys_time.in.h
1 /* Provide a more complete sys/time.h.
2
3    Copyright (C) 2007-2010 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 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 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, 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
25 #if defined _GL_SYS_TIME_H
26
27 /* Simply delegate to the system's header, without adding anything.  */
28 # if @HAVE_SYS_TIME_H@
29 #  @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
30 # endif
31
32 #else
33
34 # define _GL_SYS_TIME_H
35
36 # if @HAVE_SYS_TIME_H@
37 #  @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
38 # else
39 #  include <time.h>
40 # endif
41
42 /* The definition of _GL_ARG_NONNULL is copied here.  */
43
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47
48 # if ! @HAVE_STRUCT_TIMEVAL@
49 struct timeval
50 {
51   time_t tv_sec;
52   long int tv_usec;
53 };
54 # endif
55
56 # if @REPLACE_GETTIMEOFDAY@
57 #  undef gettimeofday
58 #  define gettimeofday rpl_gettimeofday
59 extern int gettimeofday (struct timeval *restrict, void *restrict)
60      _GL_ARG_NONNULL ((1));
61 # endif
62
63 #ifdef __cplusplus
64 }
65 #endif
66
67 #endif /* _GL_SYS_TIME_H */