]> Pileus Git - ~andy/linux/blob - include/uapi/linux/time.h
0d3c0edc3edaeaef405d7f208e424cc5f3fda2be
[~andy/linux] / include / uapi / linux / time.h
1 #ifndef _UAPI_LINUX_TIME_H
2 #define _UAPI_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 /*
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
34 struct itimerspec {
35         struct timespec it_interval;    /* timer period */
36         struct timespec it_value;       /* timer expiration */
37 };
38
39 struct 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 /*
59  * The IDs of various hardware clocks:
60  */
61 #define CLOCK_SGI_CYCLE                 10
62 #define MAX_CLOCKS                      16
63 #define CLOCKS_MASK                     (CLOCK_REALTIME | CLOCK_MONOTONIC)
64 #define CLOCKS_MONO                     CLOCK_MONOTONIC
65
66 /*
67  * The various flags for setting POSIX.1b interval timers:
68  */
69 #define TIMER_ABSTIME                   0x01
70
71 #endif /* _UAPI_LINUX_TIME_H */