linux/include/uapi/linux/time.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2#ifndef _UAPI_LINUX_TIME_H
   3#define _UAPI_LINUX_TIME_H
   4
   5#include <linux/types.h>
   6#include <linux/time_types.h>
   7
   8#ifndef __KERNEL__
   9#ifndef _STRUCT_TIMESPEC
  10#define _STRUCT_TIMESPEC
  11struct timespec {
  12        __kernel_old_time_t     tv_sec;         /* seconds */
  13        long                    tv_nsec;        /* nanoseconds */
  14};
  15#endif
  16
  17struct timeval {
  18        __kernel_old_time_t     tv_sec;         /* seconds */
  19        __kernel_suseconds_t    tv_usec;        /* microseconds */
  20};
  21
  22struct itimerspec {
  23        struct timespec it_interval;/* timer period */
  24        struct timespec it_value;       /* timer expiration */
  25};
  26
  27struct itimerval {
  28        struct timeval it_interval;/* timer interval */
  29        struct timeval it_value;        /* current value */
  30};
  31#endif
  32
  33struct timezone {
  34        int     tz_minuteswest; /* minutes west of Greenwich */
  35        int     tz_dsttime;     /* type of dst correction */
  36};
  37
  38/*
  39 * Names of the interval timers, and structure
  40 * defining a timer setting:
  41 */
  42#define ITIMER_REAL             0
  43#define ITIMER_VIRTUAL          1
  44#define ITIMER_PROF             2
  45
  46/*
  47 * The IDs of the various system clocks (for POSIX.1b interval timers):
  48 */
  49#define CLOCK_REALTIME                  0
  50#define CLOCK_MONOTONIC                 1
  51#define CLOCK_PROCESS_CPUTIME_ID        2
  52#define CLOCK_THREAD_CPUTIME_ID         3
  53#define CLOCK_MONOTONIC_RAW             4
  54#define CLOCK_REALTIME_COARSE           5
  55#define CLOCK_MONOTONIC_COARSE          6
  56#define CLOCK_BOOTTIME                  7
  57#define CLOCK_REALTIME_ALARM            8
  58#define CLOCK_BOOTTIME_ALARM            9
  59/*
  60 * The driver implementing this got removed. The clock ID is kept as a
  61 * place holder. Do not reuse!
  62 */
  63#define CLOCK_SGI_CYCLE                 10
  64#define CLOCK_TAI                       11
  65
  66#define MAX_CLOCKS                      16
  67#define CLOCKS_MASK                     (CLOCK_REALTIME | CLOCK_MONOTONIC)
  68#define CLOCKS_MONO                     CLOCK_MONOTONIC
  69
  70/*
  71 * The various flags for setting POSIX.1b interval timers:
  72 */
  73#define TIMER_ABSTIME                   0x01
  74
  75#endif /* _UAPI_LINUX_TIME_H */
  76