1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 #ifndef _UAPI_LINUX_TIME_TYPES_H 3 #define _UAPI_LINUX_TIME_TYPES_H 4 5 #include <linux/types.h> 6 7 struct __kernel_timespec { 8 __kernel_time64_t tv_sec; /* seconds */ 9 long long tv_nsec; /* nanoseconds */ 10 }; 11 12 struct __kernel_itimerspec { 13 struct __kernel_timespec it_interval; /* timer period */ 14 struct __kernel_timespec it_value; /* timer expiration */ 15 }; 16 17 /* 18 * legacy timeval structure, only embedded in structures that 19 * traditionally used 'timeval' to pass time intervals (not absolute 20 * times). Do not add new users. If user space fails to compile 21 * here, this is probably because it is not y2038 safe and needs to 22 * be changed to use another interface. 23 */ 24 #ifndef __kernel_old_timeval 25 struct __kernel_old_timeval { 26 __kernel_long_t tv_sec; 27 __kernel_long_t tv_usec; 28 }; 29 #endif 30 31 struct __kernel_sock_timeval { 32 __s64 tv_sec; 33 __s64 tv_usec; 34 }; 35 36 #endif /* _UAPI_LINUX_TIME_TYPES_H */ 37