diff options
author | Arnd Bergmann <arnd@arndb.de> | 2019-01-02 13:28:47 +0100 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2019-02-07 00:13:27 +0100 |
commit | 4d5f007eedb74d71a7bde2bff69b6a31ad8ab427 (patch) | |
tree | 9704984d9137621c8bdbba2e1c86018e5d3c755f /include/linux/time32.h | |
parent | 805089c2f77047d81f47ddc227435d606ceb180e (diff) | |
download | linux-4d5f007eedb74d71a7bde2bff69b6a31ad8ab427.tar.gz linux-4d5f007eedb74d71a7bde2bff69b6a31ad8ab427.tar.bz2 linux-4d5f007eedb74d71a7bde2bff69b6a31ad8ab427.zip |
time: make adjtime compat handling available for 32 bit
We want to reuse the compat_timex handling on 32-bit architectures the
same way we are using the compat handling for timespec when moving to
64-bit time_t.
Move all definitions related to compat_timex out of the compat code
into the normal timekeeping code, along with a rename to old_timex32,
corresponding to the timespec/timeval structures, and make it controlled
by CONFIG_COMPAT_32BIT_TIME, which 32-bit architectures will then select.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'include/linux/time32.h')
-rw-r--r-- | include/linux/time32.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/include/linux/time32.h b/include/linux/time32.h index 118b9977080c..820a22e2b98b 100644 --- a/include/linux/time32.h +++ b/include/linux/time32.h @@ -10,6 +10,7 @@ */ #include <linux/time64.h> +#include <linux/timex.h> #define TIME_T_MAX (time_t)((1UL << ((sizeof(time_t) << 3) - 1)) - 1) @@ -35,13 +36,42 @@ struct old_utimbuf32 { old_time32_t modtime; }; +struct old_timex32 { + u32 modes; + s32 offset; + s32 freq; + s32 maxerror; + s32 esterror; + s32 status; + s32 constant; + s32 precision; + s32 tolerance; + struct old_timeval32 time; + s32 tick; + s32 ppsfreq; + s32 jitter; + s32 shift; + s32 stabil; + s32 jitcnt; + s32 calcnt; + s32 errcnt; + s32 stbcnt; + s32 tai; + + s32:32; s32:32; s32:32; s32:32; + s32:32; s32:32; s32:32; s32:32; + s32:32; s32:32; s32:32; +}; + extern int get_old_timespec32(struct timespec64 *, const void __user *); extern int put_old_timespec32(const struct timespec64 *, void __user *); extern int get_old_itimerspec32(struct itimerspec64 *its, const struct old_itimerspec32 __user *uits); extern int put_old_itimerspec32(const struct itimerspec64 *its, struct old_itimerspec32 __user *uits); - +struct timex; +int get_old_timex32(struct timex *, const struct old_timex32 __user *); +int put_old_timex32(struct old_timex32 __user *, const struct timex *); #if __BITS_PER_LONG == 64 |