]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - bits/time.h
Update copyright dates with scripts/update-copyrights
[thirdparty/glibc.git] / bits / time.h
index 703dfc752aacbc14709c8cf5d5abcafa1e2bbb66..fefd3347dd6cbebc9b8f51bb41dfeb7b9cb68dc6 100644 (file)
@@ -1,5 +1,5 @@
-/* System-dependent timing definitions.  Stub version.
-   Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+/* System-dependent timing definitions.  Generic version.
+   Copyright (C) 1996-2024 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
 
 /*
  * Never include this file directly; use <time.h> instead.
  */
 
-#ifndef __need_timeval
-# ifndef _BITS_TIME_H
-#  define _BITS_TIME_H 1
+#ifndef _BITS_TIME_H
+#define _BITS_TIME_H   1
 
-#  define CLOCKS_PER_SEC 60
+#include <bits/types.h>
 
-#  ifdef __USE_POSIX199309
+/* ISO/IEC 9899:1999 7.23.1: Components of time
+   The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+   the number per second of the value returned by the `clock' function.  */
+/* CAE XSH, Issue 4, Version 2: <time.h>
+   The value of CLOCKS_PER_SEC is required to be 1 million on all
+   XSI-conformant systems. */
+#define CLOCKS_PER_SEC  ((__clock_t) 1000000)
+
+#if (!defined __STRICT_ANSI__ || defined __USE_POSIX) \
+   && !defined __USE_XOPEN2K
+/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK
+   presents the real value for clock ticks per second for the system.  */
+extern long int __sysconf (int);
+# define CLK_TCK ((__clock_t) __sysconf (2))   /* 2 is _SC_CLK_TCK */
+#endif
+
+#ifdef __USE_POSIX199309
 /* Identifier for system-wide realtime clock.  */
-#   define CLOCK_REALTIME      0
+# define CLOCK_REALTIME                        0
+/* Monotonic system-wide clock.  */
+# define CLOCK_MONOTONIC               1
+/* High-resolution timer from the CPU.  */
+# define CLOCK_PROCESS_CPUTIME_ID      2
+/* Thread-specific CPU-time clock.  */
+# define CLOCK_THREAD_CPUTIME_ID       3
+/* Monotonic system-wide clock, not adjusted for frequency scaling.  */
+# define CLOCK_MONOTONIC_RAW           4
+/* Identifier for system-wide realtime clock, updated only on ticks.  */
+# define CLOCK_REALTIME_COARSE         5
+/* Monotonic system-wide clock, updated only on ticks.  */
+# define CLOCK_MONOTONIC_COARSE                6
 
 /* Flag to indicate time is absolute.  */
-#   define TIMER_ABSTIME       1
-#  endif
-
-# endif        /* bits/time.h */
+# define TIMER_ABSTIME                 1
 #endif
 
-
-#ifdef __need_timeval
-# undef __need_timeval
-# ifndef _STRUCT_TIMEVAL
-#  define _STRUCT_TIMEVAL      1
-/* A time value that is accurate to the nearest
-   microsecond but also has a range of years.  */
-struct timeval
-  {
-    __time_t tv_sec;           /* Seconds.  */
-    __suseconds_t tv_usec;     /* Microseconds.  */
-  };
-# endif        /* struct timeval */
-#endif /* need timeval */
+#endif /* bits/time.h */