Commit cf36680887d6d942d2119c1ff1dfb2428b0f21f4

Authored by Anton Blanchard
Committed by Linus Torvalds
1 parent 8dc4fd87f2

[PATCH] move ioprio syscalls into syscalls.h

- Make ioprio syscalls return long, like set/getpriority syscalls.
- Move function prototypes into syscalls.h so we can pick them up in the
  32/64bit compat code.

Signed-off-by: Anton Blanchard <anton@samba.org>
Acked-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Showing 3 changed files with 5 additions and 5 deletions Inline Diff

1 /* 1 /*
2 * fs/ioprio.c 2 * fs/ioprio.c
3 * 3 *
4 * Copyright (C) 2004 Jens Axboe <axboe@suse.de> 4 * Copyright (C) 2004 Jens Axboe <axboe@suse.de>
5 * 5 *
6 * Helper functions for setting/querying io priorities of processes. The 6 * Helper functions for setting/querying io priorities of processes. The
7 * system calls closely mimmick getpriority/setpriority, see the man page for 7 * system calls closely mimmick getpriority/setpriority, see the man page for
8 * those. The prio argument is a composite of prio class and prio data, where 8 * those. The prio argument is a composite of prio class and prio data, where
9 * the data argument has meaning within that class. The standard scheduling 9 * the data argument has meaning within that class. The standard scheduling
10 * classes have 8 distinct prio levels, with 0 being the highest prio and 7 10 * classes have 8 distinct prio levels, with 0 being the highest prio and 7
11 * being the lowest. 11 * being the lowest.
12 * 12 *
13 * IOW, setting BE scheduling class with prio 2 is done ala: 13 * IOW, setting BE scheduling class with prio 2 is done ala:
14 * 14 *
15 * unsigned int prio = (IOPRIO_CLASS_BE << IOPRIO_CLASS_SHIFT) | 2; 15 * unsigned int prio = (IOPRIO_CLASS_BE << IOPRIO_CLASS_SHIFT) | 2;
16 * 16 *
17 * ioprio_set(PRIO_PROCESS, pid, prio); 17 * ioprio_set(PRIO_PROCESS, pid, prio);
18 * 18 *
19 * See also Documentation/block/ioprio.txt 19 * See also Documentation/block/ioprio.txt
20 * 20 *
21 */ 21 */
22 #include <linux/kernel.h> 22 #include <linux/kernel.h>
23 #include <linux/ioprio.h> 23 #include <linux/ioprio.h>
24 #include <linux/blkdev.h> 24 #include <linux/blkdev.h>
25 25
26 static int set_task_ioprio(struct task_struct *task, int ioprio) 26 static int set_task_ioprio(struct task_struct *task, int ioprio)
27 { 27 {
28 struct io_context *ioc; 28 struct io_context *ioc;
29 29
30 if (task->uid != current->euid && 30 if (task->uid != current->euid &&
31 task->uid != current->uid && !capable(CAP_SYS_NICE)) 31 task->uid != current->uid && !capable(CAP_SYS_NICE))
32 return -EPERM; 32 return -EPERM;
33 33
34 task_lock(task); 34 task_lock(task);
35 35
36 task->ioprio = ioprio; 36 task->ioprio = ioprio;
37 37
38 ioc = task->io_context; 38 ioc = task->io_context;
39 if (ioc && ioc->set_ioprio) 39 if (ioc && ioc->set_ioprio)
40 ioc->set_ioprio(ioc, ioprio); 40 ioc->set_ioprio(ioc, ioprio);
41 41
42 task_unlock(task); 42 task_unlock(task);
43 return 0; 43 return 0;
44 } 44 }
45 45
46 asmlinkage int sys_ioprio_set(int which, int who, int ioprio) 46 asmlinkage long sys_ioprio_set(int which, int who, int ioprio)
47 { 47 {
48 int class = IOPRIO_PRIO_CLASS(ioprio); 48 int class = IOPRIO_PRIO_CLASS(ioprio);
49 int data = IOPRIO_PRIO_DATA(ioprio); 49 int data = IOPRIO_PRIO_DATA(ioprio);
50 struct task_struct *p, *g; 50 struct task_struct *p, *g;
51 struct user_struct *user; 51 struct user_struct *user;
52 int ret; 52 int ret;
53 53
54 switch (class) { 54 switch (class) {
55 case IOPRIO_CLASS_RT: 55 case IOPRIO_CLASS_RT:
56 if (!capable(CAP_SYS_ADMIN)) 56 if (!capable(CAP_SYS_ADMIN))
57 return -EPERM; 57 return -EPERM;
58 /* fall through, rt has prio field too */ 58 /* fall through, rt has prio field too */
59 case IOPRIO_CLASS_BE: 59 case IOPRIO_CLASS_BE:
60 if (data >= IOPRIO_BE_NR || data < 0) 60 if (data >= IOPRIO_BE_NR || data < 0)
61 return -EINVAL; 61 return -EINVAL;
62 62
63 break; 63 break;
64 case IOPRIO_CLASS_IDLE: 64 case IOPRIO_CLASS_IDLE:
65 break; 65 break;
66 default: 66 default:
67 return -EINVAL; 67 return -EINVAL;
68 } 68 }
69 69
70 ret = -ESRCH; 70 ret = -ESRCH;
71 read_lock_irq(&tasklist_lock); 71 read_lock_irq(&tasklist_lock);
72 switch (which) { 72 switch (which) {
73 case IOPRIO_WHO_PROCESS: 73 case IOPRIO_WHO_PROCESS:
74 if (!who) 74 if (!who)
75 p = current; 75 p = current;
76 else 76 else
77 p = find_task_by_pid(who); 77 p = find_task_by_pid(who);
78 if (p) 78 if (p)
79 ret = set_task_ioprio(p, ioprio); 79 ret = set_task_ioprio(p, ioprio);
80 break; 80 break;
81 case IOPRIO_WHO_PGRP: 81 case IOPRIO_WHO_PGRP:
82 if (!who) 82 if (!who)
83 who = process_group(current); 83 who = process_group(current);
84 do_each_task_pid(who, PIDTYPE_PGID, p) { 84 do_each_task_pid(who, PIDTYPE_PGID, p) {
85 ret = set_task_ioprio(p, ioprio); 85 ret = set_task_ioprio(p, ioprio);
86 if (ret) 86 if (ret)
87 break; 87 break;
88 } while_each_task_pid(who, PIDTYPE_PGID, p); 88 } while_each_task_pid(who, PIDTYPE_PGID, p);
89 break; 89 break;
90 case IOPRIO_WHO_USER: 90 case IOPRIO_WHO_USER:
91 if (!who) 91 if (!who)
92 user = current->user; 92 user = current->user;
93 else 93 else
94 user = find_user(who); 94 user = find_user(who);
95 95
96 if (!user) 96 if (!user)
97 break; 97 break;
98 98
99 do_each_thread(g, p) { 99 do_each_thread(g, p) {
100 if (p->uid != who) 100 if (p->uid != who)
101 continue; 101 continue;
102 ret = set_task_ioprio(p, ioprio); 102 ret = set_task_ioprio(p, ioprio);
103 if (ret) 103 if (ret)
104 break; 104 break;
105 } while_each_thread(g, p); 105 } while_each_thread(g, p);
106 106
107 if (who) 107 if (who)
108 free_uid(user); 108 free_uid(user);
109 break; 109 break;
110 default: 110 default:
111 ret = -EINVAL; 111 ret = -EINVAL;
112 } 112 }
113 113
114 read_unlock_irq(&tasklist_lock); 114 read_unlock_irq(&tasklist_lock);
115 return ret; 115 return ret;
116 } 116 }
117 117
118 asmlinkage int sys_ioprio_get(int which, int who) 118 asmlinkage long sys_ioprio_get(int which, int who)
119 { 119 {
120 struct task_struct *g, *p; 120 struct task_struct *g, *p;
121 struct user_struct *user; 121 struct user_struct *user;
122 int ret = -ESRCH; 122 int ret = -ESRCH;
123 123
124 read_lock_irq(&tasklist_lock); 124 read_lock_irq(&tasklist_lock);
125 switch (which) { 125 switch (which) {
126 case IOPRIO_WHO_PROCESS: 126 case IOPRIO_WHO_PROCESS:
127 if (!who) 127 if (!who)
128 p = current; 128 p = current;
129 else 129 else
130 p = find_task_by_pid(who); 130 p = find_task_by_pid(who);
131 if (p) 131 if (p)
132 ret = p->ioprio; 132 ret = p->ioprio;
133 break; 133 break;
134 case IOPRIO_WHO_PGRP: 134 case IOPRIO_WHO_PGRP:
135 if (!who) 135 if (!who)
136 who = process_group(current); 136 who = process_group(current);
137 do_each_task_pid(who, PIDTYPE_PGID, p) { 137 do_each_task_pid(who, PIDTYPE_PGID, p) {
138 if (ret == -ESRCH) 138 if (ret == -ESRCH)
139 ret = p->ioprio; 139 ret = p->ioprio;
140 else 140 else
141 ret = ioprio_best(ret, p->ioprio); 141 ret = ioprio_best(ret, p->ioprio);
142 } while_each_task_pid(who, PIDTYPE_PGID, p); 142 } while_each_task_pid(who, PIDTYPE_PGID, p);
143 break; 143 break;
144 case IOPRIO_WHO_USER: 144 case IOPRIO_WHO_USER:
145 if (!who) 145 if (!who)
146 user = current->user; 146 user = current->user;
147 else 147 else
148 user = find_user(who); 148 user = find_user(who);
149 149
150 if (!user) 150 if (!user)
151 break; 151 break;
152 152
153 do_each_thread(g, p) { 153 do_each_thread(g, p) {
154 if (p->uid != user->uid) 154 if (p->uid != user->uid)
155 continue; 155 continue;
156 if (ret == -ESRCH) 156 if (ret == -ESRCH)
157 ret = p->ioprio; 157 ret = p->ioprio;
158 else 158 else
159 ret = ioprio_best(ret, p->ioprio); 159 ret = ioprio_best(ret, p->ioprio);
160 } while_each_thread(g, p); 160 } while_each_thread(g, p);
161 161
162 if (who) 162 if (who)
163 free_uid(user); 163 free_uid(user);
164 break; 164 break;
165 default: 165 default:
166 ret = -EINVAL; 166 ret = -EINVAL;
167 } 167 }
168 168
169 read_unlock_irq(&tasklist_lock); 169 read_unlock_irq(&tasklist_lock);
170 return ret; 170 return ret;
171 } 171 }
172 172
173 173
include/linux/ioprio.h
1 #ifndef IOPRIO_H 1 #ifndef IOPRIO_H
2 #define IOPRIO_H 2 #define IOPRIO_H
3 3
4 #include <linux/sched.h> 4 #include <linux/sched.h>
5 5
6 /* 6 /*
7 * Gives us 8 prio classes with 13-bits of data for each class 7 * Gives us 8 prio classes with 13-bits of data for each class
8 */ 8 */
9 #define IOPRIO_BITS (16) 9 #define IOPRIO_BITS (16)
10 #define IOPRIO_CLASS_SHIFT (13) 10 #define IOPRIO_CLASS_SHIFT (13)
11 #define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1) 11 #define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1)
12 12
13 #define IOPRIO_PRIO_CLASS(mask) ((mask) >> IOPRIO_CLASS_SHIFT) 13 #define IOPRIO_PRIO_CLASS(mask) ((mask) >> IOPRIO_CLASS_SHIFT)
14 #define IOPRIO_PRIO_DATA(mask) ((mask) & IOPRIO_PRIO_MASK) 14 #define IOPRIO_PRIO_DATA(mask) ((mask) & IOPRIO_PRIO_MASK)
15 #define IOPRIO_PRIO_VALUE(class, data) (((class) << IOPRIO_CLASS_SHIFT) | data) 15 #define IOPRIO_PRIO_VALUE(class, data) (((class) << IOPRIO_CLASS_SHIFT) | data)
16 16
17 #define ioprio_valid(mask) (IOPRIO_PRIO_CLASS((mask)) != IOPRIO_CLASS_NONE) 17 #define ioprio_valid(mask) (IOPRIO_PRIO_CLASS((mask)) != IOPRIO_CLASS_NONE)
18 18
19 /* 19 /*
20 * These are the io priority groups as implemented by CFQ. RT is the realtime 20 * These are the io priority groups as implemented by CFQ. RT is the realtime
21 * class, it always gets premium service. BE is the best-effort scheduling 21 * class, it always gets premium service. BE is the best-effort scheduling
22 * class, the default for any process. IDLE is the idle scheduling class, it 22 * class, the default for any process. IDLE is the idle scheduling class, it
23 * is only served when no one else is using the disk. 23 * is only served when no one else is using the disk.
24 */ 24 */
25 enum { 25 enum {
26 IOPRIO_CLASS_NONE, 26 IOPRIO_CLASS_NONE,
27 IOPRIO_CLASS_RT, 27 IOPRIO_CLASS_RT,
28 IOPRIO_CLASS_BE, 28 IOPRIO_CLASS_BE,
29 IOPRIO_CLASS_IDLE, 29 IOPRIO_CLASS_IDLE,
30 }; 30 };
31 31
32 /* 32 /*
33 * 8 best effort priority levels are supported 33 * 8 best effort priority levels are supported
34 */ 34 */
35 #define IOPRIO_BE_NR (8) 35 #define IOPRIO_BE_NR (8)
36 36
37 asmlinkage int sys_ioprio_set(int, int, int);
38 asmlinkage int sys_ioprio_get(int, int);
39
40 enum { 37 enum {
41 IOPRIO_WHO_PROCESS = 1, 38 IOPRIO_WHO_PROCESS = 1,
42 IOPRIO_WHO_PGRP, 39 IOPRIO_WHO_PGRP,
43 IOPRIO_WHO_USER, 40 IOPRIO_WHO_USER,
44 }; 41 };
45 42
46 /* 43 /*
47 * if process has set io priority explicitly, use that. if not, convert 44 * if process has set io priority explicitly, use that. if not, convert
48 * the cpu scheduler nice value to an io priority 45 * the cpu scheduler nice value to an io priority
49 */ 46 */
50 #define IOPRIO_NORM (4) 47 #define IOPRIO_NORM (4)
51 static inline int task_ioprio(struct task_struct *task) 48 static inline int task_ioprio(struct task_struct *task)
52 { 49 {
53 WARN_ON(!ioprio_valid(task->ioprio)); 50 WARN_ON(!ioprio_valid(task->ioprio));
54 return IOPRIO_PRIO_DATA(task->ioprio); 51 return IOPRIO_PRIO_DATA(task->ioprio);
55 } 52 }
56 53
57 static inline int task_nice_ioprio(struct task_struct *task) 54 static inline int task_nice_ioprio(struct task_struct *task)
58 { 55 {
59 return (task_nice(task) + 20) / 5; 56 return (task_nice(task) + 20) / 5;
60 } 57 }
61 58
62 /* 59 /*
63 * For inheritance, return the highest of the two given priorities 60 * For inheritance, return the highest of the two given priorities
64 */ 61 */
65 static inline int ioprio_best(unsigned short aprio, unsigned short bprio) 62 static inline int ioprio_best(unsigned short aprio, unsigned short bprio)
66 { 63 {
67 unsigned short aclass = IOPRIO_PRIO_CLASS(aprio); 64 unsigned short aclass = IOPRIO_PRIO_CLASS(aprio);
68 unsigned short bclass = IOPRIO_PRIO_CLASS(bprio); 65 unsigned short bclass = IOPRIO_PRIO_CLASS(bprio);
69 66
70 if (!ioprio_valid(aprio)) 67 if (!ioprio_valid(aprio))
71 return bprio; 68 return bprio;
72 if (!ioprio_valid(bprio)) 69 if (!ioprio_valid(bprio))
73 return aprio; 70 return aprio;
74 71
75 if (aclass == IOPRIO_CLASS_NONE) 72 if (aclass == IOPRIO_CLASS_NONE)
76 aclass = IOPRIO_CLASS_BE; 73 aclass = IOPRIO_CLASS_BE;
77 if (bclass == IOPRIO_CLASS_NONE) 74 if (bclass == IOPRIO_CLASS_NONE)
78 bclass = IOPRIO_CLASS_BE; 75 bclass = IOPRIO_CLASS_BE;
79 76
80 if (aclass == bclass) 77 if (aclass == bclass)
81 return min(aprio, bprio); 78 return min(aprio, bprio);
82 if (aclass > bclass) 79 if (aclass > bclass)
83 return bprio; 80 return bprio;
84 else 81 else
85 return aprio; 82 return aprio;
86 } 83 }
87 84
88 #endif 85 #endif
89 86
include/linux/syscalls.h
1 /* 1 /*
2 * syscalls.h - Linux syscall interfaces (non-arch-specific) 2 * syscalls.h - Linux syscall interfaces (non-arch-specific)
3 * 3 *
4 * Copyright (c) 2004 Randy Dunlap 4 * Copyright (c) 2004 Randy Dunlap
5 * Copyright (c) 2004 Open Source Development Labs 5 * Copyright (c) 2004 Open Source Development Labs
6 * 6 *
7 * This file is released under the GPLv2. 7 * This file is released under the GPLv2.
8 * See the file COPYING for more details. 8 * See the file COPYING for more details.
9 */ 9 */
10 10
11 #ifndef _LINUX_SYSCALLS_H 11 #ifndef _LINUX_SYSCALLS_H
12 #define _LINUX_SYSCALLS_H 12 #define _LINUX_SYSCALLS_H
13 13
14 struct epoll_event; 14 struct epoll_event;
15 struct iattr; 15 struct iattr;
16 struct inode; 16 struct inode;
17 struct iocb; 17 struct iocb;
18 struct io_event; 18 struct io_event;
19 struct iovec; 19 struct iovec;
20 struct itimerspec; 20 struct itimerspec;
21 struct itimerval; 21 struct itimerval;
22 struct kexec_segment; 22 struct kexec_segment;
23 struct linux_dirent; 23 struct linux_dirent;
24 struct linux_dirent64; 24 struct linux_dirent64;
25 struct list_head; 25 struct list_head;
26 struct msgbuf; 26 struct msgbuf;
27 struct msghdr; 27 struct msghdr;
28 struct msqid_ds; 28 struct msqid_ds;
29 struct new_utsname; 29 struct new_utsname;
30 struct nfsctl_arg; 30 struct nfsctl_arg;
31 struct __old_kernel_stat; 31 struct __old_kernel_stat;
32 struct pollfd; 32 struct pollfd;
33 struct rlimit; 33 struct rlimit;
34 struct rusage; 34 struct rusage;
35 struct sched_param; 35 struct sched_param;
36 struct semaphore; 36 struct semaphore;
37 struct sembuf; 37 struct sembuf;
38 struct shmid_ds; 38 struct shmid_ds;
39 struct sockaddr; 39 struct sockaddr;
40 struct stat; 40 struct stat;
41 struct stat64; 41 struct stat64;
42 struct statfs; 42 struct statfs;
43 struct statfs64; 43 struct statfs64;
44 struct __sysctl_args; 44 struct __sysctl_args;
45 struct sysinfo; 45 struct sysinfo;
46 struct timespec; 46 struct timespec;
47 struct timeval; 47 struct timeval;
48 struct timex; 48 struct timex;
49 struct timezone; 49 struct timezone;
50 struct tms; 50 struct tms;
51 struct utimbuf; 51 struct utimbuf;
52 struct mq_attr; 52 struct mq_attr;
53 53
54 #include <linux/config.h> 54 #include <linux/config.h>
55 #include <linux/types.h> 55 #include <linux/types.h>
56 #include <linux/aio_abi.h> 56 #include <linux/aio_abi.h>
57 #include <linux/capability.h> 57 #include <linux/capability.h>
58 #include <linux/list.h> 58 #include <linux/list.h>
59 #include <linux/sem.h> 59 #include <linux/sem.h>
60 #include <asm/semaphore.h> 60 #include <asm/semaphore.h>
61 #include <asm/siginfo.h> 61 #include <asm/siginfo.h>
62 #include <asm/signal.h> 62 #include <asm/signal.h>
63 #include <linux/quota.h> 63 #include <linux/quota.h>
64 #include <linux/key.h> 64 #include <linux/key.h>
65 65
66 asmlinkage long sys_time(time_t __user *tloc); 66 asmlinkage long sys_time(time_t __user *tloc);
67 asmlinkage long sys_stime(time_t __user *tptr); 67 asmlinkage long sys_stime(time_t __user *tptr);
68 asmlinkage long sys_gettimeofday(struct timeval __user *tv, 68 asmlinkage long sys_gettimeofday(struct timeval __user *tv,
69 struct timezone __user *tz); 69 struct timezone __user *tz);
70 asmlinkage long sys_settimeofday(struct timeval __user *tv, 70 asmlinkage long sys_settimeofday(struct timeval __user *tv,
71 struct timezone __user *tz); 71 struct timezone __user *tz);
72 asmlinkage long sys_adjtimex(struct timex __user *txc_p); 72 asmlinkage long sys_adjtimex(struct timex __user *txc_p);
73 73
74 asmlinkage long sys_times(struct tms __user *tbuf); 74 asmlinkage long sys_times(struct tms __user *tbuf);
75 75
76 asmlinkage long sys_gettid(void); 76 asmlinkage long sys_gettid(void);
77 asmlinkage long sys_nanosleep(struct timespec __user *rqtp, struct timespec __user *rmtp); 77 asmlinkage long sys_nanosleep(struct timespec __user *rqtp, struct timespec __user *rmtp);
78 asmlinkage unsigned long sys_alarm(unsigned int seconds); 78 asmlinkage unsigned long sys_alarm(unsigned int seconds);
79 asmlinkage long sys_getpid(void); 79 asmlinkage long sys_getpid(void);
80 asmlinkage long sys_getppid(void); 80 asmlinkage long sys_getppid(void);
81 asmlinkage long sys_getuid(void); 81 asmlinkage long sys_getuid(void);
82 asmlinkage long sys_geteuid(void); 82 asmlinkage long sys_geteuid(void);
83 asmlinkage long sys_getgid(void); 83 asmlinkage long sys_getgid(void);
84 asmlinkage long sys_getegid(void); 84 asmlinkage long sys_getegid(void);
85 asmlinkage long sys_getresuid(uid_t __user *ruid, uid_t __user *euid, uid_t __user *suid); 85 asmlinkage long sys_getresuid(uid_t __user *ruid, uid_t __user *euid, uid_t __user *suid);
86 asmlinkage long sys_getresgid(gid_t __user *rgid, gid_t __user *egid, gid_t __user *sgid); 86 asmlinkage long sys_getresgid(gid_t __user *rgid, gid_t __user *egid, gid_t __user *sgid);
87 asmlinkage long sys_getpgid(pid_t pid); 87 asmlinkage long sys_getpgid(pid_t pid);
88 asmlinkage long sys_getpgrp(void); 88 asmlinkage long sys_getpgrp(void);
89 asmlinkage long sys_getsid(pid_t pid); 89 asmlinkage long sys_getsid(pid_t pid);
90 asmlinkage long sys_getgroups(int gidsetsize, gid_t __user *grouplist); 90 asmlinkage long sys_getgroups(int gidsetsize, gid_t __user *grouplist);
91 91
92 asmlinkage long sys_setregid(gid_t rgid, gid_t egid); 92 asmlinkage long sys_setregid(gid_t rgid, gid_t egid);
93 asmlinkage long sys_setgid(gid_t gid); 93 asmlinkage long sys_setgid(gid_t gid);
94 asmlinkage long sys_setreuid(uid_t ruid, uid_t euid); 94 asmlinkage long sys_setreuid(uid_t ruid, uid_t euid);
95 asmlinkage long sys_setuid(uid_t uid); 95 asmlinkage long sys_setuid(uid_t uid);
96 asmlinkage long sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); 96 asmlinkage long sys_setresuid(uid_t ruid, uid_t euid, uid_t suid);
97 asmlinkage long sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); 97 asmlinkage long sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid);
98 asmlinkage long sys_setfsuid(uid_t uid); 98 asmlinkage long sys_setfsuid(uid_t uid);
99 asmlinkage long sys_setfsgid(gid_t gid); 99 asmlinkage long sys_setfsgid(gid_t gid);
100 asmlinkage long sys_setpgid(pid_t pid, pid_t pgid); 100 asmlinkage long sys_setpgid(pid_t pid, pid_t pgid);
101 asmlinkage long sys_setsid(void); 101 asmlinkage long sys_setsid(void);
102 asmlinkage long sys_setgroups(int gidsetsize, gid_t __user *grouplist); 102 asmlinkage long sys_setgroups(int gidsetsize, gid_t __user *grouplist);
103 103
104 asmlinkage long sys_acct(const char __user *name); 104 asmlinkage long sys_acct(const char __user *name);
105 asmlinkage long sys_capget(cap_user_header_t header, 105 asmlinkage long sys_capget(cap_user_header_t header,
106 cap_user_data_t dataptr); 106 cap_user_data_t dataptr);
107 asmlinkage long sys_capset(cap_user_header_t header, 107 asmlinkage long sys_capset(cap_user_header_t header,
108 const cap_user_data_t data); 108 const cap_user_data_t data);
109 asmlinkage long sys_personality(u_long personality); 109 asmlinkage long sys_personality(u_long personality);
110 110
111 asmlinkage long sys_sigpending(old_sigset_t __user *set); 111 asmlinkage long sys_sigpending(old_sigset_t __user *set);
112 asmlinkage long sys_sigprocmask(int how, old_sigset_t __user *set, 112 asmlinkage long sys_sigprocmask(int how, old_sigset_t __user *set,
113 old_sigset_t __user *oset); 113 old_sigset_t __user *oset);
114 asmlinkage long sys_getitimer(int which, struct itimerval __user *value); 114 asmlinkage long sys_getitimer(int which, struct itimerval __user *value);
115 asmlinkage long sys_setitimer(int which, 115 asmlinkage long sys_setitimer(int which,
116 struct itimerval __user *value, 116 struct itimerval __user *value,
117 struct itimerval __user *ovalue); 117 struct itimerval __user *ovalue);
118 asmlinkage long sys_timer_create(clockid_t which_clock, 118 asmlinkage long sys_timer_create(clockid_t which_clock,
119 struct sigevent __user *timer_event_spec, 119 struct sigevent __user *timer_event_spec,
120 timer_t __user * created_timer_id); 120 timer_t __user * created_timer_id);
121 asmlinkage long sys_timer_gettime(timer_t timer_id, 121 asmlinkage long sys_timer_gettime(timer_t timer_id,
122 struct itimerspec __user *setting); 122 struct itimerspec __user *setting);
123 asmlinkage long sys_timer_getoverrun(timer_t timer_id); 123 asmlinkage long sys_timer_getoverrun(timer_t timer_id);
124 asmlinkage long sys_timer_settime(timer_t timer_id, int flags, 124 asmlinkage long sys_timer_settime(timer_t timer_id, int flags,
125 const struct itimerspec __user *new_setting, 125 const struct itimerspec __user *new_setting,
126 struct itimerspec __user *old_setting); 126 struct itimerspec __user *old_setting);
127 asmlinkage long sys_timer_delete(timer_t timer_id); 127 asmlinkage long sys_timer_delete(timer_t timer_id);
128 asmlinkage long sys_clock_settime(clockid_t which_clock, 128 asmlinkage long sys_clock_settime(clockid_t which_clock,
129 const struct timespec __user *tp); 129 const struct timespec __user *tp);
130 asmlinkage long sys_clock_gettime(clockid_t which_clock, 130 asmlinkage long sys_clock_gettime(clockid_t which_clock,
131 struct timespec __user *tp); 131 struct timespec __user *tp);
132 asmlinkage long sys_clock_getres(clockid_t which_clock, 132 asmlinkage long sys_clock_getres(clockid_t which_clock,
133 struct timespec __user *tp); 133 struct timespec __user *tp);
134 asmlinkage long sys_clock_nanosleep(clockid_t which_clock, int flags, 134 asmlinkage long sys_clock_nanosleep(clockid_t which_clock, int flags,
135 const struct timespec __user *rqtp, 135 const struct timespec __user *rqtp,
136 struct timespec __user *rmtp); 136 struct timespec __user *rmtp);
137 137
138 asmlinkage long sys_nice(int increment); 138 asmlinkage long sys_nice(int increment);
139 asmlinkage long sys_sched_setscheduler(pid_t pid, int policy, 139 asmlinkage long sys_sched_setscheduler(pid_t pid, int policy,
140 struct sched_param __user *param); 140 struct sched_param __user *param);
141 asmlinkage long sys_sched_setparam(pid_t pid, 141 asmlinkage long sys_sched_setparam(pid_t pid,
142 struct sched_param __user *param); 142 struct sched_param __user *param);
143 asmlinkage long sys_sched_getscheduler(pid_t pid); 143 asmlinkage long sys_sched_getscheduler(pid_t pid);
144 asmlinkage long sys_sched_getparam(pid_t pid, 144 asmlinkage long sys_sched_getparam(pid_t pid,
145 struct sched_param __user *param); 145 struct sched_param __user *param);
146 asmlinkage long sys_sched_setaffinity(pid_t pid, unsigned int len, 146 asmlinkage long sys_sched_setaffinity(pid_t pid, unsigned int len,
147 unsigned long __user *user_mask_ptr); 147 unsigned long __user *user_mask_ptr);
148 asmlinkage long sys_sched_getaffinity(pid_t pid, unsigned int len, 148 asmlinkage long sys_sched_getaffinity(pid_t pid, unsigned int len,
149 unsigned long __user *user_mask_ptr); 149 unsigned long __user *user_mask_ptr);
150 asmlinkage long sys_sched_yield(void); 150 asmlinkage long sys_sched_yield(void);
151 asmlinkage long sys_sched_get_priority_max(int policy); 151 asmlinkage long sys_sched_get_priority_max(int policy);
152 asmlinkage long sys_sched_get_priority_min(int policy); 152 asmlinkage long sys_sched_get_priority_min(int policy);
153 asmlinkage long sys_sched_rr_get_interval(pid_t pid, 153 asmlinkage long sys_sched_rr_get_interval(pid_t pid,
154 struct timespec __user *interval); 154 struct timespec __user *interval);
155 asmlinkage long sys_setpriority(int which, int who, int niceval); 155 asmlinkage long sys_setpriority(int which, int who, int niceval);
156 asmlinkage long sys_getpriority(int which, int who); 156 asmlinkage long sys_getpriority(int which, int who);
157 157
158 asmlinkage long sys_shutdown(int, int); 158 asmlinkage long sys_shutdown(int, int);
159 asmlinkage long sys_reboot(int magic1, int magic2, unsigned int cmd, 159 asmlinkage long sys_reboot(int magic1, int magic2, unsigned int cmd,
160 void __user *arg); 160 void __user *arg);
161 asmlinkage long sys_restart_syscall(void); 161 asmlinkage long sys_restart_syscall(void);
162 asmlinkage long sys_kexec_load(unsigned long entry, unsigned long nr_segments, 162 asmlinkage long sys_kexec_load(unsigned long entry, unsigned long nr_segments,
163 struct kexec_segment __user *segments, 163 struct kexec_segment __user *segments,
164 unsigned long flags); 164 unsigned long flags);
165 165
166 asmlinkage long sys_exit(int error_code); 166 asmlinkage long sys_exit(int error_code);
167 asmlinkage void sys_exit_group(int error_code); 167 asmlinkage void sys_exit_group(int error_code);
168 asmlinkage long sys_wait4(pid_t pid, int __user *stat_addr, 168 asmlinkage long sys_wait4(pid_t pid, int __user *stat_addr,
169 int options, struct rusage __user *ru); 169 int options, struct rusage __user *ru);
170 asmlinkage long sys_waitid(int which, pid_t pid, 170 asmlinkage long sys_waitid(int which, pid_t pid,
171 struct siginfo __user *infop, 171 struct siginfo __user *infop,
172 int options, struct rusage __user *ru); 172 int options, struct rusage __user *ru);
173 asmlinkage long sys_waitpid(pid_t pid, int __user *stat_addr, int options); 173 asmlinkage long sys_waitpid(pid_t pid, int __user *stat_addr, int options);
174 asmlinkage long sys_set_tid_address(int __user *tidptr); 174 asmlinkage long sys_set_tid_address(int __user *tidptr);
175 asmlinkage long sys_futex(u32 __user *uaddr, int op, int val, 175 asmlinkage long sys_futex(u32 __user *uaddr, int op, int val,
176 struct timespec __user *utime, u32 __user *uaddr2, 176 struct timespec __user *utime, u32 __user *uaddr2,
177 int val3); 177 int val3);
178 178
179 asmlinkage long sys_init_module(void __user *umod, unsigned long len, 179 asmlinkage long sys_init_module(void __user *umod, unsigned long len,
180 const char __user *uargs); 180 const char __user *uargs);
181 asmlinkage long sys_delete_module(const char __user *name_user, 181 asmlinkage long sys_delete_module(const char __user *name_user,
182 unsigned int flags); 182 unsigned int flags);
183 183
184 asmlinkage long sys_rt_sigprocmask(int how, sigset_t __user *set, 184 asmlinkage long sys_rt_sigprocmask(int how, sigset_t __user *set,
185 sigset_t __user *oset, size_t sigsetsize); 185 sigset_t __user *oset, size_t sigsetsize);
186 asmlinkage long sys_rt_sigpending(sigset_t __user *set, size_t sigsetsize); 186 asmlinkage long sys_rt_sigpending(sigset_t __user *set, size_t sigsetsize);
187 asmlinkage long sys_rt_sigtimedwait(const sigset_t __user *uthese, 187 asmlinkage long sys_rt_sigtimedwait(const sigset_t __user *uthese,
188 siginfo_t __user *uinfo, 188 siginfo_t __user *uinfo,
189 const struct timespec __user *uts, 189 const struct timespec __user *uts,
190 size_t sigsetsize); 190 size_t sigsetsize);
191 asmlinkage long sys_kill(int pid, int sig); 191 asmlinkage long sys_kill(int pid, int sig);
192 asmlinkage long sys_tgkill(int tgid, int pid, int sig); 192 asmlinkage long sys_tgkill(int tgid, int pid, int sig);
193 asmlinkage long sys_tkill(int pid, int sig); 193 asmlinkage long sys_tkill(int pid, int sig);
194 asmlinkage long sys_rt_sigqueueinfo(int pid, int sig, siginfo_t __user *uinfo); 194 asmlinkage long sys_rt_sigqueueinfo(int pid, int sig, siginfo_t __user *uinfo);
195 asmlinkage long sys_sgetmask(void); 195 asmlinkage long sys_sgetmask(void);
196 asmlinkage long sys_ssetmask(int newmask); 196 asmlinkage long sys_ssetmask(int newmask);
197 asmlinkage unsigned long sys_signal(int sig, __sighandler_t handler); 197 asmlinkage unsigned long sys_signal(int sig, __sighandler_t handler);
198 asmlinkage long sys_pause(void); 198 asmlinkage long sys_pause(void);
199 199
200 asmlinkage long sys_sync(void); 200 asmlinkage long sys_sync(void);
201 asmlinkage long sys_fsync(unsigned int fd); 201 asmlinkage long sys_fsync(unsigned int fd);
202 asmlinkage long sys_fdatasync(unsigned int fd); 202 asmlinkage long sys_fdatasync(unsigned int fd);
203 asmlinkage long sys_bdflush(int func, long data); 203 asmlinkage long sys_bdflush(int func, long data);
204 asmlinkage long sys_mount(char __user *dev_name, char __user *dir_name, 204 asmlinkage long sys_mount(char __user *dev_name, char __user *dir_name,
205 char __user *type, unsigned long flags, 205 char __user *type, unsigned long flags,
206 void __user *data); 206 void __user *data);
207 asmlinkage long sys_umount(char __user *name, int flags); 207 asmlinkage long sys_umount(char __user *name, int flags);
208 asmlinkage long sys_oldumount(char __user *name); 208 asmlinkage long sys_oldumount(char __user *name);
209 asmlinkage long sys_truncate(const char __user *path, 209 asmlinkage long sys_truncate(const char __user *path,
210 unsigned long length); 210 unsigned long length);
211 asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length); 211 asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length);
212 asmlinkage long sys_stat(char __user *filename, 212 asmlinkage long sys_stat(char __user *filename,
213 struct __old_kernel_stat __user *statbuf); 213 struct __old_kernel_stat __user *statbuf);
214 asmlinkage long sys_statfs(const char __user * path, 214 asmlinkage long sys_statfs(const char __user * path,
215 struct statfs __user *buf); 215 struct statfs __user *buf);
216 asmlinkage long sys_statfs64(const char __user *path, size_t sz, 216 asmlinkage long sys_statfs64(const char __user *path, size_t sz,
217 struct statfs64 __user *buf); 217 struct statfs64 __user *buf);
218 asmlinkage long sys_fstatfs(unsigned int fd, struct statfs __user *buf); 218 asmlinkage long sys_fstatfs(unsigned int fd, struct statfs __user *buf);
219 asmlinkage long sys_fstatfs64(unsigned int fd, size_t sz, 219 asmlinkage long sys_fstatfs64(unsigned int fd, size_t sz,
220 struct statfs64 __user *buf); 220 struct statfs64 __user *buf);
221 asmlinkage long sys_lstat(char __user *filename, 221 asmlinkage long sys_lstat(char __user *filename,
222 struct __old_kernel_stat __user *statbuf); 222 struct __old_kernel_stat __user *statbuf);
223 asmlinkage long sys_fstat(unsigned int fd, 223 asmlinkage long sys_fstat(unsigned int fd,
224 struct __old_kernel_stat __user *statbuf); 224 struct __old_kernel_stat __user *statbuf);
225 asmlinkage long sys_newstat(char __user *filename, 225 asmlinkage long sys_newstat(char __user *filename,
226 struct stat __user *statbuf); 226 struct stat __user *statbuf);
227 asmlinkage long sys_newlstat(char __user *filename, 227 asmlinkage long sys_newlstat(char __user *filename,
228 struct stat __user *statbuf); 228 struct stat __user *statbuf);
229 asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf); 229 asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf);
230 asmlinkage long sys_ustat(unsigned dev, struct ustat __user *ubuf); 230 asmlinkage long sys_ustat(unsigned dev, struct ustat __user *ubuf);
231 #if BITS_PER_LONG == 32 231 #if BITS_PER_LONG == 32
232 asmlinkage long sys_stat64(char __user *filename, 232 asmlinkage long sys_stat64(char __user *filename,
233 struct stat64 __user *statbuf); 233 struct stat64 __user *statbuf);
234 asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf); 234 asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf);
235 asmlinkage long sys_lstat64(char __user *filename, 235 asmlinkage long sys_lstat64(char __user *filename,
236 struct stat64 __user *statbuf); 236 struct stat64 __user *statbuf);
237 asmlinkage long sys_truncate64(const char __user *path, loff_t length); 237 asmlinkage long sys_truncate64(const char __user *path, loff_t length);
238 asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length); 238 asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length);
239 #endif 239 #endif
240 240
241 asmlinkage long sys_setxattr(char __user *path, char __user *name, 241 asmlinkage long sys_setxattr(char __user *path, char __user *name,
242 void __user *value, size_t size, int flags); 242 void __user *value, size_t size, int flags);
243 asmlinkage long sys_lsetxattr(char __user *path, char __user *name, 243 asmlinkage long sys_lsetxattr(char __user *path, char __user *name,
244 void __user *value, size_t size, int flags); 244 void __user *value, size_t size, int flags);
245 asmlinkage long sys_fsetxattr(int fd, char __user *name, void __user *value, 245 asmlinkage long sys_fsetxattr(int fd, char __user *name, void __user *value,
246 size_t size, int flags); 246 size_t size, int flags);
247 asmlinkage ssize_t sys_getxattr(char __user *path, char __user *name, 247 asmlinkage ssize_t sys_getxattr(char __user *path, char __user *name,
248 void __user *value, size_t size); 248 void __user *value, size_t size);
249 asmlinkage ssize_t sys_lgetxattr(char __user *path, char __user *name, 249 asmlinkage ssize_t sys_lgetxattr(char __user *path, char __user *name,
250 void __user *value, size_t size); 250 void __user *value, size_t size);
251 asmlinkage ssize_t sys_fgetxattr(int fd, char __user *name, 251 asmlinkage ssize_t sys_fgetxattr(int fd, char __user *name,
252 void __user *value, size_t size); 252 void __user *value, size_t size);
253 asmlinkage ssize_t sys_listxattr(char __user *path, char __user *list, 253 asmlinkage ssize_t sys_listxattr(char __user *path, char __user *list,
254 size_t size); 254 size_t size);
255 asmlinkage ssize_t sys_llistxattr(char __user *path, char __user *list, 255 asmlinkage ssize_t sys_llistxattr(char __user *path, char __user *list,
256 size_t size); 256 size_t size);
257 asmlinkage ssize_t sys_flistxattr(int fd, char __user *list, size_t size); 257 asmlinkage ssize_t sys_flistxattr(int fd, char __user *list, size_t size);
258 asmlinkage long sys_removexattr(char __user *path, char __user *name); 258 asmlinkage long sys_removexattr(char __user *path, char __user *name);
259 asmlinkage long sys_lremovexattr(char __user *path, char __user *name); 259 asmlinkage long sys_lremovexattr(char __user *path, char __user *name);
260 asmlinkage long sys_fremovexattr(int fd, char __user *name); 260 asmlinkage long sys_fremovexattr(int fd, char __user *name);
261 261
262 asmlinkage unsigned long sys_brk(unsigned long brk); 262 asmlinkage unsigned long sys_brk(unsigned long brk);
263 asmlinkage long sys_mprotect(unsigned long start, size_t len, 263 asmlinkage long sys_mprotect(unsigned long start, size_t len,
264 unsigned long prot); 264 unsigned long prot);
265 asmlinkage unsigned long sys_mremap(unsigned long addr, 265 asmlinkage unsigned long sys_mremap(unsigned long addr,
266 unsigned long old_len, unsigned long new_len, 266 unsigned long old_len, unsigned long new_len,
267 unsigned long flags, unsigned long new_addr); 267 unsigned long flags, unsigned long new_addr);
268 asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size, 268 asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size,
269 unsigned long prot, unsigned long pgoff, 269 unsigned long prot, unsigned long pgoff,
270 unsigned long flags); 270 unsigned long flags);
271 asmlinkage long sys_msync(unsigned long start, size_t len, int flags); 271 asmlinkage long sys_msync(unsigned long start, size_t len, int flags);
272 asmlinkage long sys_fadvise64(int fd, loff_t offset, size_t len, int advice); 272 asmlinkage long sys_fadvise64(int fd, loff_t offset, size_t len, int advice);
273 asmlinkage long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice); 273 asmlinkage long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice);
274 asmlinkage long sys_munmap(unsigned long addr, size_t len); 274 asmlinkage long sys_munmap(unsigned long addr, size_t len);
275 asmlinkage long sys_mlock(unsigned long start, size_t len); 275 asmlinkage long sys_mlock(unsigned long start, size_t len);
276 asmlinkage long sys_munlock(unsigned long start, size_t len); 276 asmlinkage long sys_munlock(unsigned long start, size_t len);
277 asmlinkage long sys_mlockall(int flags); 277 asmlinkage long sys_mlockall(int flags);
278 asmlinkage long sys_munlockall(void); 278 asmlinkage long sys_munlockall(void);
279 asmlinkage long sys_madvise(unsigned long start, size_t len, int behavior); 279 asmlinkage long sys_madvise(unsigned long start, size_t len, int behavior);
280 asmlinkage long sys_mincore(unsigned long start, size_t len, 280 asmlinkage long sys_mincore(unsigned long start, size_t len,
281 unsigned char __user * vec); 281 unsigned char __user * vec);
282 282
283 asmlinkage long sys_pivot_root(const char __user *new_root, 283 asmlinkage long sys_pivot_root(const char __user *new_root,
284 const char __user *put_old); 284 const char __user *put_old);
285 asmlinkage long sys_chroot(const char __user *filename); 285 asmlinkage long sys_chroot(const char __user *filename);
286 asmlinkage long sys_mknod(const char __user *filename, int mode, 286 asmlinkage long sys_mknod(const char __user *filename, int mode,
287 unsigned dev); 287 unsigned dev);
288 asmlinkage long sys_link(const char __user *oldname, 288 asmlinkage long sys_link(const char __user *oldname,
289 const char __user *newname); 289 const char __user *newname);
290 asmlinkage long sys_symlink(const char __user *old, const char __user *new); 290 asmlinkage long sys_symlink(const char __user *old, const char __user *new);
291 asmlinkage long sys_unlink(const char __user *pathname); 291 asmlinkage long sys_unlink(const char __user *pathname);
292 asmlinkage long sys_rename(const char __user *oldname, 292 asmlinkage long sys_rename(const char __user *oldname,
293 const char __user *newname); 293 const char __user *newname);
294 asmlinkage long sys_chmod(const char __user *filename, mode_t mode); 294 asmlinkage long sys_chmod(const char __user *filename, mode_t mode);
295 asmlinkage long sys_fchmod(unsigned int fd, mode_t mode); 295 asmlinkage long sys_fchmod(unsigned int fd, mode_t mode);
296 296
297 asmlinkage long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg); 297 asmlinkage long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg);
298 #if BITS_PER_LONG == 32 298 #if BITS_PER_LONG == 32
299 asmlinkage long sys_fcntl64(unsigned int fd, 299 asmlinkage long sys_fcntl64(unsigned int fd,
300 unsigned int cmd, unsigned long arg); 300 unsigned int cmd, unsigned long arg);
301 #endif 301 #endif
302 asmlinkage long sys_dup(unsigned int fildes); 302 asmlinkage long sys_dup(unsigned int fildes);
303 asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd); 303 asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd);
304 asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int on); 304 asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int on);
305 asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, 305 asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd,
306 unsigned long arg); 306 unsigned long arg);
307 asmlinkage long sys_flock(unsigned int fd, unsigned int cmd); 307 asmlinkage long sys_flock(unsigned int fd, unsigned int cmd);
308 asmlinkage long sys_io_setup(unsigned nr_reqs, aio_context_t __user *ctx); 308 asmlinkage long sys_io_setup(unsigned nr_reqs, aio_context_t __user *ctx);
309 asmlinkage long sys_io_destroy(aio_context_t ctx); 309 asmlinkage long sys_io_destroy(aio_context_t ctx);
310 asmlinkage long sys_io_getevents(aio_context_t ctx_id, 310 asmlinkage long sys_io_getevents(aio_context_t ctx_id,
311 long min_nr, 311 long min_nr,
312 long nr, 312 long nr,
313 struct io_event __user *events, 313 struct io_event __user *events,
314 struct timespec __user *timeout); 314 struct timespec __user *timeout);
315 asmlinkage long sys_io_submit(aio_context_t, long, 315 asmlinkage long sys_io_submit(aio_context_t, long,
316 struct iocb __user * __user *); 316 struct iocb __user * __user *);
317 asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb __user *iocb, 317 asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb __user *iocb,
318 struct io_event __user *result); 318 struct io_event __user *result);
319 asmlinkage ssize_t sys_sendfile(int out_fd, int in_fd, 319 asmlinkage ssize_t sys_sendfile(int out_fd, int in_fd,
320 off_t __user *offset, size_t count); 320 off_t __user *offset, size_t count);
321 asmlinkage ssize_t sys_sendfile64(int out_fd, int in_fd, 321 asmlinkage ssize_t sys_sendfile64(int out_fd, int in_fd,
322 loff_t __user *offset, size_t count); 322 loff_t __user *offset, size_t count);
323 asmlinkage long sys_readlink(const char __user *path, 323 asmlinkage long sys_readlink(const char __user *path,
324 char __user *buf, int bufsiz); 324 char __user *buf, int bufsiz);
325 asmlinkage long sys_creat(const char __user *pathname, int mode); 325 asmlinkage long sys_creat(const char __user *pathname, int mode);
326 asmlinkage long sys_open(const char __user *filename, 326 asmlinkage long sys_open(const char __user *filename,
327 int flags, int mode); 327 int flags, int mode);
328 asmlinkage long sys_close(unsigned int fd); 328 asmlinkage long sys_close(unsigned int fd);
329 asmlinkage long sys_access(const char __user *filename, int mode); 329 asmlinkage long sys_access(const char __user *filename, int mode);
330 asmlinkage long sys_vhangup(void); 330 asmlinkage long sys_vhangup(void);
331 asmlinkage long sys_chown(const char __user *filename, 331 asmlinkage long sys_chown(const char __user *filename,
332 uid_t user, gid_t group); 332 uid_t user, gid_t group);
333 asmlinkage long sys_lchown(const char __user *filename, 333 asmlinkage long sys_lchown(const char __user *filename,
334 uid_t user, gid_t group); 334 uid_t user, gid_t group);
335 asmlinkage long sys_fchown(unsigned int fd, uid_t user, gid_t group); 335 asmlinkage long sys_fchown(unsigned int fd, uid_t user, gid_t group);
336 #ifdef CONFIG_UID16 336 #ifdef CONFIG_UID16
337 asmlinkage long sys_chown16(const char __user *filename, 337 asmlinkage long sys_chown16(const char __user *filename,
338 old_uid_t user, old_gid_t group); 338 old_uid_t user, old_gid_t group);
339 asmlinkage long sys_lchown16(const char __user *filename, 339 asmlinkage long sys_lchown16(const char __user *filename,
340 old_uid_t user, old_gid_t group); 340 old_uid_t user, old_gid_t group);
341 asmlinkage long sys_fchown16(unsigned int fd, old_uid_t user, old_gid_t group); 341 asmlinkage long sys_fchown16(unsigned int fd, old_uid_t user, old_gid_t group);
342 asmlinkage long sys_setregid16(old_gid_t rgid, old_gid_t egid); 342 asmlinkage long sys_setregid16(old_gid_t rgid, old_gid_t egid);
343 asmlinkage long sys_setgid16(old_gid_t gid); 343 asmlinkage long sys_setgid16(old_gid_t gid);
344 asmlinkage long sys_setreuid16(old_uid_t ruid, old_uid_t euid); 344 asmlinkage long sys_setreuid16(old_uid_t ruid, old_uid_t euid);
345 asmlinkage long sys_setuid16(old_uid_t uid); 345 asmlinkage long sys_setuid16(old_uid_t uid);
346 asmlinkage long sys_setresuid16(old_uid_t ruid, old_uid_t euid, old_uid_t suid); 346 asmlinkage long sys_setresuid16(old_uid_t ruid, old_uid_t euid, old_uid_t suid);
347 asmlinkage long sys_getresuid16(old_uid_t __user *ruid, 347 asmlinkage long sys_getresuid16(old_uid_t __user *ruid,
348 old_uid_t __user *euid, old_uid_t __user *suid); 348 old_uid_t __user *euid, old_uid_t __user *suid);
349 asmlinkage long sys_setresgid16(old_gid_t rgid, old_gid_t egid, old_gid_t sgid); 349 asmlinkage long sys_setresgid16(old_gid_t rgid, old_gid_t egid, old_gid_t sgid);
350 asmlinkage long sys_getresgid16(old_gid_t __user *rgid, 350 asmlinkage long sys_getresgid16(old_gid_t __user *rgid,
351 old_gid_t __user *egid, old_gid_t __user *sgid); 351 old_gid_t __user *egid, old_gid_t __user *sgid);
352 asmlinkage long sys_setfsuid16(old_uid_t uid); 352 asmlinkage long sys_setfsuid16(old_uid_t uid);
353 asmlinkage long sys_setfsgid16(old_gid_t gid); 353 asmlinkage long sys_setfsgid16(old_gid_t gid);
354 asmlinkage long sys_getgroups16(int gidsetsize, old_gid_t __user *grouplist); 354 asmlinkage long sys_getgroups16(int gidsetsize, old_gid_t __user *grouplist);
355 asmlinkage long sys_setgroups16(int gidsetsize, old_gid_t __user *grouplist); 355 asmlinkage long sys_setgroups16(int gidsetsize, old_gid_t __user *grouplist);
356 asmlinkage long sys_getuid16(void); 356 asmlinkage long sys_getuid16(void);
357 asmlinkage long sys_geteuid16(void); 357 asmlinkage long sys_geteuid16(void);
358 asmlinkage long sys_getgid16(void); 358 asmlinkage long sys_getgid16(void);
359 asmlinkage long sys_getegid16(void); 359 asmlinkage long sys_getegid16(void);
360 #endif 360 #endif
361 361
362 asmlinkage long sys_utime(char __user *filename, 362 asmlinkage long sys_utime(char __user *filename,
363 struct utimbuf __user *times); 363 struct utimbuf __user *times);
364 asmlinkage long sys_utimes(char __user *filename, 364 asmlinkage long sys_utimes(char __user *filename,
365 struct timeval __user *utimes); 365 struct timeval __user *utimes);
366 asmlinkage off_t sys_lseek(unsigned int fd, off_t offset, 366 asmlinkage off_t sys_lseek(unsigned int fd, off_t offset,
367 unsigned int origin); 367 unsigned int origin);
368 asmlinkage long sys_llseek(unsigned int fd, unsigned long offset_high, 368 asmlinkage long sys_llseek(unsigned int fd, unsigned long offset_high,
369 unsigned long offset_low, loff_t __user *result, 369 unsigned long offset_low, loff_t __user *result,
370 unsigned int origin); 370 unsigned int origin);
371 asmlinkage ssize_t sys_read(unsigned int fd, char __user *buf, 371 asmlinkage ssize_t sys_read(unsigned int fd, char __user *buf,
372 size_t count); 372 size_t count);
373 asmlinkage ssize_t sys_readahead(int fd, loff_t offset, size_t count); 373 asmlinkage ssize_t sys_readahead(int fd, loff_t offset, size_t count);
374 asmlinkage ssize_t sys_readv(unsigned long fd, 374 asmlinkage ssize_t sys_readv(unsigned long fd,
375 const struct iovec __user *vec, 375 const struct iovec __user *vec,
376 unsigned long vlen); 376 unsigned long vlen);
377 asmlinkage ssize_t sys_write(unsigned int fd, const char __user *buf, 377 asmlinkage ssize_t sys_write(unsigned int fd, const char __user *buf,
378 size_t count); 378 size_t count);
379 asmlinkage ssize_t sys_writev(unsigned long fd, 379 asmlinkage ssize_t sys_writev(unsigned long fd,
380 const struct iovec __user *vec, 380 const struct iovec __user *vec,
381 unsigned long vlen); 381 unsigned long vlen);
382 asmlinkage ssize_t sys_pread64(unsigned int fd, char __user *buf, 382 asmlinkage ssize_t sys_pread64(unsigned int fd, char __user *buf,
383 size_t count, loff_t pos); 383 size_t count, loff_t pos);
384 asmlinkage ssize_t sys_pwrite64(unsigned int fd, const char __user *buf, 384 asmlinkage ssize_t sys_pwrite64(unsigned int fd, const char __user *buf,
385 size_t count, loff_t pos); 385 size_t count, loff_t pos);
386 asmlinkage long sys_getcwd(char __user *buf, unsigned long size); 386 asmlinkage long sys_getcwd(char __user *buf, unsigned long size);
387 asmlinkage long sys_mkdir(const char __user *pathname, int mode); 387 asmlinkage long sys_mkdir(const char __user *pathname, int mode);
388 asmlinkage long sys_chdir(const char __user *filename); 388 asmlinkage long sys_chdir(const char __user *filename);
389 asmlinkage long sys_fchdir(unsigned int fd); 389 asmlinkage long sys_fchdir(unsigned int fd);
390 asmlinkage long sys_rmdir(const char __user *pathname); 390 asmlinkage long sys_rmdir(const char __user *pathname);
391 asmlinkage long sys_lookup_dcookie(u64 cookie64, char __user *buf, size_t len); 391 asmlinkage long sys_lookup_dcookie(u64 cookie64, char __user *buf, size_t len);
392 asmlinkage long sys_quotactl(unsigned int cmd, const char __user *special, 392 asmlinkage long sys_quotactl(unsigned int cmd, const char __user *special,
393 qid_t id, void __user *addr); 393 qid_t id, void __user *addr);
394 asmlinkage long sys_getdents(unsigned int fd, 394 asmlinkage long sys_getdents(unsigned int fd,
395 struct linux_dirent __user *dirent, 395 struct linux_dirent __user *dirent,
396 unsigned int count); 396 unsigned int count);
397 asmlinkage long sys_getdents64(unsigned int fd, 397 asmlinkage long sys_getdents64(unsigned int fd,
398 struct linux_dirent64 __user *dirent, 398 struct linux_dirent64 __user *dirent,
399 unsigned int count); 399 unsigned int count);
400 400
401 asmlinkage long sys_setsockopt(int fd, int level, int optname, 401 asmlinkage long sys_setsockopt(int fd, int level, int optname,
402 char __user *optval, int optlen); 402 char __user *optval, int optlen);
403 asmlinkage long sys_getsockopt(int fd, int level, int optname, 403 asmlinkage long sys_getsockopt(int fd, int level, int optname,
404 char __user *optval, int __user *optlen); 404 char __user *optval, int __user *optlen);
405 asmlinkage long sys_bind(int, struct sockaddr __user *, int); 405 asmlinkage long sys_bind(int, struct sockaddr __user *, int);
406 asmlinkage long sys_connect(int, struct sockaddr __user *, int); 406 asmlinkage long sys_connect(int, struct sockaddr __user *, int);
407 asmlinkage long sys_accept(int, struct sockaddr __user *, int __user *); 407 asmlinkage long sys_accept(int, struct sockaddr __user *, int __user *);
408 asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *); 408 asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *);
409 asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *); 409 asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *);
410 asmlinkage long sys_send(int, void __user *, size_t, unsigned); 410 asmlinkage long sys_send(int, void __user *, size_t, unsigned);
411 asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, 411 asmlinkage long sys_sendto(int, void __user *, size_t, unsigned,
412 struct sockaddr __user *, int); 412 struct sockaddr __user *, int);
413 asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags); 413 asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags);
414 asmlinkage long sys_recv(int, void __user *, size_t, unsigned); 414 asmlinkage long sys_recv(int, void __user *, size_t, unsigned);
415 asmlinkage long sys_recvfrom(int, void __user *, size_t, unsigned, 415 asmlinkage long sys_recvfrom(int, void __user *, size_t, unsigned,
416 struct sockaddr __user *, int __user *); 416 struct sockaddr __user *, int __user *);
417 asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg, unsigned flags); 417 asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg, unsigned flags);
418 asmlinkage long sys_socket(int, int, int); 418 asmlinkage long sys_socket(int, int, int);
419 asmlinkage long sys_socketpair(int, int, int, int __user *); 419 asmlinkage long sys_socketpair(int, int, int, int __user *);
420 asmlinkage long sys_socketcall(int call, unsigned long __user *args); 420 asmlinkage long sys_socketcall(int call, unsigned long __user *args);
421 asmlinkage long sys_listen(int, int); 421 asmlinkage long sys_listen(int, int);
422 asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds, 422 asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds,
423 long timeout); 423 long timeout);
424 asmlinkage long sys_select(int n, fd_set __user *inp, fd_set __user *outp, 424 asmlinkage long sys_select(int n, fd_set __user *inp, fd_set __user *outp,
425 fd_set __user *exp, struct timeval __user *tvp); 425 fd_set __user *exp, struct timeval __user *tvp);
426 asmlinkage long sys_epoll_create(int size); 426 asmlinkage long sys_epoll_create(int size);
427 asmlinkage long sys_epoll_ctl(int epfd, int op, int fd, 427 asmlinkage long sys_epoll_ctl(int epfd, int op, int fd,
428 struct epoll_event __user *event); 428 struct epoll_event __user *event);
429 asmlinkage long sys_epoll_wait(int epfd, struct epoll_event __user *events, 429 asmlinkage long sys_epoll_wait(int epfd, struct epoll_event __user *events,
430 int maxevents, int timeout); 430 int maxevents, int timeout);
431 asmlinkage long sys_gethostname(char __user *name, int len); 431 asmlinkage long sys_gethostname(char __user *name, int len);
432 asmlinkage long sys_sethostname(char __user *name, int len); 432 asmlinkage long sys_sethostname(char __user *name, int len);
433 asmlinkage long sys_setdomainname(char __user *name, int len); 433 asmlinkage long sys_setdomainname(char __user *name, int len);
434 asmlinkage long sys_newuname(struct new_utsname __user *name); 434 asmlinkage long sys_newuname(struct new_utsname __user *name);
435 435
436 asmlinkage long sys_getrlimit(unsigned int resource, 436 asmlinkage long sys_getrlimit(unsigned int resource,
437 struct rlimit __user *rlim); 437 struct rlimit __user *rlim);
438 #if defined(COMPAT_RLIM_OLD_INFINITY) || !(defined(CONFIG_IA64) || defined(CONFIG_V850)) 438 #if defined(COMPAT_RLIM_OLD_INFINITY) || !(defined(CONFIG_IA64) || defined(CONFIG_V850))
439 asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *rlim); 439 asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *rlim);
440 #endif 440 #endif
441 asmlinkage long sys_setrlimit(unsigned int resource, 441 asmlinkage long sys_setrlimit(unsigned int resource,
442 struct rlimit __user *rlim); 442 struct rlimit __user *rlim);
443 asmlinkage long sys_getrusage(int who, struct rusage __user *ru); 443 asmlinkage long sys_getrusage(int who, struct rusage __user *ru);
444 asmlinkage long sys_umask(int mask); 444 asmlinkage long sys_umask(int mask);
445 445
446 asmlinkage long sys_msgget(key_t key, int msgflg); 446 asmlinkage long sys_msgget(key_t key, int msgflg);
447 asmlinkage long sys_msgsnd(int msqid, struct msgbuf __user *msgp, 447 asmlinkage long sys_msgsnd(int msqid, struct msgbuf __user *msgp,
448 size_t msgsz, int msgflg); 448 size_t msgsz, int msgflg);
449 asmlinkage long sys_msgrcv(int msqid, struct msgbuf __user *msgp, 449 asmlinkage long sys_msgrcv(int msqid, struct msgbuf __user *msgp,
450 size_t msgsz, long msgtyp, int msgflg); 450 size_t msgsz, long msgtyp, int msgflg);
451 asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *buf); 451 asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *buf);
452 452
453 asmlinkage long sys_semget(key_t key, int nsems, int semflg); 453 asmlinkage long sys_semget(key_t key, int nsems, int semflg);
454 asmlinkage long sys_semop(int semid, struct sembuf __user *sops, 454 asmlinkage long sys_semop(int semid, struct sembuf __user *sops,
455 unsigned nsops); 455 unsigned nsops);
456 asmlinkage long sys_semctl(int semid, int semnum, int cmd, union semun arg); 456 asmlinkage long sys_semctl(int semid, int semnum, int cmd, union semun arg);
457 asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops, 457 asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops,
458 unsigned nsops, 458 unsigned nsops,
459 const struct timespec __user *timeout); 459 const struct timespec __user *timeout);
460 asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg); 460 asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg);
461 asmlinkage long sys_shmget(key_t key, size_t size, int flag); 461 asmlinkage long sys_shmget(key_t key, size_t size, int flag);
462 asmlinkage long sys_shmdt(char __user *shmaddr); 462 asmlinkage long sys_shmdt(char __user *shmaddr);
463 asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf); 463 asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf);
464 464
465 asmlinkage long sys_mq_open(const char __user *name, int oflag, mode_t mode, struct mq_attr __user *attr); 465 asmlinkage long sys_mq_open(const char __user *name, int oflag, mode_t mode, struct mq_attr __user *attr);
466 asmlinkage long sys_mq_unlink(const char __user *name); 466 asmlinkage long sys_mq_unlink(const char __user *name);
467 asmlinkage long sys_mq_timedsend(mqd_t mqdes, const char __user *msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec __user *abs_timeout); 467 asmlinkage long sys_mq_timedsend(mqd_t mqdes, const char __user *msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec __user *abs_timeout);
468 asmlinkage ssize_t sys_mq_timedreceive(mqd_t mqdes, char __user *msg_ptr, size_t msg_len, unsigned int __user *msg_prio, const struct timespec __user *abs_timeout); 468 asmlinkage ssize_t sys_mq_timedreceive(mqd_t mqdes, char __user *msg_ptr, size_t msg_len, unsigned int __user *msg_prio, const struct timespec __user *abs_timeout);
469 asmlinkage long sys_mq_notify(mqd_t mqdes, const struct sigevent __user *notification); 469 asmlinkage long sys_mq_notify(mqd_t mqdes, const struct sigevent __user *notification);
470 asmlinkage long sys_mq_getsetattr(mqd_t mqdes, const struct mq_attr __user *mqstat, struct mq_attr __user *omqstat); 470 asmlinkage long sys_mq_getsetattr(mqd_t mqdes, const struct mq_attr __user *mqstat, struct mq_attr __user *omqstat);
471 471
472 asmlinkage long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn); 472 asmlinkage long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn);
473 asmlinkage long sys_pciconfig_read(unsigned long bus, unsigned long dfn, 473 asmlinkage long sys_pciconfig_read(unsigned long bus, unsigned long dfn,
474 unsigned long off, unsigned long len, 474 unsigned long off, unsigned long len,
475 void __user *buf); 475 void __user *buf);
476 asmlinkage long sys_pciconfig_write(unsigned long bus, unsigned long dfn, 476 asmlinkage long sys_pciconfig_write(unsigned long bus, unsigned long dfn,
477 unsigned long off, unsigned long len, 477 unsigned long off, unsigned long len,
478 void __user *buf); 478 void __user *buf);
479 479
480 asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3, 480 asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3,
481 unsigned long arg4, unsigned long arg5); 481 unsigned long arg4, unsigned long arg5);
482 asmlinkage long sys_swapon(const char __user *specialfile, int swap_flags); 482 asmlinkage long sys_swapon(const char __user *specialfile, int swap_flags);
483 asmlinkage long sys_swapoff(const char __user *specialfile); 483 asmlinkage long sys_swapoff(const char __user *specialfile);
484 asmlinkage long sys_sysctl(struct __sysctl_args __user *args); 484 asmlinkage long sys_sysctl(struct __sysctl_args __user *args);
485 asmlinkage long sys_sysinfo(struct sysinfo __user *info); 485 asmlinkage long sys_sysinfo(struct sysinfo __user *info);
486 asmlinkage long sys_sysfs(int option, 486 asmlinkage long sys_sysfs(int option,
487 unsigned long arg1, unsigned long arg2); 487 unsigned long arg1, unsigned long arg2);
488 asmlinkage long sys_nfsservctl(int cmd, 488 asmlinkage long sys_nfsservctl(int cmd,
489 struct nfsctl_arg __user *arg, 489 struct nfsctl_arg __user *arg,
490 void __user *res); 490 void __user *res);
491 asmlinkage long sys_syslog(int type, char __user *buf, int len); 491 asmlinkage long sys_syslog(int type, char __user *buf, int len);
492 asmlinkage long sys_uselib(const char __user *library); 492 asmlinkage long sys_uselib(const char __user *library);
493 asmlinkage long sys_ni_syscall(void); 493 asmlinkage long sys_ni_syscall(void);
494 494
495 asmlinkage long sys_add_key(const char __user *_type, 495 asmlinkage long sys_add_key(const char __user *_type,
496 const char __user *_description, 496 const char __user *_description,
497 const void __user *_payload, 497 const void __user *_payload,
498 size_t plen, 498 size_t plen,
499 key_serial_t destringid); 499 key_serial_t destringid);
500 500
501 asmlinkage long sys_request_key(const char __user *_type, 501 asmlinkage long sys_request_key(const char __user *_type,
502 const char __user *_description, 502 const char __user *_description,
503 const char __user *_callout_info, 503 const char __user *_callout_info,
504 key_serial_t destringid); 504 key_serial_t destringid);
505 505
506 asmlinkage long sys_keyctl(int cmd, unsigned long arg2, unsigned long arg3, 506 asmlinkage long sys_keyctl(int cmd, unsigned long arg2, unsigned long arg3,
507 unsigned long arg4, unsigned long arg5); 507 unsigned long arg4, unsigned long arg5);
508 508
509 asmlinkage long sys_ioprio_set(int which, int who, int ioprio);
510 asmlinkage long sys_ioprio_get(int which, int who);
511
509 #endif 512 #endif
510 513