diff options
Diffstat (limited to 'arch/s390/include/asm/compat.h')
| -rw-r--r-- | arch/s390/include/asm/compat.h | 57 | 
1 files changed, 44 insertions, 13 deletions
diff --git a/arch/s390/include/asm/compat.h b/arch/s390/include/asm/compat.h index f8c6df6cd1f..c1e7c646727 100644 --- a/arch/s390/include/asm/compat.h +++ b/arch/s390/include/asm/compat.h @@ -70,6 +70,22 @@ typedef u32		compat_ulong_t;  typedef u64		compat_u64;  typedef u32		compat_uptr_t; +typedef struct { +	u32 mask; +	u32 addr; +} __aligned(8) psw_compat_t; + +typedef struct { +	psw_compat_t psw; +	u32 gprs[NUM_GPRS]; +	u32 acrs[NUM_ACRS]; +	u32 orig_gpr2; +} s390_compat_regs; + +typedef struct { +	u32 gprs_high[NUM_GPRS]; +} s390_compat_regs_high; +  struct compat_timespec {  	compat_time_t	tv_sec;  	s32		tv_nsec; @@ -124,18 +140,33 @@ struct compat_flock64 {  };  struct compat_statfs { -	s32		f_type; -	s32		f_bsize; -	s32		f_blocks; -	s32		f_bfree; -	s32		f_bavail; -	s32		f_files; -	s32		f_ffree; +	u32		f_type; +	u32		f_bsize; +	u32		f_blocks; +	u32		f_bfree; +	u32		f_bavail; +	u32		f_files; +	u32		f_ffree; +	compat_fsid_t	f_fsid; +	u32		f_namelen; +	u32		f_frsize; +	u32		f_flags; +	u32		f_spare[4]; +}; + +struct compat_statfs64 { +	u32		f_type; +	u32		f_bsize; +	u64		f_blocks; +	u64		f_bfree; +	u64		f_bavail; +	u64		f_files; +	u64		f_ffree;  	compat_fsid_t	f_fsid; -	s32		f_namelen; -	s32		f_frsize; -	s32		f_flags; -	s32		f_spare[5]; +	u32		f_namelen; +	u32		f_frsize; +	u32		f_flags; +	u32		f_spare[4];  };  #define COMPAT_RLIM_OLD_INFINITY	0x7fffffff @@ -248,8 +279,6 @@ static inline int is_compat_task(void)  	return is_32bit_task();  } -#endif -  static inline void __user *arch_compat_alloc_user_space(long len)  {  	unsigned long stack; @@ -260,6 +289,8 @@ static inline void __user *arch_compat_alloc_user_space(long len)  	return (void __user *) (stack - len);  } +#endif +  struct compat_ipc64_perm {  	compat_key_t key;  	__compat_uid32_t uid;  |