1/* System-dependent timing definitions. Linux version. 
2 Copyright (C) 1996-2020 Free Software Foundation, Inc. 
3 This file is part of the GNU C Library. 
4 
5 The GNU C Library is free software; you can redistribute it and/or 
6 modify it under the terms of the GNU Lesser General Public 
7 License as published by the Free Software Foundation; either 
8 version 2.1 of the License, or (at your option) any later version. 
9 
10 The GNU C Library 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 GNU 
13 Lesser General Public License for more details. 
14 
15 You should have received a copy of the GNU Lesser General Public 
16 License along with the GNU C Library; if not, see 
17 <https://www.gnu.org/licenses/>. */ 
18 
19/* 
20 * Never include this file directly; use <time.h> instead. 
21 */ 
22 
23#ifndef _BITS_TIME_H 
24#define _BITS_TIME_H 1 
25 
26#include <bits/types.h> 
27 
28/* ISO/IEC 9899:1999 7.23.1: Components of time 
29 The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is 
30 the number per second of the value returned by the `clock' function. */ 
31/* CAE XSH, Issue 4, Version 2: <time.h> 
32 The value of CLOCKS_PER_SEC is required to be 1 million on all 
33 XSI-conformant systems. */ 
34#define CLOCKS_PER_SEC ((__clock_t) 1000000) 
35 
36#if (!defined __STRICT_ANSI__ || defined __USE_POSIX) \ 
37 && !defined __USE_XOPEN2K 
38/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK 
39 presents the real value for clock ticks per second for the system. */ 
40extern long int __sysconf (int); 
41# define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */ 
42#endif 
43 
44#ifdef __USE_POSIX199309 
45/* Identifier for system-wide realtime clock. */ 
46# define CLOCK_REALTIME 0 
47/* Monotonic system-wide clock. */ 
48# define CLOCK_MONOTONIC 1 
49/* High-resolution timer from the CPU. */ 
50# define CLOCK_PROCESS_CPUTIME_ID 2 
51/* Thread-specific CPU-time clock. */ 
52# define CLOCK_THREAD_CPUTIME_ID 3 
53/* Monotonic system-wide clock, not adjusted for frequency scaling. */ 
54# define CLOCK_MONOTONIC_RAW 4 
55/* Identifier for system-wide realtime clock, updated only on ticks. */ 
56# define CLOCK_REALTIME_COARSE 5 
57/* Monotonic system-wide clock, updated only on ticks. */ 
58# define CLOCK_MONOTONIC_COARSE 6 
59/* Monotonic system-wide clock that includes time spent in suspension. */ 
60# define CLOCK_BOOTTIME 7 
61/* Like CLOCK_REALTIME but also wakes suspended system. */ 
62# define CLOCK_REALTIME_ALARM 8 
63/* Like CLOCK_BOOTTIME but also wakes suspended system. */ 
64# define CLOCK_BOOTTIME_ALARM 9 
65/* Like CLOCK_REALTIME but in International Atomic Time. */ 
66# define CLOCK_TAI 11 
67 
68/* Flag to indicate time is absolute. */ 
69# define TIMER_ABSTIME 1 
70#endif 
71 
72#ifdef __USE_GNU 
73# include <bits/timex.h> 
74 
75__BEGIN_DECLS 
76 
77/* Tune a POSIX clock. */ 
78extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW
79 
80__END_DECLS 
81#endif /* use GNU */ 
82 
83#endif /* bits/time.h */ 
84