1/* gethrxtime -- get high resolution real time
2
3 Copyright (C) 2005, 2009-2019 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 <https://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#ifndef _GL_INLINE_HEADER_BEGIN
26 #error "Please include config.h first."
27#endif
28_GL_INLINE_HEADER_BEGIN
29#ifndef GETHRXTIME_INLINE
30# define GETHRXTIME_INLINE _GL_INLINE
31#endif
32
33#ifdef __cplusplus
34extern "C" {
35#endif
36
37/* Get the current time, as a count of the number of nanoseconds since
38 an arbitrary epoch (e.g., the system boot time). Prefer a
39 high-resolution clock that is not subject to resetting or
40 drifting. */
41
42#if HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME
43# include <time.h>
44GETHRXTIME_INLINE xtime_t gethrxtime (void) { return gethrtime (); }
45# else
46xtime_t gethrxtime (void);
47#endif
48
49_GL_INLINE_HEADER_END
50
51#ifdef __cplusplus
52}
53#endif
54
55#endif
56