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