| 1 | /* System-dependent timing definitions.  Linux version. | 
|---|
| 2 | Copyright (C) 1996-2014 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 | <http://www.gnu.org/licenses/>.  */ | 
|---|
| 18 |  | 
|---|
| 19 | /* | 
|---|
| 20 | * Never include this file directly; use <time.h> instead. | 
|---|
| 21 | */ | 
|---|
| 22 |  | 
|---|
| 23 | #if defined __need_timeval || defined __USE_GNU | 
|---|
| 24 | # ifndef _STRUCT_TIMEVAL | 
|---|
| 25 | #  define _STRUCT_TIMEVAL	1 | 
|---|
| 26 | #  include <bits/types.h> | 
|---|
| 27 |  | 
|---|
| 28 | /* A time value that is accurate to the nearest | 
|---|
| 29 | microsecond but also has a range of years.  */ | 
|---|
| 30 | struct timeval | 
|---|
| 31 | { | 
|---|
| 32 | __time_t tv_sec;		/* Seconds.  */ | 
|---|
| 33 | __suseconds_t tv_usec;	/* Microseconds.  */ | 
|---|
| 34 | }; | 
|---|
| 35 | # endif	/* struct timeval */ | 
|---|
| 36 | #endif | 
|---|
| 37 |  | 
|---|
| 38 | #ifndef __need_timeval | 
|---|
| 39 | # ifndef _BITS_TIME_H | 
|---|
| 40 | #  define _BITS_TIME_H	1 | 
|---|
| 41 |  | 
|---|
| 42 | /* ISO/IEC 9899:1990 7.12.1: <time.h> | 
|---|
| 43 | The macro `CLOCKS_PER_SEC' is the number per second of the value | 
|---|
| 44 | returned by the `clock' function. */ | 
|---|
| 45 | /* CAE XSH, Issue 4, Version 2: <time.h> | 
|---|
| 46 | The value of CLOCKS_PER_SEC is required to be 1 million on all | 
|---|
| 47 | XSI-conformant systems. */ | 
|---|
| 48 | #  define CLOCKS_PER_SEC  1000000l | 
|---|
| 49 |  | 
|---|
| 50 | #  if (!defined __STRICT_ANSI__ || defined __USE_POSIX) \ | 
|---|
| 51 | && !defined __USE_XOPEN2K | 
|---|
| 52 | /* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK | 
|---|
| 53 | presents the real value for clock ticks per second for the system.  */ | 
|---|
| 54 | #   include <bits/types.h> | 
|---|
| 55 | extern long int __sysconf (int); | 
|---|
| 56 | #   define CLK_TCK ((__clock_t) __sysconf (2))	/* 2 is _SC_CLK_TCK */ | 
|---|
| 57 | #  endif | 
|---|
| 58 |  | 
|---|
| 59 | #  ifdef __USE_POSIX199309 | 
|---|
| 60 | /* Identifier for system-wide realtime clock.  */ | 
|---|
| 61 | #   define CLOCK_REALTIME		0 | 
|---|
| 62 | /* Monotonic system-wide clock.  */ | 
|---|
| 63 | #   define CLOCK_MONOTONIC		1 | 
|---|
| 64 | /* High-resolution timer from the CPU.  */ | 
|---|
| 65 | #   define CLOCK_PROCESS_CPUTIME_ID	2 | 
|---|
| 66 | /* Thread-specific CPU-time clock.  */ | 
|---|
| 67 | #   define CLOCK_THREAD_CPUTIME_ID	3 | 
|---|
| 68 | /* Monotonic system-wide clock, not adjusted for frequency scaling.  */ | 
|---|
| 69 | #   define CLOCK_MONOTONIC_RAW		4 | 
|---|
| 70 | /* Identifier for system-wide realtime clock, updated only on ticks.  */ | 
|---|
| 71 | #   define CLOCK_REALTIME_COARSE	5 | 
|---|
| 72 | /* Monotonic system-wide clock, updated only on ticks.  */ | 
|---|
| 73 | #   define CLOCK_MONOTONIC_COARSE	6 | 
|---|
| 74 | /* Monotonic system-wide clock that includes time spent in suspension.  */ | 
|---|
| 75 | #   define CLOCK_BOOTTIME		7 | 
|---|
| 76 | /* Like CLOCK_REALTIME but also wakes suspended system.  */ | 
|---|
| 77 | #   define CLOCK_REALTIME_ALARM		8 | 
|---|
| 78 | /* Like CLOCK_BOOTTIME but also wakes suspended system.  */ | 
|---|
| 79 | #   define CLOCK_BOOTTIME_ALARM		9 | 
|---|
| 80 |  | 
|---|
| 81 | /* Flag to indicate time is absolute.  */ | 
|---|
| 82 | #   define TIMER_ABSTIME		1 | 
|---|
| 83 | #  endif | 
|---|
| 84 |  | 
|---|
| 85 | #  ifdef __USE_GNU | 
|---|
| 86 | #   include <bits/timex.h> | 
|---|
| 87 |  | 
|---|
| 88 | __BEGIN_DECLS | 
|---|
| 89 |  | 
|---|
| 90 | /* Tune a POSIX clock.  */ | 
|---|
| 91 | extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW; | 
|---|
| 92 |  | 
|---|
| 93 | __END_DECLS | 
|---|
| 94 | #  endif /* use GNU */ | 
|---|
| 95 |  | 
|---|
| 96 | # endif	/* bits/time.h */ | 
|---|
| 97 | #endif | 
|---|
| 98 |  | 
|---|
| 99 | #undef __need_timeval | 
|---|
| 100 |  | 
|---|