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