Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 #ifndef _UAPI_LINUX_TIME_TYPES_H
0003 #define _UAPI_LINUX_TIME_TYPES_H
0004 
0005 #include <linux/types.h>
0006 
0007 struct __kernel_timespec {
0008     __kernel_time64_t       tv_sec;                 /* seconds */
0009     long long               tv_nsec;                /* nanoseconds */
0010 };
0011 
0012 struct __kernel_itimerspec {
0013     struct __kernel_timespec it_interval;    /* timer period */
0014     struct __kernel_timespec it_value;       /* timer expiration */
0015 };
0016 
0017 /*
0018  * legacy timeval structure, only embedded in structures that
0019  * traditionally used 'timeval' to pass time intervals (not absolute
0020  * times). Do not add new users. If user space fails to compile
0021  * here, this is probably because it is not y2038 safe and needs to
0022  * be changed to use another interface.
0023  */
0024 #ifndef __kernel_old_timeval
0025 struct __kernel_old_timeval {
0026     __kernel_long_t tv_sec;
0027     __kernel_long_t tv_usec;
0028 };
0029 #endif
0030 
0031 struct __kernel_old_timespec {
0032     __kernel_old_time_t tv_sec;     /* seconds */
0033     long            tv_nsec;    /* nanoseconds */
0034 };
0035 
0036 struct __kernel_old_itimerval {
0037     struct __kernel_old_timeval it_interval;/* timer interval */
0038     struct __kernel_old_timeval it_value;   /* current value */
0039 };
0040 
0041 struct __kernel_sock_timeval {
0042     __s64 tv_sec;
0043     __s64 tv_usec;
0044 };
0045 
0046 #endif /* _UAPI_LINUX_TIME_TYPES_H */