Reduce code duplication.
[gnulib.git] / lib / sys_time.in.h
1 /* Provide a more complete sys/time.h.
2
3    Copyright (C) 2007-2008 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 @PRAGMA_SYSTEM_HEADER@
22
23 #if defined _GL_SYS_TIME_H
24
25 /* Simply delegate to the system's header, without adding anything.  */
26 # if @HAVE_SYS_TIME_H@
27 #  @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
28 # endif
29
30 #else
31
32 # define _GL_SYS_TIME_H
33
34 # if @HAVE_SYS_TIME_H@
35 #  @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
36 # else
37 #  include <time.h>
38 # endif
39
40 # if ! @HAVE_STRUCT_TIMEVAL@
41 struct timeval
42 {
43   time_t tv_sec;
44   long int tv_usec;
45 };
46 # endif
47
48 # if @REPLACE_GETTIMEOFDAY@
49 #  undef gettimeofday
50 #  define gettimeofday rpl_gettimeofday
51 int gettimeofday (struct timeval *restrict, void *restrict);
52 # endif
53
54 #endif /* _GL_SYS_TIME_H */