diff options
Diffstat (limited to 'kernel/sys.c')
| -rw-r--r-- | kernel/sys.c | 70 | 
1 files changed, 36 insertions, 34 deletions
| diff --git a/kernel/sys.c b/kernel/sys.c index 763c3c17ded3..e7dc0e10a485 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -143,7 +143,7 @@ out:  	return error;  } -asmlinkage long sys_setpriority(int which, int who, int niceval) +SYSCALL_DEFINE3(setpriority, int, which, int, who, int, niceval)  {  	struct task_struct *g, *p;  	struct user_struct *user; @@ -208,7 +208,7 @@ out:   * has been offset by 20 (ie it returns 40..1 instead of -20..19)   * to stay compatible.   */ -asmlinkage long sys_getpriority(int which, int who) +SYSCALL_DEFINE2(getpriority, int, which, int, who)  {  	struct task_struct *g, *p;  	struct user_struct *user; @@ -355,7 +355,8 @@ EXPORT_SYMBOL_GPL(kernel_power_off);   *   * reboot doesn't sync: do that yourself before calling this.   */ -asmlinkage long sys_reboot(int magic1, int magic2, unsigned int cmd, void __user * arg) +SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, +		void __user *, arg)  {  	char buffer[256]; @@ -478,7 +479,7 @@ void ctrl_alt_del(void)   * SMP: There are not races, the GIDs are checked only by filesystem   *      operations (as far as semantic preservation is concerned).   */ -asmlinkage long sys_setregid(gid_t rgid, gid_t egid) +SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)  {  	const struct cred *old;  	struct cred *new; @@ -529,7 +530,7 @@ error:   *   * SMP: Same implicit races as above.   */ -asmlinkage long sys_setgid(gid_t gid) +SYSCALL_DEFINE1(setgid, gid_t, gid)  {  	const struct cred *old;  	struct cred *new; @@ -597,7 +598,7 @@ static int set_user(struct cred *new)   * 100% compatible with BSD.  A program which uses just setuid() will be   * 100% compatible with POSIX with saved IDs.    */ -asmlinkage long sys_setreuid(uid_t ruid, uid_t euid) +SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)  {  	const struct cred *old;  	struct cred *new; @@ -661,7 +662,7 @@ error:   * will allow a root program to temporarily drop privileges and be able to   * regain them by swapping the real and effective uid.     */ -asmlinkage long sys_setuid(uid_t uid) +SYSCALL_DEFINE1(setuid, uid_t, uid)  {  	const struct cred *old;  	struct cred *new; @@ -705,7 +706,7 @@ error:   * This function implements a generic ability to update ruid, euid,   * and suid.  This allows you to implement the 4.4 compatible seteuid().   */ -asmlinkage long sys_setresuid(uid_t ruid, uid_t euid, uid_t suid) +SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)  {  	const struct cred *old;  	struct cred *new; @@ -756,7 +757,7 @@ error:  	return retval;  } -asmlinkage long sys_getresuid(uid_t __user *ruid, uid_t __user *euid, uid_t __user *suid) +SYSCALL_DEFINE3(getresuid, uid_t __user *, ruid, uid_t __user *, euid, uid_t __user *, suid)  {  	const struct cred *cred = current_cred();  	int retval; @@ -771,7 +772,7 @@ asmlinkage long sys_getresuid(uid_t __user *ruid, uid_t __user *euid, uid_t __us  /*   * Same as above, but for rgid, egid, sgid.   */ -asmlinkage long sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid) +SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)  {  	const struct cred *old;  	struct cred *new; @@ -814,7 +815,7 @@ error:  	return retval;  } -asmlinkage long sys_getresgid(gid_t __user *rgid, gid_t __user *egid, gid_t __user *sgid) +SYSCALL_DEFINE3(getresgid, gid_t __user *, rgid, gid_t __user *, egid, gid_t __user *, sgid)  {  	const struct cred *cred = current_cred();  	int retval; @@ -833,7 +834,7 @@ asmlinkage long sys_getresgid(gid_t __user *rgid, gid_t __user *egid, gid_t __us   * whatever uid it wants to). It normally shadows "euid", except when   * explicitly set by setfsuid() or for access..   */ -asmlinkage long sys_setfsuid(uid_t uid) +SYSCALL_DEFINE1(setfsuid, uid_t, uid)  {  	const struct cred *old;  	struct cred *new; @@ -870,7 +871,7 @@ change_okay:  /*   * Samma på svenska..   */ -asmlinkage long sys_setfsgid(gid_t gid) +SYSCALL_DEFINE1(setfsgid, gid_t, gid)  {  	const struct cred *old;  	struct cred *new; @@ -919,7 +920,7 @@ void do_sys_times(struct tms *tms)  	tms->tms_cstime = cputime_to_clock_t(cstime);  } -asmlinkage long sys_times(struct tms __user * tbuf) +SYSCALL_DEFINE1(times, struct tms __user *, tbuf)  {  	if (tbuf) {  		struct tms tmp; @@ -944,7 +945,7 @@ asmlinkage long sys_times(struct tms __user * tbuf)   * Auch. Had to add the 'did_exec' flag to conform completely to POSIX.   * LBT 04.03.94   */ -asmlinkage long sys_setpgid(pid_t pid, pid_t pgid) +SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid)  {  	struct task_struct *p;  	struct task_struct *group_leader = current->group_leader; @@ -1015,7 +1016,7 @@ out:  	return err;  } -asmlinkage long sys_getpgid(pid_t pid) +SYSCALL_DEFINE1(getpgid, pid_t, pid)  {  	struct task_struct *p;  	struct pid *grp; @@ -1045,14 +1046,14 @@ out:  #ifdef __ARCH_WANT_SYS_GETPGRP -asmlinkage long sys_getpgrp(void) +SYSCALL_DEFINE0(getpgrp)  {  	return sys_getpgid(0);  }  #endif -asmlinkage long sys_getsid(pid_t pid) +SYSCALL_DEFINE1(getsid, pid_t, pid)  {  	struct task_struct *p;  	struct pid *sid; @@ -1080,7 +1081,7 @@ out:  	return retval;  } -asmlinkage long sys_setsid(void) +SYSCALL_DEFINE0(setsid)  {  	struct task_struct *group_leader = current->group_leader;  	struct pid *sid = task_pid(group_leader); @@ -1311,7 +1312,7 @@ int set_current_groups(struct group_info *group_info)  EXPORT_SYMBOL(set_current_groups); -asmlinkage long sys_getgroups(int gidsetsize, gid_t __user *grouplist) +SYSCALL_DEFINE2(getgroups, int, gidsetsize, gid_t __user *, grouplist)  {  	const struct cred *cred = current_cred();  	int i; @@ -1340,7 +1341,7 @@ out:   *	without another task interfering.   */ -asmlinkage long sys_setgroups(int gidsetsize, gid_t __user *grouplist) +SYSCALL_DEFINE2(setgroups, int, gidsetsize, gid_t __user *, grouplist)  {  	struct group_info *group_info;  	int retval; @@ -1394,7 +1395,7 @@ EXPORT_SYMBOL(in_egroup_p);  DECLARE_RWSEM(uts_sem); -asmlinkage long sys_newuname(struct new_utsname __user * name) +SYSCALL_DEFINE1(newuname, struct new_utsname __user *, name)  {  	int errno = 0; @@ -1405,7 +1406,7 @@ asmlinkage long sys_newuname(struct new_utsname __user * name)  	return errno;  } -asmlinkage long sys_sethostname(char __user *name, int len) +SYSCALL_DEFINE2(sethostname, char __user *, name, int, len)  {  	int errno;  	char tmp[__NEW_UTS_LEN]; @@ -1429,7 +1430,7 @@ asmlinkage long sys_sethostname(char __user *name, int len)  #ifdef __ARCH_WANT_SYS_GETHOSTNAME -asmlinkage long sys_gethostname(char __user *name, int len) +SYSCALL_DEFINE2(gethostname, char __user *, name, int, len)  {  	int i, errno;  	struct new_utsname *u; @@ -1454,7 +1455,7 @@ asmlinkage long sys_gethostname(char __user *name, int len)   * Only setdomainname; getdomainname can be implemented by calling   * uname()   */ -asmlinkage long sys_setdomainname(char __user *name, int len) +SYSCALL_DEFINE2(setdomainname, char __user *, name, int, len)  {  	int errno;  	char tmp[__NEW_UTS_LEN]; @@ -1477,7 +1478,7 @@ asmlinkage long sys_setdomainname(char __user *name, int len)  	return errno;  } -asmlinkage long sys_getrlimit(unsigned int resource, struct rlimit __user *rlim) +SYSCALL_DEFINE2(getrlimit, unsigned int, resource, struct rlimit __user *, rlim)  {  	if (resource >= RLIM_NLIMITS)  		return -EINVAL; @@ -1496,7 +1497,8 @@ asmlinkage long sys_getrlimit(unsigned int resource, struct rlimit __user *rlim)   *	Back compatibility for getrlimit. Needed for some apps.   */ -asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *rlim) +SYSCALL_DEFINE2(old_getrlimit, unsigned int, resource, +		struct rlimit __user *, rlim)  {  	struct rlimit x;  	if (resource >= RLIM_NLIMITS) @@ -1514,7 +1516,7 @@ asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *r  #endif -asmlinkage long sys_setrlimit(unsigned int resource, struct rlimit __user *rlim) +SYSCALL_DEFINE2(setrlimit, unsigned int, resource, struct rlimit __user *, rlim)  {  	struct rlimit new_rlim, *old_rlim;  	int retval; @@ -1687,7 +1689,7 @@ int getrusage(struct task_struct *p, int who, struct rusage __user *ru)  	return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0;  } -asmlinkage long sys_getrusage(int who, struct rusage __user *ru) +SYSCALL_DEFINE2(getrusage, int, who, struct rusage __user *, ru)  {  	if (who != RUSAGE_SELF && who != RUSAGE_CHILDREN &&  	    who != RUSAGE_THREAD) @@ -1695,14 +1697,14 @@ asmlinkage long sys_getrusage(int who, struct rusage __user *ru)  	return getrusage(current, who, ru);  } -asmlinkage long sys_umask(int mask) +SYSCALL_DEFINE1(umask, int, mask)  {  	mask = xchg(¤t->fs->umask, mask & S_IRWXUGO);  	return mask;  } -asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3, -			  unsigned long arg4, unsigned long arg5) +SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, +		unsigned long, arg4, unsigned long, arg5)  {  	struct task_struct *me = current;  	unsigned char comm[sizeof(me->comm)]; @@ -1815,8 +1817,8 @@ asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3,  	return error;  } -asmlinkage long sys_getcpu(unsigned __user *cpup, unsigned __user *nodep, -			   struct getcpu_cache __user *unused) +SYSCALL_DEFINE3(getcpu, unsigned __user *, cpup, unsigned __user *, nodep, +		struct getcpu_cache __user *, unused)  {  	int err = 0;  	int cpu = raw_smp_processor_id(); | 
