glibc (2.38)

(root)/
include/
bits/
time.h
       1  /* System-dependent timing definitions.  Linux version.
       2     Copyright (C) 1996-2023 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.  */
      40  extern 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.  */
      78  extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW __nonnull((2));
      79  
      80  #ifdef __USE_TIME_BITS64
      81  # if defined(__REDIRECT_NTH)
      82  extern int __REDIRECT_NTH (clock_adjtime, (__clockid_t __clock_id,
      83                                             struct timex *__utx),
      84                             __clock_adjtime64) __nonnull((2));
      85  # else
      86  # define clock_adjtime __clock_adjtime64
      87  # endif
      88  #endif
      89  
      90  __END_DECLS
      91  #endif /* use GNU */
      92  
      93  #endif	/* bits/time.h */