1#ifndef _LINUX_TIME_H 2#define _LINUX_TIME_H 3 4#include <linux/types.h> 5 6 7#ifndef _STRUCT_TIMESPEC 8#define _STRUCT_TIMESPEC 9struct timespec { 10 __kernel_time_t tv_sec; /* seconds */ 11 long tv_nsec; /* nanoseconds */ 12}; 13#endif 14 15struct timeval { 16 __kernel_time_t tv_sec; /* seconds */ 17 __kernel_suseconds_t tv_usec; /* microseconds */ 18}; 19 20struct timezone { 21 int tz_minuteswest; /* minutes west of Greenwich */ 22 int tz_dsttime; /* type of dst correction */ 23}; 24 25 26#define NFDBITS __NFDBITS 27 28#define FD_SETSIZE __FD_SETSIZE 29#define FD_SET(fd,fdsetp) __FD_SET(fd,fdsetp) 30#define FD_CLR(fd,fdsetp) __FD_CLR(fd,fdsetp) 31#define FD_ISSET(fd,fdsetp) __FD_ISSET(fd,fdsetp) 32#define FD_ZERO(fdsetp) __FD_ZERO(fdsetp) 33 34/* 35 * Names of the interval timers, and structure 36 * defining a timer setting: 37 */ 38#define ITIMER_REAL 0 39#define ITIMER_VIRTUAL 1 40#define ITIMER_PROF 2 41 42struct itimerspec { 43 struct timespec it_interval; /* timer period */ 44 struct timespec it_value; /* timer expiration */ 45}; 46 47struct itimerval { 48 struct timeval it_interval; /* timer interval */ 49 struct timeval it_value; /* current value */ 50}; 51 52/* 53 * The IDs of the various system clocks (for POSIX.1b interval timers): 54 */ 55#define CLOCK_REALTIME 0 56#define CLOCK_MONOTONIC 1 57#define CLOCK_PROCESS_CPUTIME_ID 2 58#define CLOCK_THREAD_CPUTIME_ID 3 59#define CLOCK_MONOTONIC_RAW 4 60#define CLOCK_REALTIME_COARSE 5 61#define CLOCK_MONOTONIC_COARSE 6 62 63/* 64 * The IDs of various hardware clocks: 65 */ 66#define CLOCK_SGI_CYCLE 10 67#define MAX_CLOCKS 16 68#define CLOCKS_MASK (CLOCK_REALTIME | CLOCK_MONOTONIC) 69#define CLOCKS_MONO CLOCK_MONOTONIC 70 71/* 72 * The various flags for setting POSIX.1b interval timers: 73 */ 74#define TIMER_ABSTIME 0x01 75 76#endif 77