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>
This commit is contained in:
@@ -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
|
||||
|
||||
|
Reference in New Issue
Block a user