Skip to content
  • Deepa Dinamani's avatar
    acf8870a
    time: Add new y2038 safe __kernel_timespec · acf8870a
    Deepa Dinamani authored
    
    
    The new struct __kernel_timespec is similar to current
    internal kernel struct timespec64 on 64 bit architecture.
    The compat structure however is similar to below on little
    endian systems (padding and tv_nsec are switched for big
    endian systems):
    
    typedef s32            compat_long_t;
    typedef s64            compat_kernel_time64_t;
    
    struct compat_kernel_timespec {
           compat_kernel_time64_t  tv_sec;
           compat_long_t           tv_nsec;
           compat_long_t           padding;
    };
    
    This allows for both the native and compat representations to
    be the same and syscalls using this type as part of their ABI
    can have a single entry point to both.
    
    Note that the compat define is not included anywhere in the
    kernel explicitly to avoid confusion.
    
    These types will be used by the new syscalls that will be
    introduced in the consequent patches.
    Most of the new syscalls are just an update to the existing
    native ones with this new type. Hence, put this new type under
    an ifdef so that the architectures can define CONFIG_64BIT_TIME
    when they are ready to handle this switch.
    
    Cc: linux-arch@vger.kernel.org
    Signed-off-by: default avatarDeepa Dinamani <deepa.kernel@gmail.com>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    acf8870a
    time: Add new y2038 safe __kernel_timespec
    Deepa Dinamani authored
    
    
    The new struct __kernel_timespec is similar to current
    internal kernel struct timespec64 on 64 bit architecture.
    The compat structure however is similar to below on little
    endian systems (padding and tv_nsec are switched for big
    endian systems):
    
    typedef s32            compat_long_t;
    typedef s64            compat_kernel_time64_t;
    
    struct compat_kernel_timespec {
           compat_kernel_time64_t  tv_sec;
           compat_long_t           tv_nsec;
           compat_long_t           padding;
    };
    
    This allows for both the native and compat representations to
    be the same and syscalls using this type as part of their ABI
    can have a single entry point to both.
    
    Note that the compat define is not included anywhere in the
    kernel explicitly to avoid confusion.
    
    These types will be used by the new syscalls that will be
    introduced in the consequent patches.
    Most of the new syscalls are just an update to the existing
    native ones with this new type. Hence, put this new type under
    an ifdef so that the architectures can define CONFIG_64BIT_TIME
    when they are ready to handle this switch.
    
    Cc: linux-arch@vger.kernel.org
    Signed-off-by: default avatarDeepa Dinamani <deepa.kernel@gmail.com>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Loading