hc
2024-05-10 9999e48639b3cecb08ffb37358bcba3b48161b29
kernel/include/uapi/linux/time.h
....@@ -3,26 +3,37 @@
33 #define _UAPI_LINUX_TIME_H
44
55 #include <linux/types.h>
6
+#include <linux/time_types.h>
67
7
-
8
+#ifndef __KERNEL__
89 #ifndef _STRUCT_TIMESPEC
910 #define _STRUCT_TIMESPEC
1011 struct timespec {
11
- __kernel_time_t tv_sec; /* seconds */
12
- long tv_nsec; /* nanoseconds */
12
+ __kernel_old_time_t tv_sec; /* seconds */
13
+ long tv_nsec; /* nanoseconds */
1314 };
1415 #endif
1516
1617 struct timeval {
17
- __kernel_time_t tv_sec; /* seconds */
18
+ __kernel_old_time_t tv_sec; /* seconds */
1819 __kernel_suseconds_t tv_usec; /* microseconds */
1920 };
21
+
22
+struct itimerspec {
23
+ struct timespec it_interval;/* timer period */
24
+ struct timespec it_value; /* timer expiration */
25
+};
26
+
27
+struct itimerval {
28
+ struct timeval it_interval;/* timer interval */
29
+ struct timeval it_value; /* current value */
30
+};
31
+#endif
2032
2133 struct timezone {
2234 int tz_minuteswest; /* minutes west of Greenwich */
2335 int tz_dsttime; /* type of dst correction */
2436 };
25
-
2637
2738 /*
2839 * Names of the interval timers, and structure
....@@ -31,42 +42,6 @@
3142 #define ITIMER_REAL 0
3243 #define ITIMER_VIRTUAL 1
3344 #define ITIMER_PROF 2
34
-
35
-struct itimerspec {
36
- struct timespec it_interval; /* timer period */
37
- struct timespec it_value; /* timer expiration */
38
-};
39
-
40
-struct itimerval {
41
- struct timeval it_interval; /* timer interval */
42
- struct timeval it_value; /* current value */
43
-};
44
-
45
-#ifndef __kernel_timespec
46
-struct __kernel_timespec {
47
- __kernel_time64_t tv_sec; /* seconds */
48
- long long tv_nsec; /* nanoseconds */
49
-};
50
-#endif
51
-
52
-#ifndef __kernel_itimerspec
53
-struct __kernel_itimerspec {
54
- struct __kernel_timespec it_interval; /* timer period */
55
- struct __kernel_timespec it_value; /* timer expiration */
56
-};
57
-#endif
58
-
59
-/*
60
- * legacy timeval structure, only embedded in structures that
61
- * traditionally used 'timeval' to pass time intervals (not absolute
62
- * times). Do not add new users. If user space fails to compile
63
- * here, this is probably because it is not y2038 safe and needs to
64
- * be changed to use another interface.
65
- */
66
-struct __kernel_old_timeval {
67
- __kernel_long_t tv_sec;
68
- __kernel_long_t tv_usec;
69
-};
7045
7146 /*
7247 * The IDs of the various system clocks (for POSIX.1b interval timers):