b1b988a6a0
Pull year 2038 updates from Thomas Gleixner: "Another round of changes to make the kernel ready for 2038. After lots of preparatory work this is the first set of syscalls which are 2038 safe: 403 clock_gettime64 404 clock_settime64 405 clock_adjtime64 406 clock_getres_time64 407 clock_nanosleep_time64 408 timer_gettime64 409 timer_settime64 410 timerfd_gettime64 411 timerfd_settime64 412 utimensat_time64 413 pselect6_time64 414 ppoll_time64 416 io_pgetevents_time64 417 recvmmsg_time64 418 mq_timedsend_time64 419 mq_timedreceiv_time64 420 semtimedop_time64 421 rt_sigtimedwait_time64 422 futex_time64 423 sched_rr_get_interval_time64 The syscall numbers are identical all over the architectures" * 'timers-2038-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits) riscv: Use latest system call ABI checksyscalls: fix up mq_timedreceive and stat exceptions unicore32: Fix __ARCH_WANT_STAT64 definition asm-generic: Make time32 syscall numbers optional asm-generic: Drop getrlimit and setrlimit syscalls from default list 32-bit userspace ABI: introduce ARCH_32BIT_OFF_T config option compat ABI: use non-compat openat and open_by_handle_at variants y2038: add 64-bit time_t syscalls to all 32-bit architectures y2038: rename old time and utime syscalls y2038: remove struct definition redirects y2038: use time32 syscall names on 32-bit syscalls: remove obsolete __IGNORE_ macros y2038: syscalls: rename y2038 compat syscalls x86/x32: use time64 versions of sigtimedwait and recvmmsg timex: change syscalls to use struct __kernel_timex timex: use __kernel_timex internally sparc64: add custom adjtimex/clock_adjtime functions time: fix sys_timer_settime prototype time: Add struct __kernel_timex time: make adjtime compat handling available for 32 bit ...
37 lines
1,011 B
C
37 lines
1,011 B
C
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
#ifndef _UAPI_LINUX_TIME_TYPES_H
|
|
#define _UAPI_LINUX_TIME_TYPES_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct __kernel_timespec {
|
|
__kernel_time64_t tv_sec; /* seconds */
|
|
long long tv_nsec; /* nanoseconds */
|
|
};
|
|
|
|
struct __kernel_itimerspec {
|
|
struct __kernel_timespec it_interval; /* timer period */
|
|
struct __kernel_timespec it_value; /* timer expiration */
|
|
};
|
|
|
|
/*
|
|
* legacy timeval structure, only embedded in structures that
|
|
* traditionally used 'timeval' to pass time intervals (not absolute
|
|
* times). Do not add new users. If user space fails to compile
|
|
* here, this is probably because it is not y2038 safe and needs to
|
|
* be changed to use another interface.
|
|
*/
|
|
#ifndef __kernel_old_timeval
|
|
struct __kernel_old_timeval {
|
|
__kernel_long_t tv_sec;
|
|
__kernel_long_t tv_usec;
|
|
};
|
|
#endif
|
|
|
|
struct __kernel_sock_timeval {
|
|
__s64 tv_sec;
|
|
__s64 tv_usec;
|
|
};
|
|
|
|
#endif /* _UAPI_LINUX_TIME_TYPES_H */
|