Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52a0b536 authored by Heiko Carstens's avatar Heiko Carstens
Browse files

s390/compat: convert to COMPAT_SYSCALL_DEFINEx part 5

parent e723e0cc
Loading
Loading
Loading
Loading
+11 −14
Original line number Diff line number Diff line
@@ -304,33 +304,30 @@ COMPAT_SYSCALL_DEFINE3(s390_truncate64, const char __user *, path, u32, high, u3
	return sys_truncate(path, (unsigned long)high << 32 | low);
}

asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low)
COMPAT_SYSCALL_DEFINE3(s390_ftruncate64, unsigned int, fd, u32, high, u32, low)
{
	if ((int)high < 0)
		return -EINVAL;
	else
		return sys_ftruncate(fd, (high << 32) | low);
	return sys_ftruncate(fd, (unsigned long)high << 32 | low);
}

asmlinkage long sys32_pread64(unsigned int fd, char __user *ubuf,
				size_t count, u32 poshi, u32 poslo)
COMPAT_SYSCALL_DEFINE5(s390_pread64, unsigned int, fd, char __user *, ubuf,
		       compat_size_t, count, u32, high, u32, low)
{
	if ((compat_ssize_t) count < 0)
		return -EINVAL;
	return sys_pread64(fd, ubuf, count, ((loff_t)AA(poshi) << 32) | AA(poslo));
	return sys_pread64(fd, ubuf, count, (unsigned long)high << 32 | low);
}

asmlinkage long sys32_pwrite64(unsigned int fd, const char __user *ubuf,
				size_t count, u32 poshi, u32 poslo)
COMPAT_SYSCALL_DEFINE5(s390_pwrite64, unsigned int, fd, const char __user *, ubuf,
		       compat_size_t, count, u32, high, u32, low)
{
	if ((compat_ssize_t) count < 0)
		return -EINVAL;
	return sys_pwrite64(fd, ubuf, count, ((loff_t)AA(poshi) << 32) | AA(poslo));
	return sys_pwrite64(fd, ubuf, count, (unsigned long)high << 32 | low);
}

asmlinkage compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 count)
COMPAT_SYSCALL_DEFINE4(s390_readahead, int, fd, u32, high, u32, low, s32, count)
{
	return sys_readahead(fd, ((loff_t)AA(offhi) << 32) | AA(offlo), count);
	return sys_readahead(fd, (unsigned long)high << 32 | low, count);
}

struct stat64_emu31 {
@@ -382,7 +379,7 @@ static int cp_stat64(struct stat64_emu31 __user *ubuf, struct kstat *stat)
	return copy_to_user(ubuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; 
}

asmlinkage long sys32_stat64(const char __user * filename, struct stat64_emu31 __user * statbuf)
COMPAT_SYSCALL_DEFINE2(s390_stat64, const char __user *, filename, struct stat64_emu31 __user *, statbuf)
{
	struct kstat stat;
	int ret = vfs_stat(filename, &stat);
+5 −7
Original line number Diff line number Diff line
@@ -96,16 +96,14 @@ long compat_sys_s390_geteuid16(void);
long compat_sys_s390_getgid16(void);
long compat_sys_s390_getegid16(void);
long compat_sys_s390_truncate64(const char __user *path, u32 high, u32 low);
long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low);
long compat_sys_s390_ftruncate64(unsigned int fd, u32 high, u32 low);
long sys32_init_module(void __user *umod, unsigned long len,
		       const char __user *uargs);
long sys32_delete_module(const char __user *name_user, unsigned int flags);
long sys32_pread64(unsigned int fd, char __user *ubuf, size_t count,
		   u32 poshi, u32 poslo);
long sys32_pwrite64(unsigned int fd, const char __user *ubuf,
		    size_t count, u32 poshi, u32 poslo);
compat_ssize_t sys32_readahead(int fd, u32 offhi, u32 offlo, s32 count);
long sys32_stat64(const char __user * filename, struct stat64_emu31 __user * statbuf);
long compat_sys_s390_pread64(unsigned int fd, char __user *ubuf, compat_size_t count, u32 high, u32 low);
long compat_sys_s390_pwrite64(unsigned int fd, const char __user *ubuf, compat_size_t count, u32 high, u32 low);
long compat_sys_s390_readahead(int fd, u32 high, u32 low, s32 count);
long compat_sys_s390_stat64(const char __user *filename, struct stat64_emu31 __user *statbuf);
long sys32_lstat64(const char __user * filename,
		   struct stat64_emu31 __user * statbuf);
long sys32_fstat64(unsigned long fd, struct stat64_emu31 __user * statbuf);
+0 −34
Original line number Diff line number Diff line
@@ -536,22 +536,6 @@ ENTRY(sys32_prctl_wrapper)

#sys32_rt_sigreturn_wrapper		# done in rt_sigreturn_glue

ENTRY(sys32_pread64_wrapper)
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# char *
	llgfr	%r4,%r4			# size_t
	llgfr	%r5,%r5			# u32
	llgfr	%r6,%r6			# u32
	jg	sys32_pread64		# branch to system call

ENTRY(sys32_pwrite64_wrapper)
	llgfr	%r2,%r2			# unsigned int
	llgtr	%r3,%r3			# const char *
	llgfr	%r4,%r4			# size_t
	llgfr	%r5,%r5			# u32
	llgfr	%r6,%r6			# u32
	jg	sys32_pwrite64		# branch to system call

ENTRY(sys32_getcwd_wrapper)
	llgtr	%r2,%r2			# char *
	llgfr	%r3,%r3			# unsigned long
@@ -569,12 +553,6 @@ ENTRY(sys32_capset_wrapper)

#sys32_vfork_wrapper			# done in vfork_glue

ENTRY(sys32_ftruncate64_wrapper)
	llgfr	%r2,%r2			# unsigned int
	llgfr	%r3,%r3			# unsigned long
	llgfr	%r4,%r4			# unsigned long
	jg	sys32_ftruncate64	# branch to system call

ENTRY(sys32_lchown_wrapper)
	llgtr	%r2,%r2			# const char *
	llgfr	%r3,%r3			# uid_t
@@ -687,11 +665,6 @@ ENTRY(compat_sys_fcntl64_wrapper)
	llgfr	%r4,%r4			# unsigned long
	jg	compat_sys_fcntl64	# branch to system call

ENTRY(sys32_stat64_wrapper)
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# struct stat64 *
	jg	sys32_stat64		# branch to system call

ENTRY(sys32_lstat64_wrapper)
	llgtr	%r2,%r2			# char *
	llgtr	%r3,%r3			# struct stat64 *
@@ -1201,13 +1174,6 @@ ENTRY(sys_epoll_create1_wrapper)
	lgfr	%r2,%r2			# int
	jg	sys_epoll_create1	# branch to system call

ENTRY(sys32_readahead_wrapper)
	lgfr	%r2,%r2			# int
	llgfr	%r3,%r3			# u32
	llgfr	%r4,%r4			# u32
	lgfr	%r5,%r5			# s32
	jg	sys32_readahead		# branch to system call

ENTRY(sys_tkill_wrapper)
	lgfr	%r2,%r2			# pid_t
	lgfr	%r3,%r3			# int
+5 −5
Original line number Diff line number Diff line
@@ -188,8 +188,8 @@ SYSCALL(sys_rt_sigpending,sys_rt_sigpending,compat_sys_rt_sigpending)
SYSCALL(sys_rt_sigtimedwait,sys_rt_sigtimedwait,compat_sys_rt_sigtimedwait)
SYSCALL(sys_rt_sigqueueinfo,sys_rt_sigqueueinfo,compat_sys_rt_sigqueueinfo)
SYSCALL(sys_rt_sigsuspend,sys_rt_sigsuspend,compat_sys_rt_sigsuspend)
SYSCALL(sys_pread64,sys_pread64,sys32_pread64_wrapper)		/* 180 */
SYSCALL(sys_pwrite64,sys_pwrite64,sys32_pwrite64_wrapper)
SYSCALL(sys_pread64,sys_pread64,compat_sys_s390_pread64)		/* 180 */
SYSCALL(sys_pwrite64,sys_pwrite64,compat_sys_s390_pwrite64)
SYSCALL(sys_chown16,sys_ni_syscall,compat_sys_s390_chown16)	/* old chown16 syscall */
SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper)
SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper)
@@ -202,8 +202,8 @@ SYSCALL(sys_vfork,sys_vfork,sys_vfork) /* 190 */
SYSCALL(sys_getrlimit,sys_getrlimit,compat_sys_getrlimit_wrapper)
SYSCALL(sys_mmap2,sys_mmap2,sys32_mmap2_wrapper)
SYSCALL(sys_truncate64,sys_ni_syscall,compat_sys_s390_truncate64)
SYSCALL(sys_ftruncate64,sys_ni_syscall,sys32_ftruncate64_wrapper)
SYSCALL(sys_stat64,sys_ni_syscall,sys32_stat64_wrapper)		/* 195 */
SYSCALL(sys_ftruncate64,sys_ni_syscall,compat_sys_s390_ftruncate64)
SYSCALL(sys_stat64,sys_ni_syscall,compat_sys_s390_stat64)		/* 195 */
SYSCALL(sys_lstat64,sys_ni_syscall,sys32_lstat64_wrapper)
SYSCALL(sys_fstat64,sys_ni_syscall,sys32_fstat64_wrapper)
SYSCALL(sys_lchown,sys_lchown,sys32_lchown_wrapper)
@@ -230,7 +230,7 @@ SYSCALL(sys_mincore,sys_mincore,sys32_mincore_wrapper)
SYSCALL(sys_madvise,sys_madvise,sys32_madvise_wrapper)
SYSCALL(sys_getdents64,sys_getdents64,sys32_getdents64_wrapper)	/* 220 */
SYSCALL(sys_fcntl64,sys_ni_syscall,compat_sys_fcntl64_wrapper)
SYSCALL(sys_readahead,sys_readahead,sys32_readahead_wrapper)
SYSCALL(sys_readahead,sys_readahead,compat_sys_s390_readahead)
SYSCALL(sys_sendfile64,sys_ni_syscall,compat_sys_sendfile64)
SYSCALL(sys_setxattr,sys_setxattr,sys32_setxattr_wrapper)
SYSCALL(sys_lsetxattr,sys_lsetxattr,sys32_lsetxattr_wrapper)	/* 225 */