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