diff options
author | Ivan Kokshaysky <ink@jurassic.park.msu.ru> | 2009-01-29 17:25:18 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-29 21:04:44 -0500 |
commit | e5d9a90c36e05dd080704ea58328c00f64facdc1 (patch) | |
tree | e393a9216a5ccab3010e01bc6a3f9cee2cd49164 | |
parent | 299b4eaa302138426d5a9ecd954de1f565d76c94 (diff) |
alpha: use syscall wrappers
Convert OSF syscalls and add alpha specific SYSCALL_ALIAS() macro.
Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | arch/alpha/Kconfig | 1 | ||||
-rw-r--r-- | arch/alpha/kernel/entry.S | 2 | ||||
-rw-r--r-- | arch/alpha/kernel/osf_sys.c | 113 | ||||
-rw-r--r-- | arch/alpha/kernel/signal.c | 18 | ||||
-rw-r--r-- | arch/alpha/kernel/systbls.S | 52 | ||||
-rw-r--r-- | include/linux/syscalls.h | 5 |
6 files changed, 92 insertions, 99 deletions
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index 6110197757a3..9fb8aae5c391 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig | |||
@@ -8,6 +8,7 @@ config ALPHA | |||
8 | select HAVE_AOUT | 8 | select HAVE_AOUT |
9 | select HAVE_IDE | 9 | select HAVE_IDE |
10 | select HAVE_OPROFILE | 10 | select HAVE_OPROFILE |
11 | select HAVE_SYSCALL_WRAPPERS | ||
11 | help | 12 | help |
12 | The Alpha is a 64-bit general-purpose processor designed and | 13 | The Alpha is a 64-bit general-purpose processor designed and |
13 | marketed by the Digital Equipment Corporation of blessed memory, | 14 | marketed by the Digital Equipment Corporation of blessed memory, |
diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S index aa2e50cf9857..e4a54b615894 100644 --- a/arch/alpha/kernel/entry.S +++ b/arch/alpha/kernel/entry.S | |||
@@ -933,7 +933,7 @@ sys_execve: | |||
933 | osf_sigprocmask: | 933 | osf_sigprocmask: |
934 | .prologue 0 | 934 | .prologue 0 |
935 | mov $sp, $18 | 935 | mov $sp, $18 |
936 | jmp $31, do_osf_sigprocmask | 936 | jmp $31, sys_osf_sigprocmask |
937 | .end osf_sigprocmask | 937 | .end osf_sigprocmask |
938 | 938 | ||
939 | .align 4 | 939 | .align 4 |
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index 18a3ea1aac51..ae41f097864b 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c | |||
@@ -54,8 +54,7 @@ extern int do_pipe(int *); | |||
54 | * identical to OSF as we don't return 0 on success, but doing otherwise | 54 | * identical to OSF as we don't return 0 on success, but doing otherwise |
55 | * would require changes to libc. Hopefully this is good enough. | 55 | * would require changes to libc. Hopefully this is good enough. |
56 | */ | 56 | */ |
57 | asmlinkage unsigned long | 57 | SYSCALL_DEFINE1(osf_brk, unsigned long, brk) |
58 | osf_brk(unsigned long brk) | ||
59 | { | 58 | { |
60 | unsigned long retval = sys_brk(brk); | 59 | unsigned long retval = sys_brk(brk); |
61 | if (brk && brk != retval) | 60 | if (brk && brk != retval) |
@@ -66,9 +65,9 @@ osf_brk(unsigned long brk) | |||
66 | /* | 65 | /* |
67 | * This is pure guess-work.. | 66 | * This is pure guess-work.. |
68 | */ | 67 | */ |
69 | asmlinkage int | 68 | SYSCALL_DEFINE4(osf_set_program_attributes, unsigned long, text_start, |
70 | osf_set_program_attributes(unsigned long text_start, unsigned long text_len, | 69 | unsigned long, text_len, unsigned long, bss_start, |
71 | unsigned long bss_start, unsigned long bss_len) | 70 | unsigned long, bss_len) |
72 | { | 71 | { |
73 | struct mm_struct *mm; | 72 | struct mm_struct *mm; |
74 | 73 | ||
@@ -146,9 +145,9 @@ Efault: | |||
146 | return -EFAULT; | 145 | return -EFAULT; |
147 | } | 146 | } |
148 | 147 | ||
149 | asmlinkage int | 148 | SYSCALL_DEFINE4(osf_getdirentries, unsigned int, fd, |
150 | osf_getdirentries(unsigned int fd, struct osf_dirent __user *dirent, | 149 | struct osf_dirent __user *, dirent, unsigned int, count, |
151 | unsigned int count, long __user *basep) | 150 | long __user *, basep) |
152 | { | 151 | { |
153 | int error; | 152 | int error; |
154 | struct file *file; | 153 | struct file *file; |
@@ -177,9 +176,9 @@ osf_getdirentries(unsigned int fd, struct osf_dirent __user *dirent, | |||
177 | 176 | ||
178 | #undef NAME_OFFSET | 177 | #undef NAME_OFFSET |
179 | 178 | ||
180 | asmlinkage unsigned long | 179 | SYSCALL_DEFINE6(osf_mmap, unsigned long, addr, unsigned long, len, |
181 | osf_mmap(unsigned long addr, unsigned long len, unsigned long prot, | 180 | unsigned long, prot, unsigned long, flags, unsigned long, fd, |
182 | unsigned long flags, unsigned long fd, unsigned long off) | 181 | unsigned long, off) |
183 | { | 182 | { |
184 | struct file *file = NULL; | 183 | struct file *file = NULL; |
185 | unsigned long ret = -EBADF; | 184 | unsigned long ret = -EBADF; |
@@ -254,8 +253,8 @@ do_osf_statfs(struct dentry * dentry, struct osf_statfs __user *buffer, | |||
254 | return error; | 253 | return error; |
255 | } | 254 | } |
256 | 255 | ||
257 | asmlinkage int | 256 | SYSCALL_DEFINE3(osf_statfs, char __user *, pathname, |
258 | osf_statfs(char __user *pathname, struct osf_statfs __user *buffer, unsigned long bufsiz) | 257 | struct osf_statfs __user *, buffer, unsigned long, bufsiz) |
259 | { | 258 | { |
260 | struct path path; | 259 | struct path path; |
261 | int retval; | 260 | int retval; |
@@ -268,8 +267,8 @@ osf_statfs(char __user *pathname, struct osf_statfs __user *buffer, unsigned lon | |||
268 | return retval; | 267 | return retval; |
269 | } | 268 | } |
270 | 269 | ||
271 | asmlinkage int | 270 | SYSCALL_DEFINE3(osf_fstatfs, unsigned long, fd, |
272 | osf_fstatfs(unsigned long fd, struct osf_statfs __user *buffer, unsigned long bufsiz) | 271 | struct osf_statfs __user *, buffer, unsigned long, bufsiz) |
273 | { | 272 | { |
274 | struct file *file; | 273 | struct file *file; |
275 | int retval; | 274 | int retval; |
@@ -368,8 +367,8 @@ osf_procfs_mount(char *dirname, struct procfs_args __user *args, int flags) | |||
368 | return do_mount("", dirname, "proc", flags, NULL); | 367 | return do_mount("", dirname, "proc", flags, NULL); |
369 | } | 368 | } |
370 | 369 | ||
371 | asmlinkage int | 370 | SYSCALL_DEFINE4(osf_mount, unsigned long, typenr, char __user *, path, |
372 | osf_mount(unsigned long typenr, char __user *path, int flag, void __user *data) | 371 | int, flag, void __user *, data) |
373 | { | 372 | { |
374 | int retval = -EINVAL; | 373 | int retval = -EINVAL; |
375 | char *name; | 374 | char *name; |
@@ -399,8 +398,7 @@ osf_mount(unsigned long typenr, char __user *path, int flag, void __user *data) | |||
399 | return retval; | 398 | return retval; |
400 | } | 399 | } |
401 | 400 | ||
402 | asmlinkage int | 401 | SYSCALL_DEFINE1(osf_utsname, char __user *, name) |
403 | osf_utsname(char __user *name) | ||
404 | { | 402 | { |
405 | int error; | 403 | int error; |
406 | 404 | ||
@@ -423,14 +421,12 @@ osf_utsname(char __user *name) | |||
423 | return error; | 421 | return error; |
424 | } | 422 | } |
425 | 423 | ||
426 | asmlinkage unsigned long | 424 | SYSCALL_DEFINE0(getpagesize) |
427 | sys_getpagesize(void) | ||
428 | { | 425 | { |
429 | return PAGE_SIZE; | 426 | return PAGE_SIZE; |
430 | } | 427 | } |
431 | 428 | ||
432 | asmlinkage unsigned long | 429 | SYSCALL_DEFINE0(getdtablesize) |
433 | sys_getdtablesize(void) | ||
434 | { | 430 | { |
435 | return sysctl_nr_open; | 431 | return sysctl_nr_open; |
436 | } | 432 | } |
@@ -438,8 +434,7 @@ sys_getdtablesize(void) | |||
438 | /* | 434 | /* |
439 | * For compatibility with OSF/1 only. Use utsname(2) instead. | 435 | * For compatibility with OSF/1 only. Use utsname(2) instead. |
440 | */ | 436 | */ |
441 | asmlinkage int | 437 | SYSCALL_DEFINE2(osf_getdomainname, char __user *, name, int, namelen) |
442 | osf_getdomainname(char __user *name, int namelen) | ||
443 | { | 438 | { |
444 | unsigned len; | 439 | unsigned len; |
445 | int i; | 440 | int i; |
@@ -527,8 +522,8 @@ enum pl_code { | |||
527 | PL_DEL = 5, PL_FDEL = 6 | 522 | PL_DEL = 5, PL_FDEL = 6 |
528 | }; | 523 | }; |
529 | 524 | ||
530 | asmlinkage long | 525 | SYSCALL_DEFINE2(osf_proplist_syscall, enum pl_code, code, |
531 | osf_proplist_syscall(enum pl_code code, union pl_args __user *args) | 526 | union pl_args __user *, args) |
532 | { | 527 | { |
533 | long error; | 528 | long error; |
534 | int __user *min_buf_size_ptr; | 529 | int __user *min_buf_size_ptr; |
@@ -567,8 +562,8 @@ osf_proplist_syscall(enum pl_code code, union pl_args __user *args) | |||
567 | return error; | 562 | return error; |
568 | } | 563 | } |
569 | 564 | ||
570 | asmlinkage int | 565 | SYSCALL_DEFINE2(osf_sigstack, struct sigstack __user *, uss, |
571 | osf_sigstack(struct sigstack __user *uss, struct sigstack __user *uoss) | 566 | struct sigstack __user *, uoss) |
572 | { | 567 | { |
573 | unsigned long usp = rdusp(); | 568 | unsigned long usp = rdusp(); |
574 | unsigned long oss_sp = current->sas_ss_sp + current->sas_ss_size; | 569 | unsigned long oss_sp = current->sas_ss_sp + current->sas_ss_size; |
@@ -608,8 +603,7 @@ osf_sigstack(struct sigstack __user *uss, struct sigstack __user *uoss) | |||
608 | return error; | 603 | return error; |
609 | } | 604 | } |
610 | 605 | ||
611 | asmlinkage long | 606 | SYSCALL_DEFINE3(osf_sysinfo, int, command, char __user *, buf, long, count) |
612 | osf_sysinfo(int command, char __user *buf, long count) | ||
613 | { | 607 | { |
614 | char *sysinfo_table[] = { | 608 | char *sysinfo_table[] = { |
615 | utsname()->sysname, | 609 | utsname()->sysname, |
@@ -647,9 +641,8 @@ osf_sysinfo(int command, char __user *buf, long count) | |||
647 | return err; | 641 | return err; |
648 | } | 642 | } |
649 | 643 | ||
650 | asmlinkage unsigned long | 644 | SYSCALL_DEFINE5(osf_getsysinfo, unsigned long, op, void __user *, buffer, |
651 | osf_getsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes, | 645 | unsigned long, nbytes, int __user *, start, void __user *, arg) |
652 | int __user *start, void __user *arg) | ||
653 | { | 646 | { |
654 | unsigned long w; | 647 | unsigned long w; |
655 | struct percpu_struct *cpu; | 648 | struct percpu_struct *cpu; |
@@ -705,9 +698,8 @@ osf_getsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes, | |||
705 | return -EOPNOTSUPP; | 698 | return -EOPNOTSUPP; |
706 | } | 699 | } |
707 | 700 | ||
708 | asmlinkage unsigned long | 701 | SYSCALL_DEFINE5(osf_setsysinfo, unsigned long, op, void __user *, buffer, |
709 | osf_setsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes, | 702 | unsigned long, nbytes, int __user *, start, void __user *, arg) |
710 | int __user *start, void __user *arg) | ||
711 | { | 703 | { |
712 | switch (op) { | 704 | switch (op) { |
713 | case SSI_IEEE_FP_CONTROL: { | 705 | case SSI_IEEE_FP_CONTROL: { |
@@ -880,8 +872,8 @@ jiffies_to_timeval32(unsigned long jiffies, struct timeval32 *value) | |||
880 | value->tv_sec = jiffies / HZ; | 872 | value->tv_sec = jiffies / HZ; |
881 | } | 873 | } |
882 | 874 | ||
883 | asmlinkage int | 875 | SYSCALL_DEFINE2(osf_gettimeofday, struct timeval32 __user *, tv, |
884 | osf_gettimeofday(struct timeval32 __user *tv, struct timezone __user *tz) | 876 | struct timezone __user *, tz) |
885 | { | 877 | { |
886 | if (tv) { | 878 | if (tv) { |
887 | struct timeval ktv; | 879 | struct timeval ktv; |
@@ -896,8 +888,8 @@ osf_gettimeofday(struct timeval32 __user *tv, struct timezone __user *tz) | |||
896 | return 0; | 888 | return 0; |
897 | } | 889 | } |
898 | 890 | ||
899 | asmlinkage int | 891 | SYSCALL_DEFINE2(osf_settimeofday, struct timeval32 __user *, tv, |
900 | osf_settimeofday(struct timeval32 __user *tv, struct timezone __user *tz) | 892 | struct timezone __user *, tz) |
901 | { | 893 | { |
902 | struct timespec kts; | 894 | struct timespec kts; |
903 | struct timezone ktz; | 895 | struct timezone ktz; |
@@ -916,8 +908,7 @@ osf_settimeofday(struct timeval32 __user *tv, struct timezone __user *tz) | |||
916 | return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL); | 908 | return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL); |
917 | } | 909 | } |
918 | 910 | ||
919 | asmlinkage int | 911 | SYSCALL_DEFINE2(osf_getitimer, int, which, struct itimerval32 __user *, it) |
920 | osf_getitimer(int which, struct itimerval32 __user *it) | ||
921 | { | 912 | { |
922 | struct itimerval kit; | 913 | struct itimerval kit; |
923 | int error; | 914 | int error; |
@@ -929,8 +920,8 @@ osf_getitimer(int which, struct itimerval32 __user *it) | |||
929 | return error; | 920 | return error; |
930 | } | 921 | } |
931 | 922 | ||
932 | asmlinkage int | 923 | SYSCALL_DEFINE3(osf_setitimer, int, which, struct itimerval32 __user *, in, |
933 | osf_setitimer(int which, struct itimerval32 __user *in, struct itimerval32 __user *out) | 924 | struct itimerval32 __user *, out) |
934 | { | 925 | { |
935 | struct itimerval kin, kout; | 926 | struct itimerval kin, kout; |
936 | int error; | 927 | int error; |
@@ -952,8 +943,8 @@ osf_setitimer(int which, struct itimerval32 __user *in, struct itimerval32 __use | |||
952 | 943 | ||
953 | } | 944 | } |
954 | 945 | ||
955 | asmlinkage int | 946 | SYSCALL_DEFINE2(osf_utimes, char __user *, filename, |
956 | osf_utimes(char __user *filename, struct timeval32 __user *tvs) | 947 | struct timeval32 __user *, tvs) |
957 | { | 948 | { |
958 | struct timespec tv[2]; | 949 | struct timespec tv[2]; |
959 | 950 | ||
@@ -979,9 +970,8 @@ osf_utimes(char __user *filename, struct timeval32 __user *tvs) | |||
979 | #define MAX_SELECT_SECONDS \ | 970 | #define MAX_SELECT_SECONDS \ |
980 | ((unsigned long) (MAX_SCHEDULE_TIMEOUT / HZ)-1) | 971 | ((unsigned long) (MAX_SCHEDULE_TIMEOUT / HZ)-1) |
981 | 972 | ||
982 | asmlinkage int | 973 | SYSCALL_DEFINE5(osf_select, int, n, fd_set __user *, inp, fd_set __user *, outp, |
983 | osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, | 974 | fd_set __user *, exp, struct timeval32 __user *, tvp) |
984 | struct timeval32 __user *tvp) | ||
985 | { | 975 | { |
986 | struct timespec end_time, *to = NULL; | 976 | struct timespec end_time, *to = NULL; |
987 | if (tvp) { | 977 | if (tvp) { |
@@ -1026,8 +1016,7 @@ struct rusage32 { | |||
1026 | long ru_nivcsw; /* involuntary " */ | 1016 | long ru_nivcsw; /* involuntary " */ |
1027 | }; | 1017 | }; |
1028 | 1018 | ||
1029 | asmlinkage int | 1019 | SYSCALL_DEFINE2(osf_getrusage, int, who, struct rusage32 __user *, ru) |
1030 | osf_getrusage(int who, struct rusage32 __user *ru) | ||
1031 | { | 1020 | { |
1032 | struct rusage32 r; | 1021 | struct rusage32 r; |
1033 | 1022 | ||
@@ -1053,9 +1042,8 @@ osf_getrusage(int who, struct rusage32 __user *ru) | |||
1053 | return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0; | 1042 | return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0; |
1054 | } | 1043 | } |
1055 | 1044 | ||
1056 | asmlinkage long | 1045 | SYSCALL_DEFINE4(osf_wait4, pid_t, pid, int __user *, ustatus, int, options, |
1057 | osf_wait4(pid_t pid, int __user *ustatus, int options, | 1046 | struct rusage32 __user *, ur) |
1058 | struct rusage32 __user *ur) | ||
1059 | { | 1047 | { |
1060 | struct rusage r; | 1048 | struct rusage r; |
1061 | long ret, err; | 1049 | long ret, err; |
@@ -1101,8 +1089,8 @@ osf_wait4(pid_t pid, int __user *ustatus, int options, | |||
1101 | * seems to be a timeval pointer, and I suspect the second | 1089 | * seems to be a timeval pointer, and I suspect the second |
1102 | * one is the time remaining.. Ho humm.. No documentation. | 1090 | * one is the time remaining.. Ho humm.. No documentation. |
1103 | */ | 1091 | */ |
1104 | asmlinkage int | 1092 | SYSCALL_DEFINE2(osf_usleep_thread, struct timeval32 __user *, sleep, |
1105 | osf_usleep_thread(struct timeval32 __user *sleep, struct timeval32 __user *remain) | 1093 | struct timeval32 __user *, remain) |
1106 | { | 1094 | { |
1107 | struct timeval tmp; | 1095 | struct timeval tmp; |
1108 | unsigned long ticks; | 1096 | unsigned long ticks; |
@@ -1155,8 +1143,7 @@ struct timex32 { | |||
1155 | int :32; int :32; int :32; int :32; | 1143 | int :32; int :32; int :32; int :32; |
1156 | }; | 1144 | }; |
1157 | 1145 | ||
1158 | asmlinkage int | 1146 | SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p) |
1159 | sys_old_adjtimex(struct timex32 __user *txc_p) | ||
1160 | { | 1147 | { |
1161 | struct timex txc; | 1148 | struct timex txc; |
1162 | int ret; | 1149 | int ret; |
@@ -1267,8 +1254,8 @@ osf_fix_iov_len(const struct iovec __user *iov, unsigned long count) | |||
1267 | return 0; | 1254 | return 0; |
1268 | } | 1255 | } |
1269 | 1256 | ||
1270 | asmlinkage ssize_t | 1257 | SYSCALL_DEFINE3(osf_readv, unsigned long, fd, |
1271 | osf_readv(unsigned long fd, const struct iovec __user * vector, unsigned long count) | 1258 | const struct iovec __user *, vector, unsigned long, count) |
1272 | { | 1259 | { |
1273 | if (unlikely(personality(current->personality) == PER_OSF4)) | 1260 | if (unlikely(personality(current->personality) == PER_OSF4)) |
1274 | if (osf_fix_iov_len(vector, count)) | 1261 | if (osf_fix_iov_len(vector, count)) |
@@ -1276,8 +1263,8 @@ osf_readv(unsigned long fd, const struct iovec __user * vector, unsigned long co | |||
1276 | return sys_readv(fd, vector, count); | 1263 | return sys_readv(fd, vector, count); |
1277 | } | 1264 | } |
1278 | 1265 | ||
1279 | asmlinkage ssize_t | 1266 | SYSCALL_DEFINE3(osf_writev, unsigned long, fd, |
1280 | osf_writev(unsigned long fd, const struct iovec __user * vector, unsigned long count) | 1267 | const struct iovec __user *, vector, unsigned long, count) |
1281 | { | 1268 | { |
1282 | if (unlikely(personality(current->personality) == PER_OSF4)) | 1269 | if (unlikely(personality(current->personality) == PER_OSF4)) |
1283 | if (osf_fix_iov_len(vector, count)) | 1270 | if (osf_fix_iov_len(vector, count)) |
diff --git a/arch/alpha/kernel/signal.c b/arch/alpha/kernel/signal.c index 410af4f3140e..df65eaa84c4c 100644 --- a/arch/alpha/kernel/signal.c +++ b/arch/alpha/kernel/signal.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/tty.h> | 19 | #include <linux/tty.h> |
20 | #include <linux/binfmts.h> | 20 | #include <linux/binfmts.h> |
21 | #include <linux/bitops.h> | 21 | #include <linux/bitops.h> |
22 | #include <linux/syscalls.h> | ||
22 | 23 | ||
23 | #include <asm/uaccess.h> | 24 | #include <asm/uaccess.h> |
24 | #include <asm/sigcontext.h> | 25 | #include <asm/sigcontext.h> |
@@ -51,8 +52,8 @@ static void do_signal(struct pt_regs *, struct switch_stack *, | |||
51 | * Note that we don't need to acquire the kernel lock for SMP | 52 | * Note that we don't need to acquire the kernel lock for SMP |
52 | * operation, as all of this is local to this thread. | 53 | * operation, as all of this is local to this thread. |
53 | */ | 54 | */ |
54 | asmlinkage unsigned long | 55 | SYSCALL_DEFINE3(osf_sigprocmask, int, how, unsigned long, newmask, |
55 | do_osf_sigprocmask(int how, unsigned long newmask, struct pt_regs *regs) | 56 | struct pt_regs *, regs) |
56 | { | 57 | { |
57 | unsigned long oldmask = -EINVAL; | 58 | unsigned long oldmask = -EINVAL; |
58 | 59 | ||
@@ -81,9 +82,9 @@ do_osf_sigprocmask(int how, unsigned long newmask, struct pt_regs *regs) | |||
81 | return oldmask; | 82 | return oldmask; |
82 | } | 83 | } |
83 | 84 | ||
84 | asmlinkage int | 85 | SYSCALL_DEFINE3(osf_sigaction, int, sig, |
85 | osf_sigaction(int sig, const struct osf_sigaction __user *act, | 86 | const struct osf_sigaction __user *, act, |
86 | struct osf_sigaction __user *oact) | 87 | struct osf_sigaction __user *, oact) |
87 | { | 88 | { |
88 | struct k_sigaction new_ka, old_ka; | 89 | struct k_sigaction new_ka, old_ka; |
89 | int ret; | 90 | int ret; |
@@ -112,10 +113,9 @@ osf_sigaction(int sig, const struct osf_sigaction __user *act, | |||
112 | return ret; | 113 | return ret; |
113 | } | 114 | } |
114 | 115 | ||
115 | asmlinkage long | 116 | SYSCALL_DEFINE5(rt_sigaction, int, sig, const struct sigaction __user *, act, |
116 | sys_rt_sigaction(int sig, const struct sigaction __user *act, | 117 | struct sigaction __user *, oact, |
117 | struct sigaction __user *oact, | 118 | size_t, sigsetsize, void __user *, restorer) |
118 | size_t sigsetsize, void __user *restorer) | ||
119 | { | 119 | { |
120 | struct k_sigaction new_ka, old_ka; | 120 | struct k_sigaction new_ka, old_ka; |
121 | int ret; | 121 | int ret; |
diff --git a/arch/alpha/kernel/systbls.S b/arch/alpha/kernel/systbls.S index 9d9e3a98bb95..95c9aef1c106 100644 --- a/arch/alpha/kernel/systbls.S +++ b/arch/alpha/kernel/systbls.S | |||
@@ -17,7 +17,7 @@ sys_call_table: | |||
17 | .quad sys_write | 17 | .quad sys_write |
18 | .quad alpha_ni_syscall /* 5 */ | 18 | .quad alpha_ni_syscall /* 5 */ |
19 | .quad sys_close | 19 | .quad sys_close |
20 | .quad osf_wait4 | 20 | .quad sys_osf_wait4 |
21 | .quad alpha_ni_syscall | 21 | .quad alpha_ni_syscall |
22 | .quad sys_link | 22 | .quad sys_link |
23 | .quad sys_unlink /* 10 */ | 23 | .quad sys_unlink /* 10 */ |
@@ -27,11 +27,11 @@ sys_call_table: | |||
27 | .quad sys_mknod | 27 | .quad sys_mknod |
28 | .quad sys_chmod /* 15 */ | 28 | .quad sys_chmod /* 15 */ |
29 | .quad sys_chown | 29 | .quad sys_chown |
30 | .quad osf_brk | 30 | .quad sys_osf_brk |
31 | .quad alpha_ni_syscall | 31 | .quad alpha_ni_syscall |
32 | .quad sys_lseek | 32 | .quad sys_lseek |
33 | .quad sys_getxpid /* 20 */ | 33 | .quad sys_getxpid /* 20 */ |
34 | .quad osf_mount | 34 | .quad sys_osf_mount |
35 | .quad sys_umount | 35 | .quad sys_umount |
36 | .quad sys_setuid | 36 | .quad sys_setuid |
37 | .quad sys_getxuid | 37 | .quad sys_getxuid |
@@ -53,7 +53,7 @@ sys_call_table: | |||
53 | .quad alpha_ni_syscall /* 40 */ | 53 | .quad alpha_ni_syscall /* 40 */ |
54 | .quad sys_dup | 54 | .quad sys_dup |
55 | .quad sys_alpha_pipe | 55 | .quad sys_alpha_pipe |
56 | .quad osf_set_program_attributes | 56 | .quad sys_osf_set_program_attributes |
57 | .quad alpha_ni_syscall | 57 | .quad alpha_ni_syscall |
58 | .quad sys_open /* 45 */ | 58 | .quad sys_open /* 45 */ |
59 | .quad alpha_ni_syscall | 59 | .quad alpha_ni_syscall |
@@ -81,7 +81,7 @@ sys_call_table: | |||
81 | .quad sys_newlstat | 81 | .quad sys_newlstat |
82 | .quad alpha_ni_syscall | 82 | .quad alpha_ni_syscall |
83 | .quad alpha_ni_syscall /* 70 */ | 83 | .quad alpha_ni_syscall /* 70 */ |
84 | .quad osf_mmap | 84 | .quad sys_osf_mmap |
85 | .quad alpha_ni_syscall | 85 | .quad alpha_ni_syscall |
86 | .quad sys_munmap | 86 | .quad sys_munmap |
87 | .quad sys_mprotect | 87 | .quad sys_mprotect |
@@ -94,17 +94,17 @@ sys_call_table: | |||
94 | .quad sys_setgroups /* 80 */ | 94 | .quad sys_setgroups /* 80 */ |
95 | .quad alpha_ni_syscall | 95 | .quad alpha_ni_syscall |
96 | .quad sys_setpgid | 96 | .quad sys_setpgid |
97 | .quad osf_setitimer | 97 | .quad sys_osf_setitimer |
98 | .quad alpha_ni_syscall | 98 | .quad alpha_ni_syscall |
99 | .quad alpha_ni_syscall /* 85 */ | 99 | .quad alpha_ni_syscall /* 85 */ |
100 | .quad osf_getitimer | 100 | .quad sys_osf_getitimer |
101 | .quad sys_gethostname | 101 | .quad sys_gethostname |
102 | .quad sys_sethostname | 102 | .quad sys_sethostname |
103 | .quad sys_getdtablesize | 103 | .quad sys_getdtablesize |
104 | .quad sys_dup2 /* 90 */ | 104 | .quad sys_dup2 /* 90 */ |
105 | .quad sys_newfstat | 105 | .quad sys_newfstat |
106 | .quad sys_fcntl | 106 | .quad sys_fcntl |
107 | .quad osf_select | 107 | .quad sys_osf_select |
108 | .quad sys_poll | 108 | .quad sys_poll |
109 | .quad sys_fsync /* 95 */ | 109 | .quad sys_fsync /* 95 */ |
110 | .quad sys_setpriority | 110 | .quad sys_setpriority |
@@ -123,22 +123,22 @@ sys_call_table: | |||
123 | .quad alpha_ni_syscall | 123 | .quad alpha_ni_syscall |
124 | .quad alpha_ni_syscall /* 110 */ | 124 | .quad alpha_ni_syscall /* 110 */ |
125 | .quad sys_sigsuspend | 125 | .quad sys_sigsuspend |
126 | .quad osf_sigstack | 126 | .quad sys_osf_sigstack |
127 | .quad sys_recvmsg | 127 | .quad sys_recvmsg |
128 | .quad sys_sendmsg | 128 | .quad sys_sendmsg |
129 | .quad alpha_ni_syscall /* 115 */ | 129 | .quad alpha_ni_syscall /* 115 */ |
130 | .quad osf_gettimeofday | 130 | .quad sys_osf_gettimeofday |
131 | .quad osf_getrusage | 131 | .quad sys_osf_getrusage |
132 | .quad sys_getsockopt | 132 | .quad sys_getsockopt |
133 | .quad alpha_ni_syscall | 133 | .quad alpha_ni_syscall |
134 | #ifdef CONFIG_OSF4_COMPAT | 134 | #ifdef CONFIG_OSF4_COMPAT |
135 | .quad osf_readv /* 120 */ | 135 | .quad sys_osf_readv /* 120 */ |
136 | .quad osf_writev | 136 | .quad sys_osf_writev |
137 | #else | 137 | #else |
138 | .quad sys_readv /* 120 */ | 138 | .quad sys_readv /* 120 */ |
139 | .quad sys_writev | 139 | .quad sys_writev |
140 | #endif | 140 | #endif |
141 | .quad osf_settimeofday | 141 | .quad sys_osf_settimeofday |
142 | .quad sys_fchown | 142 | .quad sys_fchown |
143 | .quad sys_fchmod | 143 | .quad sys_fchmod |
144 | .quad sys_recvfrom /* 125 */ | 144 | .quad sys_recvfrom /* 125 */ |
@@ -154,7 +154,7 @@ sys_call_table: | |||
154 | .quad sys_socketpair /* 135 */ | 154 | .quad sys_socketpair /* 135 */ |
155 | .quad sys_mkdir | 155 | .quad sys_mkdir |
156 | .quad sys_rmdir | 156 | .quad sys_rmdir |
157 | .quad osf_utimes | 157 | .quad sys_osf_utimes |
158 | .quad alpha_ni_syscall | 158 | .quad alpha_ni_syscall |
159 | .quad alpha_ni_syscall /* 140 */ | 159 | .quad alpha_ni_syscall /* 140 */ |
160 | .quad sys_getpeername | 160 | .quad sys_getpeername |
@@ -172,16 +172,16 @@ sys_call_table: | |||
172 | .quad alpha_ni_syscall | 172 | .quad alpha_ni_syscall |
173 | .quad alpha_ni_syscall | 173 | .quad alpha_ni_syscall |
174 | .quad alpha_ni_syscall /* 155 */ | 174 | .quad alpha_ni_syscall /* 155 */ |
175 | .quad osf_sigaction | 175 | .quad sys_osf_sigaction |
176 | .quad alpha_ni_syscall | 176 | .quad alpha_ni_syscall |
177 | .quad alpha_ni_syscall | 177 | .quad alpha_ni_syscall |
178 | .quad osf_getdirentries | 178 | .quad sys_osf_getdirentries |
179 | .quad osf_statfs /* 160 */ | 179 | .quad sys_osf_statfs /* 160 */ |
180 | .quad osf_fstatfs | 180 | .quad sys_osf_fstatfs |
181 | .quad alpha_ni_syscall | 181 | .quad alpha_ni_syscall |
182 | .quad alpha_ni_syscall | 182 | .quad alpha_ni_syscall |
183 | .quad alpha_ni_syscall | 183 | .quad alpha_ni_syscall |
184 | .quad osf_getdomainname /* 165 */ | 184 | .quad sys_osf_getdomainname /* 165 */ |
185 | .quad sys_setdomainname | 185 | .quad sys_setdomainname |
186 | .quad alpha_ni_syscall | 186 | .quad alpha_ni_syscall |
187 | .quad alpha_ni_syscall | 187 | .quad alpha_ni_syscall |
@@ -224,7 +224,7 @@ sys_call_table: | |||
224 | .quad sys_semctl | 224 | .quad sys_semctl |
225 | .quad sys_semget /* 205 */ | 225 | .quad sys_semget /* 205 */ |
226 | .quad sys_semop | 226 | .quad sys_semop |
227 | .quad osf_utsname | 227 | .quad sys_osf_utsname |
228 | .quad sys_lchown | 228 | .quad sys_lchown |
229 | .quad sys_shmat | 229 | .quad sys_shmat |
230 | .quad sys_shmctl /* 210 */ | 230 | .quad sys_shmctl /* 210 */ |
@@ -258,23 +258,23 @@ sys_call_table: | |||
258 | .quad alpha_ni_syscall | 258 | .quad alpha_ni_syscall |
259 | .quad alpha_ni_syscall | 259 | .quad alpha_ni_syscall |
260 | .quad alpha_ni_syscall /* 240 */ | 260 | .quad alpha_ni_syscall /* 240 */ |
261 | .quad osf_sysinfo | 261 | .quad sys_osf_sysinfo |
262 | .quad alpha_ni_syscall | 262 | .quad alpha_ni_syscall |
263 | .quad alpha_ni_syscall | 263 | .quad alpha_ni_syscall |
264 | .quad osf_proplist_syscall | 264 | .quad sys_osf_proplist_syscall |
265 | .quad alpha_ni_syscall /* 245 */ | 265 | .quad alpha_ni_syscall /* 245 */ |
266 | .quad alpha_ni_syscall | 266 | .quad alpha_ni_syscall |
267 | .quad alpha_ni_syscall | 267 | .quad alpha_ni_syscall |
268 | .quad alpha_ni_syscall | 268 | .quad alpha_ni_syscall |
269 | .quad alpha_ni_syscall | 269 | .quad alpha_ni_syscall |
270 | .quad alpha_ni_syscall /* 250 */ | 270 | .quad alpha_ni_syscall /* 250 */ |
271 | .quad osf_usleep_thread | 271 | .quad sys_osf_usleep_thread |
272 | .quad alpha_ni_syscall | 272 | .quad alpha_ni_syscall |
273 | .quad alpha_ni_syscall | 273 | .quad alpha_ni_syscall |
274 | .quad sys_sysfs | 274 | .quad sys_sysfs |
275 | .quad alpha_ni_syscall /* 255 */ | 275 | .quad alpha_ni_syscall /* 255 */ |
276 | .quad osf_getsysinfo | 276 | .quad sys_osf_getsysinfo |
277 | .quad osf_setsysinfo | 277 | .quad sys_osf_setsysinfo |
278 | .quad alpha_ni_syscall | 278 | .quad alpha_ni_syscall |
279 | .quad alpha_ni_syscall | 279 | .quad alpha_ni_syscall |
280 | .quad alpha_ni_syscall /* 260 */ | 280 | .quad alpha_ni_syscall /* 260 */ |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 16875f89e6a7..0eda02ff2414 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
@@ -108,9 +108,14 @@ struct old_linux_dirent; | |||
108 | asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \ | 108 | asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \ |
109 | "\t.globl ." #alias "\n\t.set ." #alias ", ." #name) | 109 | "\t.globl ." #alias "\n\t.set ." #alias ", ." #name) |
110 | #else | 110 | #else |
111 | #ifdef CONFIG_ALPHA | ||
112 | #define SYSCALL_ALIAS(alias, name) \ | ||
113 | asm ( #alias " = " #name "\n\t.globl " #alias) | ||
114 | #else | ||
111 | #define SYSCALL_ALIAS(alias, name) \ | 115 | #define SYSCALL_ALIAS(alias, name) \ |
112 | asm ("\t.globl " #alias "\n\t.set " #alias ", " #name) | 116 | asm ("\t.globl " #alias "\n\t.set " #alias ", " #name) |
113 | #endif | 117 | #endif |
118 | #endif | ||
114 | 119 | ||
115 | #ifdef CONFIG_HAVE_SYSCALL_WRAPPERS | 120 | #ifdef CONFIG_HAVE_SYSCALL_WRAPPERS |
116 | 121 | ||