130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _UAPI_LINUX_TIME_H 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _UAPI_LINUX_TIME_H 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h> 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _STRUCT_TIMESPEC 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _STRUCT_TIMESPEC 930692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct timespec { 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __kernel_time_t tv_sec; /* seconds */ 1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng long tv_nsec; /* nanoseconds */ 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1530692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct timeval { 1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __kernel_time_t tv_sec; /* seconds */ 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __kernel_suseconds_t tv_usec; /* microseconds */ 1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2030692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct timezone { 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int tz_minuteswest; /* minutes west of Greenwich */ 2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int tz_dsttime; /* type of dst correction */ 2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Names of the interval timers, and structure 2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * defining a timer setting: 2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ITIMER_REAL 0 3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ITIMER_VIRTUAL 1 3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ITIMER_PROF 2 3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3430692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct itimerspec { 3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng struct timespec it_interval; /* timer period */ 3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng struct timespec it_value; /* timer expiration */ 3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3930692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct itimerval { 4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng struct timeval it_interval; /* timer interval */ 4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng struct timeval it_value; /* current value */ 4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * The IDs of the various system clocks (for POSIX.1b interval timers): 4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCK_REALTIME 0 4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCK_MONOTONIC 1 4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCK_PROCESS_CPUTIME_ID 2 5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCK_THREAD_CPUTIME_ID 3 5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCK_MONOTONIC_RAW 4 5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCK_REALTIME_COARSE 5 5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCK_MONOTONIC_COARSE 6 5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCK_BOOTTIME 7 5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCK_REALTIME_ALARM 8 5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCK_BOOTTIME_ALARM 9 5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCK_SGI_CYCLE 10 /* Hardware specific */ 5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCK_TAI 11 5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define MAX_CLOCKS 16 6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCKS_MASK (CLOCK_REALTIME | CLOCK_MONOTONIC) 6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCKS_MONO CLOCK_MONOTONIC 6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * The various flags for setting POSIX.1b interval timers: 6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 6730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define TIMER_ABSTIME 0x01 6830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _UAPI_LINUX_TIME_H */ 70