mbox series

[v2,0/7] y2038: Convert clock_adjtime related syscalls to support 64 bit time

Message ID 20200508145640.16336-1-lukma@denx.de
Headers show
Series y2038: Convert clock_adjtime related syscalls to support 64 bit time | expand

Message

Lukasz Majewski May 8, 2020, 2:56 p.m. UTC
This patch series converts clock_adjtime to support 64 bit time (by using
clock_adjtime64) when __ASSUME_TIME64_SYSCALLS is defined.

This change required introduction of new internal type - struct
__ntptimeval64 to accomodate 64 bit time on architectures
with __TIMESIZE != 64 and __WORDSIZE == 32.
In several places in the glibc the struct timeval has been replaced with struct
__timeval64.

As a result new, 64 bit supporting functions:
__adjtime64
__adjtimex64
__ntp_gettime64
__ntp_gettimex64

were introduced.

Moreover, the clock_adjtime64 syscall handling in Linux kernel has been broken
up till v5.4.

Lukasz Majewski (7):
  y2038: linux: Provide __clock_adjtime64 implementation
  y2038: linux: Provide ___adjtimex64 implementation
  y2038: linux: Provide __adjtime64 implementation
  y2038: Introduce struct __ntptimeval64 - new internal glibc type
  y2038: Provide conversion helpers for struct __ntptimeval64
  y2038: linux: Provide __ntp_gettime64 implementation
  y2038: linux: Provide __ntp_gettimex64 implementation

 include/sys/time.h                          |  9 +++
 sysdeps/unix/sysv/linux/Makefile            |  2 +-
 sysdeps/unix/sysv/linux/adjtime.c           | 26 ++++++--
 sysdeps/unix/sysv/linux/adjtimex.c          | 21 +++++-
 sysdeps/unix/sysv/linux/clock_adjtime.c     | 71 +++++++++++++++++++++
 sysdeps/unix/sysv/linux/include/sys/timex.h | 63 ++++++++++++++++++
 sysdeps/unix/sysv/linux/ntp_gettime.c       | 24 ++++++-
 sysdeps/unix/sysv/linux/ntp_gettimex.c      | 24 ++++++-
 sysdeps/unix/sysv/linux/syscalls.list       |  1 -
 9 files changed, 227 insertions(+), 14 deletions(-)
 create mode 100644 sysdeps/unix/sysv/linux/clock_adjtime.c