1b81527dc5d118fa2525de3fab49e97b16e313ce
[gnulib.git] / lib / gethrxtime.h
1 /* gethrxtime -- get high resolution real time
2
3    Copyright (C) 2005, 2009-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 General Public License as published by
7    the Free Software Foundation; either version 3 of the License, or
8    (at your option) 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, see <http://www.gnu.org/licenses/>.  */
17
18 /* Written by Paul Eggert.  */
19
20 #ifndef GETHRXTIME_H_
21 #define GETHRXTIME_H_ 1
22
23 #include "xtime.h"
24
25 _GL_INLINE_HEADER_BEGIN
26 #ifndef GETHRXTIME_INLINE
27 # define GETHRXTIME_INLINE _GL_INLINE
28 #endif
29
30 #ifdef  __cplusplus
31 extern "C" {
32 #endif
33
34 /* Get the current time, as a count of the number of nanoseconds since
35    an arbitrary epoch (e.g., the system boot time).  Prefer a
36    high-resolution clock that is not subject to resetting or
37    drifting.  */
38
39 #if HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME
40 # include <time.h>
41 GETHRXTIME_INLINE xtime_t gethrxtime (void) { return gethrtime (); }
42 # else
43 xtime_t gethrxtime (void);
44 #endif
45
46 _GL_INLINE_HEADER_END
47
48 #ifdef  __cplusplus
49 }
50 #endif
51
52 #endif