diff options
Diffstat (limited to 'arch/mips/kernel/linux32.c')
| -rw-r--r-- | arch/mips/kernel/linux32.c | 69 | 
1 files changed, 39 insertions, 30 deletions
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c index aa2c55e3b55..2f8452b404c 100644 --- a/arch/mips/kernel/linux32.c +++ b/arch/mips/kernel/linux32.c @@ -32,6 +32,7 @@  #include <linux/module.h>  #include <linux/binfmts.h>  #include <linux/security.h> +#include <linux/syscalls.h>  #include <linux/compat.h>  #include <linux/vfs.h>  #include <linux/ipc.h> @@ -63,9 +64,9 @@  #define merge_64(r1, r2) ((((r2) & 0xffffffffUL) << 32) + ((r1) & 0xffffffffUL))  #endif -asmlinkage unsigned long -sys32_mmap2(unsigned long addr, unsigned long len, unsigned long prot, -         unsigned long flags, unsigned long fd, unsigned long pgoff) +SYSCALL_DEFINE6(32_mmap2, unsigned long, addr, unsigned long, len, +	unsigned long, prot, unsigned long, flags, unsigned long, fd, +	unsigned long, pgoff)  {  	struct file * file = NULL;  	unsigned long error; @@ -121,21 +122,21 @@ struct rlimit32 {  	int	rlim_max;  }; -asmlinkage long sys32_truncate64(const char __user * path, -	unsigned long __dummy, int a2, int a3) +SYSCALL_DEFINE4(32_truncate64, const char __user *, path, +	unsigned long, __dummy, unsigned long, a2, unsigned long, a3)  {  	return sys_truncate(path, merge_64(a2, a3));  } -asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long __dummy, -	int a2, int a3) +SYSCALL_DEFINE4(32_ftruncate64, unsigned long, fd, unsigned long, __dummy, +	unsigned long, a2, unsigned long, a3)  {  	return sys_ftruncate(fd, merge_64(a2, a3));  } -asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high, -			    unsigned int offset_low, loff_t __user * result, -			    unsigned int origin) +SYSCALL_DEFINE5(32_llseek, unsigned long, fd, unsigned long, offset_high, +	unsigned long, offset_low, loff_t __user *, result, +	unsigned long, origin)  {  	return sys_llseek(fd, offset_high, offset_low, result, origin);  } @@ -144,20 +145,20 @@ asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high,     lseek back to original location.  They fail just like lseek does on     non-seekable files.  */ -asmlinkage ssize_t sys32_pread(unsigned int fd, char __user * buf, -			       size_t count, u32 unused, u64 a4, u64 a5) +SYSCALL_DEFINE6(32_pread, unsigned long, fd, char __user *, buf, size_t, count, +	unsigned long, unused, unsigned long, a4, unsigned long, a5)  {  	return sys_pread64(fd, buf, count, merge_64(a4, a5));  } -asmlinkage ssize_t sys32_pwrite(unsigned int fd, const char __user * buf, -			        size_t count, u32 unused, u64 a4, u64 a5) +SYSCALL_DEFINE6(32_pwrite, unsigned int, fd, const char __user *, buf, +	size_t, count, u32, unused, u64, a4, u64, a5)  {  	return sys_pwrite64(fd, buf, count, merge_64(a4, a5));  } -asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid, -	struct compat_timespec __user *interval) +SYSCALL_DEFINE2(32_sched_rr_get_interval, compat_pid_t, pid, +	struct compat_timespec __user *, interval)  {  	struct timespec t;  	int ret; @@ -174,8 +175,8 @@ asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid,  #ifdef CONFIG_SYSVIPC -asmlinkage long -sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth) +SYSCALL_DEFINE6(32_ipc, u32, call, long, first, long, second, long, third, +	unsigned long, ptr, unsigned long, fifth)  {  	int version, err; @@ -233,8 +234,8 @@ sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth)  #else -asmlinkage long -sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth) +SYSCALL_DEFINE6(32_ipc, u32, call, int, first, int, second, int, third, +	u32, ptr, u32 fifth)  {  	return -ENOSYS;  } @@ -242,7 +243,7 @@ sys32_ipc(u32 call, int first, int second, int third, u32 ptr, u32 fifth)  #endif /* CONFIG_SYSVIPC */  #ifdef CONFIG_MIPS32_N32 -asmlinkage long sysn32_semctl(int semid, int semnum, int cmd, u32 arg) +SYSCALL_DEFINE4(n32_semctl, int, semid, int, semnum, int, cmd, u32, arg)  {  	/* compat_sys_semctl expects a pointer to union semun */  	u32 __user *uptr = compat_alloc_user_space(sizeof(u32)); @@ -251,13 +252,14 @@ asmlinkage long sysn32_semctl(int semid, int semnum, int cmd, u32 arg)  	return compat_sys_semctl(semid, semnum, cmd, uptr);  } -asmlinkage long sysn32_msgsnd(int msqid, u32 msgp, unsigned msgsz, int msgflg) +SYSCALL_DEFINE4(n32_msgsnd, int, msqid, u32, msgp, unsigned int, msgsz, +	int, msgflg)  {  	return compat_sys_msgsnd(msqid, msgsz, msgflg, compat_ptr(msgp));  } -asmlinkage long sysn32_msgrcv(int msqid, u32 msgp, size_t msgsz, int msgtyp, -			      int msgflg) +SYSCALL_DEFINE5(n32_msgrcv, int, msqid, u32, msgp, size_t, msgsz, +	int, msgtyp, int, msgflg)  {  	return compat_sys_msgrcv(msqid, msgsz, msgtyp, msgflg, IPC_64,  				 compat_ptr(msgp)); @@ -277,7 +279,7 @@ struct sysctl_args32  #ifdef CONFIG_SYSCTL_SYSCALL -asmlinkage long sys32_sysctl(struct sysctl_args32 __user *args) +SYSCALL_DEFINE1(32_sysctl, struct sysctl_args32 __user *, args)  {  	struct sysctl_args32 tmp;  	int error; @@ -316,9 +318,16 @@ asmlinkage long sys32_sysctl(struct sysctl_args32 __user *args)  	return error;  } +#else + +SYSCALL_DEFINE1(32_sysctl, struct sysctl_args32 __user *, args) +{ +	return -ENOSYS; +} +  #endif /* CONFIG_SYSCTL_SYSCALL */ -asmlinkage long sys32_newuname(struct new_utsname __user * name) +SYSCALL_DEFINE1(32_newuname, struct new_utsname __user *, name)  {  	int ret = 0; @@ -334,7 +343,7 @@ asmlinkage long sys32_newuname(struct new_utsname __user * name)  	return ret;  } -asmlinkage int sys32_personality(unsigned long personality) +SYSCALL_DEFINE1(32_personality, unsigned long, personality)  {  	int ret;  	personality &= 0xffffffff; @@ -357,7 +366,7 @@ struct ustat32 {  extern asmlinkage long sys_ustat(dev_t dev, struct ustat __user * ubuf); -asmlinkage int sys32_ustat(dev_t dev, struct ustat32 __user * ubuf32) +SYSCALL_DEFINE2(32_ustat, dev_t, dev, struct ustat32 __user *, ubuf32)  {  	int err;  	struct ustat tmp; @@ -381,8 +390,8 @@ out:  	return err;  } -asmlinkage int sys32_sendfile(int out_fd, int in_fd, compat_off_t __user *offset, -	s32 count) +SYSCALL_DEFINE4(32_sendfile, long, out_fd, long, in_fd, +	compat_off_t __user *, offset, s32, count)  {  	mm_segment_t old_fs = get_fs();  	int ret;  |