]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/unix/sysv/linux/bits/time.h
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / unix / sysv / linux / bits / time.h
index 2a6873f001b4db2b583e22d6e8207782c99617db..a6f6cc99235a521a56d9522c55286fdd4b7a54a4 100644 (file)
@@ -1,5 +1,5 @@
 /* System-dependent timing definitions.  Linux version.
-   Copyright (C) 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1996-2019 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
+   <http://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
 
-/* ISO/IEC 9899:1990 7.12.1: <time.h>
-   The macro `CLOCKS_PER_SEC' is the number per second of the value
-   returned by the `clock' function. */
+#include <bits/types.h>
+
+/* 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  1000000l
+#define CLOCKS_PER_SEC  ((__clock_t) 1000000)
 
-#  if !defined __STRICT_ANSI__ && !defined __USE_XOPEN2K
+#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.  */
-#   include <bits/types.h>
 extern long int __sysconf (int);
-#   define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */
-#  endif
+# define CLK_TCK ((__clock_t) __sysconf (2))   /* 2 is _SC_CLK_TCK */
+#endif
 
-#  ifdef __USE_POSIX199309
+#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
+/* Monotonic system-wide clock that includes time spent in suspension.  */
+# define CLOCK_BOOTTIME                        7
+/* Like CLOCK_REALTIME but also wakes suspended system.  */
+# define CLOCK_REALTIME_ALARM          8
+/* Like CLOCK_BOOTTIME but also wakes suspended system.  */
+# define CLOCK_BOOTTIME_ALARM          9
+/* Like CLOCK_REALTIME but in International Atomic Time.  */
+# define CLOCK_TAI                     11
 
 /* 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
-#  include <bits/types.h>
+#ifdef __USE_GNU
+# include <bits/timex.h>
+
+__BEGIN_DECLS
+
+/* Tune a POSIX clock.  */
+extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW;
+
+__END_DECLS
+#endif /* use GNU */
 
-/* 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 */