Merge branch 'timers-2038-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
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
...
This commit is contained in:
@@ -4,19 +4,15 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#ifndef __kernel_timespec
|
||||
struct __kernel_timespec {
|
||||
__kernel_time64_t tv_sec; /* seconds */
|
||||
long long tv_nsec; /* nanoseconds */
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifndef __kernel_itimerspec
|
||||
struct __kernel_itimerspec {
|
||||
struct __kernel_timespec it_interval; /* timer period */
|
||||
struct __kernel_timespec it_value; /* timer expiration */
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* legacy timeval structure, only embedded in structures that
|
||||
|
||||
@@ -92,6 +92,45 @@ struct timex {
|
||||
int :32; int :32; int :32;
|
||||
};
|
||||
|
||||
struct __kernel_timex_timeval {
|
||||
__kernel_time64_t tv_sec;
|
||||
long long tv_usec;
|
||||
};
|
||||
|
||||
struct __kernel_timex {
|
||||
unsigned int modes; /* mode selector */
|
||||
int :32; /* pad */
|
||||
long long offset; /* time offset (usec) */
|
||||
long long freq; /* frequency offset (scaled ppm) */
|
||||
long long maxerror;/* maximum error (usec) */
|
||||
long long esterror;/* estimated error (usec) */
|
||||
int status; /* clock command/status */
|
||||
int :32; /* pad */
|
||||
long long constant;/* pll time constant */
|
||||
long long precision;/* clock precision (usec) (read only) */
|
||||
long long tolerance;/* clock frequency tolerance (ppm)
|
||||
* (read only)
|
||||
*/
|
||||
struct __kernel_timex_timeval time; /* (read only, except for ADJ_SETOFFSET) */
|
||||
long long tick; /* (modified) usecs between clock ticks */
|
||||
|
||||
long long ppsfreq;/* pps frequency (scaled ppm) (ro) */
|
||||
long long jitter; /* pps jitter (us) (ro) */
|
||||
int shift; /* interval duration (s) (shift) (ro) */
|
||||
int :32; /* pad */
|
||||
long long stabil; /* pps stability (scaled ppm) (ro) */
|
||||
long long jitcnt; /* jitter limit exceeded (ro) */
|
||||
long long calcnt; /* calibration intervals (ro) */
|
||||
long long errcnt; /* calibration errors (ro) */
|
||||
long long stbcnt; /* stability limit exceeded (ro) */
|
||||
|
||||
int tai; /* TAI offset (ro) */
|
||||
|
||||
int :32; int :32; int :32; int :32;
|
||||
int :32; int :32; int :32; int :32;
|
||||
int :32; int :32; int :32;
|
||||
};
|
||||
|
||||
/*
|
||||
* Mode codes (timex.mode)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user