mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 16:41:25 +00:00
Merge branch 'syscalls' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
* 'syscalls' of git://git390.osdl.marist.edu/pub/scm/linux-2.6: (44 commits) [CVE-2009-0029] s390 specific system call wrappers [CVE-2009-0029] System call wrappers part 33 [CVE-2009-0029] System call wrappers part 32 [CVE-2009-0029] System call wrappers part 31 [CVE-2009-0029] System call wrappers part 30 [CVE-2009-0029] System call wrappers part 29 [CVE-2009-0029] System call wrappers part 28 [CVE-2009-0029] System call wrappers part 27 [CVE-2009-0029] System call wrappers part 26 [CVE-2009-0029] System call wrappers part 25 [CVE-2009-0029] System call wrappers part 24 [CVE-2009-0029] System call wrappers part 23 [CVE-2009-0029] System call wrappers part 22 [CVE-2009-0029] System call wrappers part 21 [CVE-2009-0029] System call wrappers part 20 [CVE-2009-0029] System call wrappers part 19 [CVE-2009-0029] System call wrappers part 18 [CVE-2009-0029] System call wrappers part 17 [CVE-2009-0029] System call wrappers part 16 [CVE-2009-0029] System call wrappers part 15 ...
This commit is contained in:
commit
bca268565f
108 changed files with 810 additions and 659 deletions
|
@ -277,7 +277,7 @@ static int acct_on(char *name)
|
|||
* should be written. If the filename is NULL, accounting will be
|
||||
* shutdown.
|
||||
*/
|
||||
asmlinkage long sys_acct(const char __user *name)
|
||||
SYSCALL_DEFINE1(acct, const char __user *, name)
|
||||
{
|
||||
int error;
|
||||
|
||||
|
|
|
@ -161,7 +161,7 @@ static inline int cap_get_target_pid(pid_t pid, kernel_cap_t *pEp,
|
|||
*
|
||||
* Returns 0 on success and < 0 on error.
|
||||
*/
|
||||
asmlinkage long sys_capget(cap_user_header_t header, cap_user_data_t dataptr)
|
||||
SYSCALL_DEFINE2(capget, cap_user_header_t, header, cap_user_data_t, dataptr)
|
||||
{
|
||||
int ret = 0;
|
||||
pid_t pid;
|
||||
|
@ -235,7 +235,7 @@ asmlinkage long sys_capget(cap_user_header_t header, cap_user_data_t dataptr)
|
|||
*
|
||||
* Returns 0 on success and < 0 on error.
|
||||
*/
|
||||
asmlinkage long sys_capset(cap_user_header_t header, const cap_user_data_t data)
|
||||
SYSCALL_DEFINE2(capset, cap_user_header_t, header, const cap_user_data_t, data)
|
||||
{
|
||||
struct __user_cap_data_struct kdata[_KERNEL_CAPABILITY_U32S];
|
||||
unsigned i, tocopy;
|
||||
|
|
|
@ -209,8 +209,7 @@ static int __init proc_execdomains_init(void)
|
|||
module_init(proc_execdomains_init);
|
||||
#endif
|
||||
|
||||
asmlinkage long
|
||||
sys_personality(u_long personality)
|
||||
SYSCALL_DEFINE1(personality, u_long, personality)
|
||||
{
|
||||
u_long old = current->personality;
|
||||
|
||||
|
|
|
@ -1141,7 +1141,7 @@ NORET_TYPE void complete_and_exit(struct completion *comp, long code)
|
|||
|
||||
EXPORT_SYMBOL(complete_and_exit);
|
||||
|
||||
asmlinkage long sys_exit(int error_code)
|
||||
SYSCALL_DEFINE1(exit, int, error_code)
|
||||
{
|
||||
do_exit((error_code&0xff)<<8);
|
||||
}
|
||||
|
@ -1182,9 +1182,11 @@ do_group_exit(int exit_code)
|
|||
* wait4()-ing process will get the correct exit code - even if this
|
||||
* thread is not the thread group leader.
|
||||
*/
|
||||
asmlinkage void sys_exit_group(int error_code)
|
||||
SYSCALL_DEFINE1(exit_group, int, error_code)
|
||||
{
|
||||
do_group_exit((error_code & 0xff) << 8);
|
||||
/* NOTREACHED */
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct pid *task_pid_type(struct task_struct *task, enum pid_type type)
|
||||
|
@ -1752,9 +1754,8 @@ end:
|
|||
return retval;
|
||||
}
|
||||
|
||||
asmlinkage long sys_waitid(int which, pid_t upid,
|
||||
struct siginfo __user *infop, int options,
|
||||
struct rusage __user *ru)
|
||||
SYSCALL_DEFINE5(waitid, int, which, pid_t, upid, struct siginfo __user *,
|
||||
infop, int, options, struct rusage __user *, ru)
|
||||
{
|
||||
struct pid *pid = NULL;
|
||||
enum pid_type type;
|
||||
|
@ -1793,8 +1794,8 @@ asmlinkage long sys_waitid(int which, pid_t upid,
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long sys_wait4(pid_t upid, int __user *stat_addr,
|
||||
int options, struct rusage __user *ru)
|
||||
SYSCALL_DEFINE4(wait4, pid_t, upid, int __user *, stat_addr,
|
||||
int, options, struct rusage __user *, ru)
|
||||
{
|
||||
struct pid *pid = NULL;
|
||||
enum pid_type type;
|
||||
|
@ -1831,7 +1832,7 @@ asmlinkage long sys_wait4(pid_t upid, int __user *stat_addr,
|
|||
* sys_waitpid() remains for compatibility. waitpid() should be
|
||||
* implemented by calling sys_wait4() from libc.a.
|
||||
*/
|
||||
asmlinkage long sys_waitpid(pid_t pid, int __user *stat_addr, int options)
|
||||
SYSCALL_DEFINE3(waitpid, pid_t, pid, int __user *, stat_addr, int, options)
|
||||
{
|
||||
return sys_wait4(pid, stat_addr, options, NULL);
|
||||
}
|
||||
|
|
|
@ -901,7 +901,7 @@ static void copy_flags(unsigned long clone_flags, struct task_struct *p)
|
|||
clear_freeze_flag(p);
|
||||
}
|
||||
|
||||
asmlinkage long sys_set_tid_address(int __user *tidptr)
|
||||
SYSCALL_DEFINE1(set_tid_address, int __user *, tidptr)
|
||||
{
|
||||
current->clear_child_tid = tidptr;
|
||||
|
||||
|
@ -1603,7 +1603,7 @@ static int unshare_fd(unsigned long unshare_flags, struct files_struct **new_fdp
|
|||
* constructed. Here we are modifying the current, active,
|
||||
* task_struct.
|
||||
*/
|
||||
asmlinkage long sys_unshare(unsigned long unshare_flags)
|
||||
SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
|
||||
{
|
||||
int err = 0;
|
||||
struct fs_struct *fs, *new_fs = NULL;
|
||||
|
|
|
@ -1733,9 +1733,8 @@ pi_faulted:
|
|||
* @head: pointer to the list-head
|
||||
* @len: length of the list-head, as userspace expects
|
||||
*/
|
||||
asmlinkage long
|
||||
sys_set_robust_list(struct robust_list_head __user *head,
|
||||
size_t len)
|
||||
SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
|
||||
size_t, len)
|
||||
{
|
||||
if (!futex_cmpxchg_enabled)
|
||||
return -ENOSYS;
|
||||
|
@ -1756,9 +1755,9 @@ sys_set_robust_list(struct robust_list_head __user *head,
|
|||
* @head_ptr: pointer to a list-head pointer, the kernel fills it in
|
||||
* @len_ptr: pointer to a length field, the kernel fills in the header size
|
||||
*/
|
||||
asmlinkage long
|
||||
sys_get_robust_list(int pid, struct robust_list_head __user * __user *head_ptr,
|
||||
size_t __user *len_ptr)
|
||||
SYSCALL_DEFINE3(get_robust_list, int, pid,
|
||||
struct robust_list_head __user * __user *, head_ptr,
|
||||
size_t __user *, len_ptr)
|
||||
{
|
||||
struct robust_list_head __user *head;
|
||||
unsigned long ret;
|
||||
|
@ -1978,9 +1977,9 @@ long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout,
|
|||
}
|
||||
|
||||
|
||||
asmlinkage long sys_futex(u32 __user *uaddr, int op, u32 val,
|
||||
struct timespec __user *utime, u32 __user *uaddr2,
|
||||
u32 val3)
|
||||
SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
|
||||
struct timespec __user *, utime, u32 __user *, uaddr2,
|
||||
u32, val3)
|
||||
{
|
||||
struct timespec ts;
|
||||
ktime_t t, *tp = NULL;
|
||||
|
|
|
@ -1467,8 +1467,8 @@ out:
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long
|
||||
sys_nanosleep(struct timespec __user *rqtp, struct timespec __user *rmtp)
|
||||
SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
|
||||
struct timespec __user *, rmtp)
|
||||
{
|
||||
struct timespec tu;
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@ int do_getitimer(int which, struct itimerval *value)
|
|||
return 0;
|
||||
}
|
||||
|
||||
asmlinkage long sys_getitimer(int which, struct itimerval __user *value)
|
||||
SYSCALL_DEFINE2(getitimer, int, which, struct itimerval __user *, value)
|
||||
{
|
||||
int error = -EFAULT;
|
||||
struct itimerval get_buffer;
|
||||
|
@ -260,9 +260,8 @@ unsigned int alarm_setitimer(unsigned int seconds)
|
|||
return it_old.it_value.tv_sec;
|
||||
}
|
||||
|
||||
asmlinkage long sys_setitimer(int which,
|
||||
struct itimerval __user *value,
|
||||
struct itimerval __user *ovalue)
|
||||
SYSCALL_DEFINE3(setitimer, int, which, struct itimerval __user *, value,
|
||||
struct itimerval __user *, ovalue)
|
||||
{
|
||||
struct itimerval set_buffer, get_buffer;
|
||||
int error;
|
||||
|
|
|
@ -934,9 +934,8 @@ struct kimage *kexec_crash_image;
|
|||
|
||||
static DEFINE_MUTEX(kexec_mutex);
|
||||
|
||||
asmlinkage long sys_kexec_load(unsigned long entry, unsigned long nr_segments,
|
||||
struct kexec_segment __user *segments,
|
||||
unsigned long flags)
|
||||
SYSCALL_DEFINE4(kexec_load, unsigned long, entry, unsigned long, nr_segments,
|
||||
struct kexec_segment __user *, segments, unsigned long, flags)
|
||||
{
|
||||
struct kimage **dest_image, *image;
|
||||
int result;
|
||||
|
|
|
@ -743,8 +743,8 @@ static void wait_for_zero_refcount(struct module *mod)
|
|||
mutex_lock(&module_mutex);
|
||||
}
|
||||
|
||||
asmlinkage long
|
||||
sys_delete_module(const char __user *name_user, unsigned int flags)
|
||||
SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
|
||||
unsigned int, flags)
|
||||
{
|
||||
struct module *mod;
|
||||
char name[MODULE_NAME_LEN];
|
||||
|
@ -2296,10 +2296,8 @@ static noinline struct module *load_module(void __user *umod,
|
|||
}
|
||||
|
||||
/* This is where the real work happens */
|
||||
asmlinkage long
|
||||
sys_init_module(void __user *umod,
|
||||
unsigned long len,
|
||||
const char __user *uargs)
|
||||
SYSCALL_DEFINE3(init_module, void __user *, umod,
|
||||
unsigned long, len, const char __user *, uargs)
|
||||
{
|
||||
struct module *mod;
|
||||
int ret = 0;
|
||||
|
|
|
@ -477,10 +477,9 @@ static void release_posix_timer(struct k_itimer *tmr, int it_id_set)
|
|||
|
||||
/* Create a POSIX.1b interval timer. */
|
||||
|
||||
asmlinkage long
|
||||
sys_timer_create(const clockid_t which_clock,
|
||||
struct sigevent __user *timer_event_spec,
|
||||
timer_t __user * created_timer_id)
|
||||
SYSCALL_DEFINE3(timer_create, const clockid_t, which_clock,
|
||||
struct sigevent __user *, timer_event_spec,
|
||||
timer_t __user *, created_timer_id)
|
||||
{
|
||||
struct k_itimer *new_timer;
|
||||
int error, new_timer_id;
|
||||
|
@ -661,8 +660,8 @@ common_timer_get(struct k_itimer *timr, struct itimerspec *cur_setting)
|
|||
}
|
||||
|
||||
/* Get the time remaining on a POSIX.1b interval timer. */
|
||||
asmlinkage long
|
||||
sys_timer_gettime(timer_t timer_id, struct itimerspec __user *setting)
|
||||
SYSCALL_DEFINE2(timer_gettime, timer_t, timer_id,
|
||||
struct itimerspec __user *, setting)
|
||||
{
|
||||
struct k_itimer *timr;
|
||||
struct itimerspec cur_setting;
|
||||
|
@ -691,8 +690,7 @@ sys_timer_gettime(timer_t timer_id, struct itimerspec __user *setting)
|
|||
* the call back to do_schedule_next_timer(). So all we need to do is
|
||||
* to pick up the frozen overrun.
|
||||
*/
|
||||
asmlinkage long
|
||||
sys_timer_getoverrun(timer_t timer_id)
|
||||
SYSCALL_DEFINE1(timer_getoverrun, timer_t, timer_id)
|
||||
{
|
||||
struct k_itimer *timr;
|
||||
int overrun;
|
||||
|
@ -760,10 +758,9 @@ common_timer_set(struct k_itimer *timr, int flags,
|
|||
}
|
||||
|
||||
/* Set a POSIX.1b interval timer */
|
||||
asmlinkage long
|
||||
sys_timer_settime(timer_t timer_id, int flags,
|
||||
const struct itimerspec __user *new_setting,
|
||||
struct itimerspec __user *old_setting)
|
||||
SYSCALL_DEFINE4(timer_settime, timer_t, timer_id, int, flags,
|
||||
const struct itimerspec __user *, new_setting,
|
||||
struct itimerspec __user *, old_setting)
|
||||
{
|
||||
struct k_itimer *timr;
|
||||
struct itimerspec new_spec, old_spec;
|
||||
|
@ -816,8 +813,7 @@ static inline int timer_delete_hook(struct k_itimer *timer)
|
|||
}
|
||||
|
||||
/* Delete a POSIX.1b interval timer. */
|
||||
asmlinkage long
|
||||
sys_timer_delete(timer_t timer_id)
|
||||
SYSCALL_DEFINE1(timer_delete, timer_t, timer_id)
|
||||
{
|
||||
struct k_itimer *timer;
|
||||
unsigned long flags;
|
||||
|
@ -903,8 +899,8 @@ int do_posix_clock_nonanosleep(const clockid_t clock, int flags,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(do_posix_clock_nonanosleep);
|
||||
|
||||
asmlinkage long sys_clock_settime(const clockid_t which_clock,
|
||||
const struct timespec __user *tp)
|
||||
SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock,
|
||||
const struct timespec __user *, tp)
|
||||
{
|
||||
struct timespec new_tp;
|
||||
|
||||
|
@ -916,8 +912,8 @@ asmlinkage long sys_clock_settime(const clockid_t which_clock,
|
|||
return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp));
|
||||
}
|
||||
|
||||
asmlinkage long
|
||||
sys_clock_gettime(const clockid_t which_clock, struct timespec __user *tp)
|
||||
SYSCALL_DEFINE2(clock_gettime, const clockid_t, which_clock,
|
||||
struct timespec __user *,tp)
|
||||
{
|
||||
struct timespec kernel_tp;
|
||||
int error;
|
||||
|
@ -933,8 +929,8 @@ sys_clock_gettime(const clockid_t which_clock, struct timespec __user *tp)
|
|||
|
||||
}
|
||||
|
||||
asmlinkage long
|
||||
sys_clock_getres(const clockid_t which_clock, struct timespec __user *tp)
|
||||
SYSCALL_DEFINE2(clock_getres, const clockid_t, which_clock,
|
||||
struct timespec __user *, tp)
|
||||
{
|
||||
struct timespec rtn_tp;
|
||||
int error;
|
||||
|
@ -963,10 +959,9 @@ static int common_nsleep(const clockid_t which_clock, int flags,
|
|||
which_clock);
|
||||
}
|
||||
|
||||
asmlinkage long
|
||||
sys_clock_nanosleep(const clockid_t which_clock, int flags,
|
||||
const struct timespec __user *rqtp,
|
||||
struct timespec __user *rmtp)
|
||||
SYSCALL_DEFINE4(clock_nanosleep, const clockid_t, which_clock, int, flags,
|
||||
const struct timespec __user *, rqtp,
|
||||
struct timespec __user *, rmtp)
|
||||
{
|
||||
struct timespec t;
|
||||
|
||||
|
|
|
@ -382,7 +382,7 @@ out:
|
|||
return error;
|
||||
}
|
||||
|
||||
asmlinkage long sys_syslog(int type, char __user *buf, int len)
|
||||
SYSCALL_DEFINE3(syslog, int, type, char __user *, buf, int, len)
|
||||
{
|
||||
return do_syslog(type, buf, len);
|
||||
}
|
||||
|
@ -742,11 +742,6 @@ EXPORT_SYMBOL(vprintk);
|
|||
|
||||
#else
|
||||
|
||||
asmlinkage long sys_syslog(int type, char __user *buf, int len)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static void call_console_drivers(unsigned start, unsigned end)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -574,7 +574,7 @@ struct task_struct *ptrace_get_task_struct(pid_t pid)
|
|||
#define arch_ptrace_attach(child) do { } while (0)
|
||||
#endif
|
||||
|
||||
asmlinkage long sys_ptrace(long request, long pid, long addr, long data)
|
||||
SYSCALL_DEFINE4(ptrace, long, request, long, pid, long, addr, long, data)
|
||||
{
|
||||
struct task_struct *child;
|
||||
long ret;
|
||||
|
|
|
@ -5126,7 +5126,7 @@ int can_nice(const struct task_struct *p, const int nice)
|
|||
* sys_setpriority is a more generic, but much slower function that
|
||||
* does similar things.
|
||||
*/
|
||||
asmlinkage long sys_nice(int increment)
|
||||
SYSCALL_DEFINE1(nice, int, increment)
|
||||
{
|
||||
long nice, retval;
|
||||
|
||||
|
@ -5433,8 +5433,8 @@ do_sched_setscheduler(pid_t pid, int policy, struct sched_param __user *param)
|
|||
* @policy: new policy.
|
||||
* @param: structure containing the new RT priority.
|
||||
*/
|
||||
asmlinkage long
|
||||
sys_sched_setscheduler(pid_t pid, int policy, struct sched_param __user *param)
|
||||
SYSCALL_DEFINE3(sched_setscheduler, pid_t, pid, int, policy,
|
||||
struct sched_param __user *, param)
|
||||
{
|
||||
/* negative values for policy are not valid */
|
||||
if (policy < 0)
|
||||
|
@ -5448,7 +5448,7 @@ sys_sched_setscheduler(pid_t pid, int policy, struct sched_param __user *param)
|
|||
* @pid: the pid in question.
|
||||
* @param: structure containing the new RT priority.
|
||||
*/
|
||||
asmlinkage long sys_sched_setparam(pid_t pid, struct sched_param __user *param)
|
||||
SYSCALL_DEFINE2(sched_setparam, pid_t, pid, struct sched_param __user *, param)
|
||||
{
|
||||
return do_sched_setscheduler(pid, -1, param);
|
||||
}
|
||||
|
@ -5457,7 +5457,7 @@ asmlinkage long sys_sched_setparam(pid_t pid, struct sched_param __user *param)
|
|||
* sys_sched_getscheduler - get the policy (scheduling class) of a thread
|
||||
* @pid: the pid in question.
|
||||
*/
|
||||
asmlinkage long sys_sched_getscheduler(pid_t pid)
|
||||
SYSCALL_DEFINE1(sched_getscheduler, pid_t, pid)
|
||||
{
|
||||
struct task_struct *p;
|
||||
int retval;
|
||||
|
@ -5482,7 +5482,7 @@ asmlinkage long sys_sched_getscheduler(pid_t pid)
|
|||
* @pid: the pid in question.
|
||||
* @param: structure containing the RT priority.
|
||||
*/
|
||||
asmlinkage long sys_sched_getparam(pid_t pid, struct sched_param __user *param)
|
||||
SYSCALL_DEFINE2(sched_getparam, pid_t, pid, struct sched_param __user *, param)
|
||||
{
|
||||
struct sched_param lp;
|
||||
struct task_struct *p;
|
||||
|
@ -5600,8 +5600,8 @@ static int get_user_cpu_mask(unsigned long __user *user_mask_ptr, unsigned len,
|
|||
* @len: length in bytes of the bitmask pointed to by user_mask_ptr
|
||||
* @user_mask_ptr: user-space pointer to the new cpu mask
|
||||
*/
|
||||
asmlinkage long sys_sched_setaffinity(pid_t pid, unsigned int len,
|
||||
unsigned long __user *user_mask_ptr)
|
||||
SYSCALL_DEFINE3(sched_setaffinity, pid_t, pid, unsigned int, len,
|
||||
unsigned long __user *, user_mask_ptr)
|
||||
{
|
||||
cpumask_var_t new_mask;
|
||||
int retval;
|
||||
|
@ -5648,8 +5648,8 @@ out_unlock:
|
|||
* @len: length in bytes of the bitmask pointed to by user_mask_ptr
|
||||
* @user_mask_ptr: user-space pointer to hold the current cpu mask
|
||||
*/
|
||||
asmlinkage long sys_sched_getaffinity(pid_t pid, unsigned int len,
|
||||
unsigned long __user *user_mask_ptr)
|
||||
SYSCALL_DEFINE3(sched_getaffinity, pid_t, pid, unsigned int, len,
|
||||
unsigned long __user *, user_mask_ptr)
|
||||
{
|
||||
int ret;
|
||||
cpumask_var_t mask;
|
||||
|
@ -5678,7 +5678,7 @@ asmlinkage long sys_sched_getaffinity(pid_t pid, unsigned int len,
|
|||
* This function yields the current CPU to other tasks. If there are no
|
||||
* other threads running on this CPU then this function will return.
|
||||
*/
|
||||
asmlinkage long sys_sched_yield(void)
|
||||
SYSCALL_DEFINE0(sched_yield)
|
||||
{
|
||||
struct rq *rq = this_rq_lock();
|
||||
|
||||
|
@ -5819,7 +5819,7 @@ long __sched io_schedule_timeout(long timeout)
|
|||
* this syscall returns the maximum rt_priority that can be used
|
||||
* by a given scheduling class.
|
||||
*/
|
||||
asmlinkage long sys_sched_get_priority_max(int policy)
|
||||
SYSCALL_DEFINE1(sched_get_priority_max, int, policy)
|
||||
{
|
||||
int ret = -EINVAL;
|
||||
|
||||
|
@ -5844,7 +5844,7 @@ asmlinkage long sys_sched_get_priority_max(int policy)
|
|||
* this syscall returns the minimum rt_priority that can be used
|
||||
* by a given scheduling class.
|
||||
*/
|
||||
asmlinkage long sys_sched_get_priority_min(int policy)
|
||||
SYSCALL_DEFINE1(sched_get_priority_min, int, policy)
|
||||
{
|
||||
int ret = -EINVAL;
|
||||
|
||||
|
@ -5869,8 +5869,8 @@ asmlinkage long sys_sched_get_priority_min(int policy)
|
|||
* this syscall writes the default timeslice value of a given process
|
||||
* into the user-space timespec buffer. A value of '0' means infinity.
|
||||
*/
|
||||
asmlinkage
|
||||
long sys_sched_rr_get_interval(pid_t pid, struct timespec __user *interval)
|
||||
SYSCALL_DEFINE2(sched_rr_get_interval, pid_t, pid,
|
||||
struct timespec __user *, interval)
|
||||
{
|
||||
struct task_struct *p;
|
||||
unsigned int time_slice;
|
||||
|
|
|
@ -1961,7 +1961,7 @@ EXPORT_SYMBOL(unblock_all_signals);
|
|||
* System call entry points.
|
||||
*/
|
||||
|
||||
asmlinkage long sys_restart_syscall(void)
|
||||
SYSCALL_DEFINE0(restart_syscall)
|
||||
{
|
||||
struct restart_block *restart = ¤t_thread_info()->restart_block;
|
||||
return restart->fn(restart);
|
||||
|
@ -2014,8 +2014,8 @@ int sigprocmask(int how, sigset_t *set, sigset_t *oldset)
|
|||
return error;
|
||||
}
|
||||
|
||||
asmlinkage long
|
||||
sys_rt_sigprocmask(int how, sigset_t __user *set, sigset_t __user *oset, size_t sigsetsize)
|
||||
SYSCALL_DEFINE4(rt_sigprocmask, int, how, sigset_t __user *, set,
|
||||
sigset_t __user *, oset, size_t, sigsetsize)
|
||||
{
|
||||
int error = -EINVAL;
|
||||
sigset_t old_set, new_set;
|
||||
|
@ -2074,8 +2074,7 @@ out:
|
|||
return error;
|
||||
}
|
||||
|
||||
asmlinkage long
|
||||
sys_rt_sigpending(sigset_t __user *set, size_t sigsetsize)
|
||||
SYSCALL_DEFINE2(rt_sigpending, sigset_t __user *, set, size_t, sigsetsize)
|
||||
{
|
||||
return do_sigpending(set, sigsetsize);
|
||||
}
|
||||
|
@ -2146,11 +2145,9 @@ int copy_siginfo_to_user(siginfo_t __user *to, siginfo_t *from)
|
|||
|
||||
#endif
|
||||
|
||||
asmlinkage long
|
||||
sys_rt_sigtimedwait(const sigset_t __user *uthese,
|
||||
siginfo_t __user *uinfo,
|
||||
const struct timespec __user *uts,
|
||||
size_t sigsetsize)
|
||||
SYSCALL_DEFINE4(rt_sigtimedwait, const sigset_t __user *, uthese,
|
||||
siginfo_t __user *, uinfo, const struct timespec __user *, uts,
|
||||
size_t, sigsetsize)
|
||||
{
|
||||
int ret, sig;
|
||||
sigset_t these;
|
||||
|
@ -2223,8 +2220,7 @@ sys_rt_sigtimedwait(const sigset_t __user *uthese,
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long
|
||||
sys_kill(pid_t pid, int sig)
|
||||
SYSCALL_DEFINE2(kill, pid_t, pid, int, sig)
|
||||
{
|
||||
struct siginfo info;
|
||||
|
||||
|
@ -2283,7 +2279,7 @@ static int do_tkill(pid_t tgid, pid_t pid, int sig)
|
|||
* exists but it's not belonging to the target process anymore. This
|
||||
* method solves the problem of threads exiting and PIDs getting reused.
|
||||
*/
|
||||
asmlinkage long sys_tgkill(pid_t tgid, pid_t pid, int sig)
|
||||
SYSCALL_DEFINE3(tgkill, pid_t, tgid, pid_t, pid, int, sig)
|
||||
{
|
||||
/* This is only valid for single tasks */
|
||||
if (pid <= 0 || tgid <= 0)
|
||||
|
@ -2295,8 +2291,7 @@ asmlinkage long sys_tgkill(pid_t tgid, pid_t pid, int sig)
|
|||
/*
|
||||
* Send a signal to only one task, even if it's a CLONE_THREAD task.
|
||||
*/
|
||||
asmlinkage long
|
||||
sys_tkill(pid_t pid, int sig)
|
||||
SYSCALL_DEFINE2(tkill, pid_t, pid, int, sig)
|
||||
{
|
||||
/* This is only valid for single tasks */
|
||||
if (pid <= 0)
|
||||
|
@ -2305,8 +2300,8 @@ sys_tkill(pid_t pid, int sig)
|
|||
return do_tkill(0, pid, sig);
|
||||
}
|
||||
|
||||
asmlinkage long
|
||||
sys_rt_sigqueueinfo(pid_t pid, int sig, siginfo_t __user *uinfo)
|
||||
SYSCALL_DEFINE3(rt_sigqueueinfo, pid_t, pid, int, sig,
|
||||
siginfo_t __user *, uinfo)
|
||||
{
|
||||
siginfo_t info;
|
||||
|
||||
|
@ -2434,8 +2429,7 @@ out:
|
|||
|
||||
#ifdef __ARCH_WANT_SYS_SIGPENDING
|
||||
|
||||
asmlinkage long
|
||||
sys_sigpending(old_sigset_t __user *set)
|
||||
SYSCALL_DEFINE1(sigpending, old_sigset_t __user *, set)
|
||||
{
|
||||
return do_sigpending(set, sizeof(*set));
|
||||
}
|
||||
|
@ -2446,8 +2440,8 @@ sys_sigpending(old_sigset_t __user *set)
|
|||
/* Some platforms have their own version with special arguments others
|
||||
support only sys_rt_sigprocmask. */
|
||||
|
||||
asmlinkage long
|
||||
sys_sigprocmask(int how, old_sigset_t __user *set, old_sigset_t __user *oset)
|
||||
SYSCALL_DEFINE3(sigprocmask, int, how, old_sigset_t __user *, set,
|
||||
old_sigset_t __user *, oset)
|
||||
{
|
||||
int error;
|
||||
old_sigset_t old_set, new_set;
|
||||
|
@ -2497,11 +2491,10 @@ out:
|
|||
#endif /* __ARCH_WANT_SYS_SIGPROCMASK */
|
||||
|
||||
#ifdef __ARCH_WANT_SYS_RT_SIGACTION
|
||||
asmlinkage long
|
||||
sys_rt_sigaction(int sig,
|
||||
const struct sigaction __user *act,
|
||||
struct sigaction __user *oact,
|
||||
size_t sigsetsize)
|
||||
SYSCALL_DEFINE4(rt_sigaction, int, sig,
|
||||
const struct sigaction __user *, act,
|
||||
struct sigaction __user *, oact,
|
||||
size_t, sigsetsize)
|
||||
{
|
||||
struct k_sigaction new_sa, old_sa;
|
||||
int ret = -EINVAL;
|
||||
|
@ -2531,15 +2524,13 @@ out:
|
|||
/*
|
||||
* For backwards compatibility. Functionality superseded by sigprocmask.
|
||||
*/
|
||||
asmlinkage long
|
||||
sys_sgetmask(void)
|
||||
SYSCALL_DEFINE0(sgetmask)
|
||||
{
|
||||
/* SMP safe */
|
||||
return current->blocked.sig[0];
|
||||
}
|
||||
|
||||
asmlinkage long
|
||||
sys_ssetmask(int newmask)
|
||||
SYSCALL_DEFINE1(ssetmask, int, newmask)
|
||||
{
|
||||
int old;
|
||||
|
||||
|
@ -2559,8 +2550,7 @@ sys_ssetmask(int newmask)
|
|||
/*
|
||||
* For backwards compatibility. Functionality superseded by sigaction.
|
||||
*/
|
||||
asmlinkage unsigned long
|
||||
sys_signal(int sig, __sighandler_t handler)
|
||||
SYSCALL_DEFINE2(signal, int, sig, __sighandler_t, handler)
|
||||
{
|
||||
struct k_sigaction new_sa, old_sa;
|
||||
int ret;
|
||||
|
@ -2577,8 +2567,7 @@ sys_signal(int sig, __sighandler_t handler)
|
|||
|
||||
#ifdef __ARCH_WANT_SYS_PAUSE
|
||||
|
||||
asmlinkage long
|
||||
sys_pause(void)
|
||||
SYSCALL_DEFINE0(pause)
|
||||
{
|
||||
current->state = TASK_INTERRUPTIBLE;
|
||||
schedule();
|
||||
|
@ -2588,7 +2577,7 @@ sys_pause(void)
|
|||
#endif
|
||||
|
||||
#ifdef __ARCH_WANT_SYS_RT_SIGSUSPEND
|
||||
asmlinkage long sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize)
|
||||
SYSCALL_DEFINE2(rt_sigsuspend, sigset_t __user *, unewset, size_t, sigsetsize)
|
||||
{
|
||||
sigset_t newset;
|
||||
|
||||
|
|
70
kernel/sys.c
70
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();
|
||||
|
|
|
@ -131,6 +131,7 @@ cond_syscall(sys_io_destroy);
|
|||
cond_syscall(sys_io_submit);
|
||||
cond_syscall(sys_io_cancel);
|
||||
cond_syscall(sys_io_getevents);
|
||||
cond_syscall(sys_syslog);
|
||||
|
||||
/* arch-specific weak syscall entries */
|
||||
cond_syscall(sys_pciconfig_read);
|
||||
|
|
|
@ -1688,7 +1688,7 @@ int do_sysctl(int __user *name, int nlen, void __user *oldval, size_t __user *ol
|
|||
return error;
|
||||
}
|
||||
|
||||
asmlinkage long sys_sysctl(struct __sysctl_args __user *args)
|
||||
SYSCALL_DEFINE1(sysctl, struct __sysctl_args __user *, args)
|
||||
{
|
||||
struct __sysctl_args tmp;
|
||||
int error;
|
||||
|
@ -2989,7 +2989,7 @@ int sysctl_ms_jiffies(struct ctl_table *table,
|
|||
#else /* CONFIG_SYSCTL_SYSCALL */
|
||||
|
||||
|
||||
asmlinkage long sys_sysctl(struct __sysctl_args __user *args)
|
||||
SYSCALL_DEFINE1(sysctl, struct __sysctl_args __user *, args)
|
||||
{
|
||||
struct __sysctl_args tmp;
|
||||
int error;
|
||||
|
|
|
@ -60,7 +60,7 @@ EXPORT_SYMBOL(sys_tz);
|
|||
* why not move it into the appropriate arch directory (for those
|
||||
* architectures that need it).
|
||||
*/
|
||||
asmlinkage long sys_time(time_t __user * tloc)
|
||||
SYSCALL_DEFINE1(time, time_t __user *, tloc)
|
||||
{
|
||||
time_t i = get_seconds();
|
||||
|
||||
|
@ -79,7 +79,7 @@ asmlinkage long sys_time(time_t __user * tloc)
|
|||
* architectures that need it).
|
||||
*/
|
||||
|
||||
asmlinkage long sys_stime(time_t __user *tptr)
|
||||
SYSCALL_DEFINE1(stime, time_t __user *, tptr)
|
||||
{
|
||||
struct timespec tv;
|
||||
int err;
|
||||
|
@ -99,8 +99,8 @@ asmlinkage long sys_stime(time_t __user *tptr)
|
|||
|
||||
#endif /* __ARCH_WANT_SYS_TIME */
|
||||
|
||||
asmlinkage long sys_gettimeofday(struct timeval __user *tv,
|
||||
struct timezone __user *tz)
|
||||
SYSCALL_DEFINE2(gettimeofday, struct timeval __user *, tv,
|
||||
struct timezone __user *, tz)
|
||||
{
|
||||
if (likely(tv != NULL)) {
|
||||
struct timeval ktv;
|
||||
|
@ -184,8 +184,8 @@ int do_sys_settimeofday(struct timespec *tv, struct timezone *tz)
|
|||
return 0;
|
||||
}
|
||||
|
||||
asmlinkage long sys_settimeofday(struct timeval __user *tv,
|
||||
struct timezone __user *tz)
|
||||
SYSCALL_DEFINE2(settimeofday, struct timeval __user *, tv,
|
||||
struct timezone __user *, tz)
|
||||
{
|
||||
struct timeval user_tv;
|
||||
struct timespec new_ts;
|
||||
|
@ -205,7 +205,7 @@ asmlinkage long sys_settimeofday(struct timeval __user *tv,
|
|||
return do_sys_settimeofday(tv ? &new_ts : NULL, tz ? &new_tz : NULL);
|
||||
}
|
||||
|
||||
asmlinkage long sys_adjtimex(struct timex __user *txc_p)
|
||||
SYSCALL_DEFINE1(adjtimex, struct timex __user *, txc_p)
|
||||
{
|
||||
struct timex txc; /* Local copy of parameter */
|
||||
int ret;
|
||||
|
|
|
@ -1129,7 +1129,7 @@ void do_timer(unsigned long ticks)
|
|||
* For backwards compatibility? This can be done in libc so Alpha
|
||||
* and all newer ports shouldn't need it.
|
||||
*/
|
||||
asmlinkage unsigned long sys_alarm(unsigned int seconds)
|
||||
SYSCALL_DEFINE1(alarm, unsigned int, seconds)
|
||||
{
|
||||
return alarm_setitimer(seconds);
|
||||
}
|
||||
|
@ -1152,7 +1152,7 @@ asmlinkage unsigned long sys_alarm(unsigned int seconds)
|
|||
*
|
||||
* This is SMP safe as current->tgid does not change.
|
||||
*/
|
||||
asmlinkage long sys_getpid(void)
|
||||
SYSCALL_DEFINE0(getpid)
|
||||
{
|
||||
return task_tgid_vnr(current);
|
||||
}
|
||||
|
@ -1163,7 +1163,7 @@ asmlinkage long sys_getpid(void)
|
|||
* value of ->real_parent under rcu_read_lock(), see
|
||||
* release_task()->call_rcu(delayed_put_task_struct).
|
||||
*/
|
||||
asmlinkage long sys_getppid(void)
|
||||
SYSCALL_DEFINE0(getppid)
|
||||
{
|
||||
int pid;
|
||||
|
||||
|
@ -1174,25 +1174,25 @@ asmlinkage long sys_getppid(void)
|
|||
return pid;
|
||||
}
|
||||
|
||||
asmlinkage long sys_getuid(void)
|
||||
SYSCALL_DEFINE0(getuid)
|
||||
{
|
||||
/* Only we change this so SMP safe */
|
||||
return current_uid();
|
||||
}
|
||||
|
||||
asmlinkage long sys_geteuid(void)
|
||||
SYSCALL_DEFINE0(geteuid)
|
||||
{
|
||||
/* Only we change this so SMP safe */
|
||||
return current_euid();
|
||||
}
|
||||
|
||||
asmlinkage long sys_getgid(void)
|
||||
SYSCALL_DEFINE0(getgid)
|
||||
{
|
||||
/* Only we change this so SMP safe */
|
||||
return current_gid();
|
||||
}
|
||||
|
||||
asmlinkage long sys_getegid(void)
|
||||
SYSCALL_DEFINE0(getegid)
|
||||
{
|
||||
/* Only we change this so SMP safe */
|
||||
return current_egid();
|
||||
|
@ -1308,7 +1308,7 @@ signed long __sched schedule_timeout_uninterruptible(signed long timeout)
|
|||
EXPORT_SYMBOL(schedule_timeout_uninterruptible);
|
||||
|
||||
/* Thread ID - the internal kernel "pid" */
|
||||
asmlinkage long sys_gettid(void)
|
||||
SYSCALL_DEFINE0(gettid)
|
||||
{
|
||||
return task_pid_vnr(current);
|
||||
}
|
||||
|
@ -1400,7 +1400,7 @@ out:
|
|||
return 0;
|
||||
}
|
||||
|
||||
asmlinkage long sys_sysinfo(struct sysinfo __user *info)
|
||||
SYSCALL_DEFINE1(sysinfo, struct sysinfo __user *, info)
|
||||
{
|
||||
struct sysinfo val;
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
asmlinkage long sys_chown16(const char __user * filename, old_uid_t user, old_gid_t group)
|
||||
SYSCALL_DEFINE3(chown16, const char __user *, filename, old_uid_t, user, old_gid_t, group)
|
||||
{
|
||||
long ret = sys_chown(filename, low2highuid(user), low2highgid(group));
|
||||
/* avoid REGPARM breakage on x86: */
|
||||
|
@ -25,7 +25,7 @@ asmlinkage long sys_chown16(const char __user * filename, old_uid_t user, old_gi
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long sys_lchown16(const char __user * filename, old_uid_t user, old_gid_t group)
|
||||
SYSCALL_DEFINE3(lchown16, const char __user *, filename, old_uid_t, user, old_gid_t, group)
|
||||
{
|
||||
long ret = sys_lchown(filename, low2highuid(user), low2highgid(group));
|
||||
/* avoid REGPARM breakage on x86: */
|
||||
|
@ -33,7 +33,7 @@ asmlinkage long sys_lchown16(const char __user * filename, old_uid_t user, old_g
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long sys_fchown16(unsigned int fd, old_uid_t user, old_gid_t group)
|
||||
SYSCALL_DEFINE3(fchown16, unsigned int, fd, old_uid_t, user, old_gid_t, group)
|
||||
{
|
||||
long ret = sys_fchown(fd, low2highuid(user), low2highgid(group));
|
||||
/* avoid REGPARM breakage on x86: */
|
||||
|
@ -41,7 +41,7 @@ asmlinkage long sys_fchown16(unsigned int fd, old_uid_t user, old_gid_t group)
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long sys_setregid16(old_gid_t rgid, old_gid_t egid)
|
||||
SYSCALL_DEFINE2(setregid16, old_gid_t, rgid, old_gid_t, egid)
|
||||
{
|
||||
long ret = sys_setregid(low2highgid(rgid), low2highgid(egid));
|
||||
/* avoid REGPARM breakage on x86: */
|
||||
|
@ -49,7 +49,7 @@ asmlinkage long sys_setregid16(old_gid_t rgid, old_gid_t egid)
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long sys_setgid16(old_gid_t gid)
|
||||
SYSCALL_DEFINE1(setgid16, old_gid_t, gid)
|
||||
{
|
||||
long ret = sys_setgid(low2highgid(gid));
|
||||
/* avoid REGPARM breakage on x86: */
|
||||
|
@ -57,7 +57,7 @@ asmlinkage long sys_setgid16(old_gid_t gid)
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long sys_setreuid16(old_uid_t ruid, old_uid_t euid)
|
||||
SYSCALL_DEFINE2(setreuid16, old_uid_t, ruid, old_uid_t, euid)
|
||||
{
|
||||
long ret = sys_setreuid(low2highuid(ruid), low2highuid(euid));
|
||||
/* avoid REGPARM breakage on x86: */
|
||||
|
@ -65,7 +65,7 @@ asmlinkage long sys_setreuid16(old_uid_t ruid, old_uid_t euid)
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long sys_setuid16(old_uid_t uid)
|
||||
SYSCALL_DEFINE1(setuid16, old_uid_t, uid)
|
||||
{
|
||||
long ret = sys_setuid(low2highuid(uid));
|
||||
/* avoid REGPARM breakage on x86: */
|
||||
|
@ -73,7 +73,7 @@ asmlinkage long sys_setuid16(old_uid_t uid)
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long sys_setresuid16(old_uid_t ruid, old_uid_t euid, old_uid_t suid)
|
||||
SYSCALL_DEFINE3(setresuid16, old_uid_t, ruid, old_uid_t, euid, old_uid_t, suid)
|
||||
{
|
||||
long ret = sys_setresuid(low2highuid(ruid), low2highuid(euid),
|
||||
low2highuid(suid));
|
||||
|
@ -82,7 +82,7 @@ asmlinkage long sys_setresuid16(old_uid_t ruid, old_uid_t euid, old_uid_t suid)
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long sys_getresuid16(old_uid_t __user *ruid, old_uid_t __user *euid, old_uid_t __user *suid)
|
||||
SYSCALL_DEFINE3(getresuid16, old_uid_t __user *, ruid, old_uid_t __user *, euid, old_uid_t __user *, suid)
|
||||
{
|
||||
const struct cred *cred = current_cred();
|
||||
int retval;
|
||||
|
@ -94,7 +94,7 @@ asmlinkage long sys_getresuid16(old_uid_t __user *ruid, old_uid_t __user *euid,
|
|||
return retval;
|
||||
}
|
||||
|
||||
asmlinkage long sys_setresgid16(old_gid_t rgid, old_gid_t egid, old_gid_t sgid)
|
||||
SYSCALL_DEFINE3(setresgid16, old_gid_t, rgid, old_gid_t, egid, old_gid_t, sgid)
|
||||
{
|
||||
long ret = sys_setresgid(low2highgid(rgid), low2highgid(egid),
|
||||
low2highgid(sgid));
|
||||
|
@ -103,7 +103,8 @@ asmlinkage long sys_setresgid16(old_gid_t rgid, old_gid_t egid, old_gid_t sgid)
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long sys_getresgid16(old_gid_t __user *rgid, old_gid_t __user *egid, old_gid_t __user *sgid)
|
||||
|
||||
SYSCALL_DEFINE3(getresgid16, old_gid_t __user *, rgid, old_gid_t __user *, egid, old_gid_t __user *, sgid)
|
||||
{
|
||||
const struct cred *cred = current_cred();
|
||||
int retval;
|
||||
|
@ -115,7 +116,7 @@ asmlinkage long sys_getresgid16(old_gid_t __user *rgid, old_gid_t __user *egid,
|
|||
return retval;
|
||||
}
|
||||
|
||||
asmlinkage long sys_setfsuid16(old_uid_t uid)
|
||||
SYSCALL_DEFINE1(setfsuid16, old_uid_t, uid)
|
||||
{
|
||||
long ret = sys_setfsuid(low2highuid(uid));
|
||||
/* avoid REGPARM breakage on x86: */
|
||||
|
@ -123,7 +124,7 @@ asmlinkage long sys_setfsuid16(old_uid_t uid)
|
|||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long sys_setfsgid16(old_gid_t gid)
|
||||
SYSCALL_DEFINE1(setfsgid16, old_gid_t, gid)
|
||||
{
|
||||
long ret = sys_setfsgid(low2highgid(gid));
|
||||
/* avoid REGPARM breakage on x86: */
|
||||
|
@ -161,7 +162,7 @@ static int groups16_from_user(struct group_info *group_info,
|
|||
return 0;
|
||||
}
|
||||
|
||||
asmlinkage long sys_getgroups16(int gidsetsize, old_gid_t __user *grouplist)
|
||||
SYSCALL_DEFINE2(getgroups16, int, gidsetsize, old_gid_t __user *, grouplist)
|
||||
{
|
||||
const struct cred *cred = current_cred();
|
||||
int i;
|
||||
|
@ -184,7 +185,7 @@ out:
|
|||
return i;
|
||||
}
|
||||
|
||||
asmlinkage long sys_setgroups16(int gidsetsize, old_gid_t __user *grouplist)
|
||||
SYSCALL_DEFINE2(setgroups16, int, gidsetsize, old_gid_t __user *, grouplist)
|
||||
{
|
||||
struct group_info *group_info;
|
||||
int retval;
|
||||
|
@ -209,22 +210,22 @@ asmlinkage long sys_setgroups16(int gidsetsize, old_gid_t __user *grouplist)
|
|||
return retval;
|
||||
}
|
||||
|
||||
asmlinkage long sys_getuid16(void)
|
||||
SYSCALL_DEFINE0(getuid16)
|
||||
{
|
||||
return high2lowuid(current_uid());
|
||||
}
|
||||
|
||||
asmlinkage long sys_geteuid16(void)
|
||||
SYSCALL_DEFINE0(geteuid16)
|
||||
{
|
||||
return high2lowuid(current_euid());
|
||||
}
|
||||
|
||||
asmlinkage long sys_getgid16(void)
|
||||
SYSCALL_DEFINE0(getgid16)
|
||||
{
|
||||
return high2lowgid(current_gid());
|
||||
}
|
||||
|
||||
asmlinkage long sys_getegid16(void)
|
||||
SYSCALL_DEFINE0(getegid16)
|
||||
{
|
||||
return high2lowgid(current_egid());
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue