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 9 struct timespec { 10 __kernel_time_t tv_sec; /* seconds */ 11 long tv_nsec; /* nanoseconds */ 12 }; 13 #endif 14 15 struct timeval { 16 __kernel_time_t tv_sec; /* seconds */ 17 __kernel_suseconds_t tv_usec; /* microseconds */ 18 }; 19 20 struct 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 42 struct itimerspec { 43 struct timespec it_interval; /* timer period */ 44 struct timespec it_value; /* timer expiration */ 45 }; 46 47 struct 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