Commit a7f31841a40776605c834053ad1eb82d539bd79f
Committed by
Paul Mackerras
1 parent
5536408c21
Exists in
master
and in
7 other branches
[PATCH] powerpc: declare arch syscalls in <asm/syscalls.h>
powerpc currently declares some of its own system calls in <asm/unistd.h>, but not all of them. That place also contains remainders of the now almost unused kernel syscall hack. - Add a new <asm/syscalls.h> with clean declarations - Include that file from every source that implements one of these - Get rid of old declarations in <asm/unistd.h> This patch is required as a base for implementing system calls from an SPU, but also makes sense as a general cleanup. Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Showing 7 changed files with 64 additions and 34 deletions Side-by-side Diff
arch/powerpc/kernel/process.c
arch/powerpc/kernel/rtas.c
arch/powerpc/kernel/signal_32.c
arch/powerpc/kernel/signal_64.c
arch/powerpc/kernel/syscalls.c
include/asm-powerpc/syscalls.h
1 | +#ifndef __ASM_POWERPC_SYSCALLS_H | |
2 | +#define __ASM_POWERPC_SYSCALLS_H | |
3 | +#ifdef __KERNEL__ | |
4 | + | |
5 | +#include <linux/compiler.h> | |
6 | +#include <linux/linkage.h> | |
7 | +#include <linux/types.h> | |
8 | +#include <asm/signal.h> | |
9 | + | |
10 | +struct new_utsname; | |
11 | +struct pt_regs; | |
12 | +struct rtas_args; | |
13 | +struct sigaction; | |
14 | + | |
15 | +asmlinkage unsigned long sys_mmap(unsigned long addr, size_t len, | |
16 | + unsigned long prot, unsigned long flags, | |
17 | + unsigned long fd, off_t offset); | |
18 | +asmlinkage unsigned long sys_mmap2(unsigned long addr, size_t len, | |
19 | + unsigned long prot, unsigned long flags, | |
20 | + unsigned long fd, unsigned long pgoff); | |
21 | +asmlinkage int sys_execve(unsigned long a0, unsigned long a1, | |
22 | + unsigned long a2, unsigned long a3, unsigned long a4, | |
23 | + unsigned long a5, struct pt_regs *regs); | |
24 | +asmlinkage int sys_clone(unsigned long clone_flags, unsigned long usp, | |
25 | + int __user *parent_tidp, void __user *child_threadptr, | |
26 | + int __user *child_tidp, int p6, struct pt_regs *regs); | |
27 | +asmlinkage int sys_fork(unsigned long p1, unsigned long p2, | |
28 | + unsigned long p3, unsigned long p4, unsigned long p5, | |
29 | + unsigned long p6, struct pt_regs *regs); | |
30 | +asmlinkage int sys_vfork(unsigned long p1, unsigned long p2, | |
31 | + unsigned long p3, unsigned long p4, unsigned long p5, | |
32 | + unsigned long p6, struct pt_regs *regs); | |
33 | +asmlinkage int sys_pipe(int __user *fildes); | |
34 | +asmlinkage long sys_rt_sigaction(int sig, | |
35 | + const struct sigaction __user *act, | |
36 | + struct sigaction __user *oact, size_t sigsetsize); | |
37 | +asmlinkage int sys_ipc(uint call, int first, unsigned long second, | |
38 | + long third, void __user *ptr, long fifth); | |
39 | +asmlinkage long ppc64_personality(unsigned long personality); | |
40 | +asmlinkage int ppc_rtas(struct rtas_args __user *uargs); | |
41 | +asmlinkage time_t sys64_time(time_t __user * tloc); | |
42 | +asmlinkage long ppc_newuname(struct new_utsname __user * name); | |
43 | + | |
44 | +asmlinkage long sys_rt_sigsuspend(sigset_t __user *unewset, | |
45 | + size_t sigsetsize); | |
46 | + | |
47 | +#ifndef __powerpc64__ | |
48 | +asmlinkage long sys_sigaltstack(const stack_t __user *uss, | |
49 | + stack_t __user *uoss, int r5, int r6, int r7, int r8, | |
50 | + struct pt_regs *regs); | |
51 | +#else /* __powerpc64__ */ | |
52 | +asmlinkage long sys_sigaltstack(const stack_t __user *uss, | |
53 | + stack_t __user *uoss, unsigned long r5, unsigned long r6, | |
54 | + unsigned long r7, unsigned long r8, struct pt_regs *regs); | |
55 | +#endif /* __powerpc64__ */ | |
56 | + | |
57 | +#endif /* __KERNEL__ */ | |
58 | +#endif /* __ASM_POWERPC_SYSCALLS_H */ |
include/asm-powerpc/unistd.h
... | ... | @@ -425,6 +425,7 @@ |
425 | 425 | #include <linux/types.h> |
426 | 426 | #include <linux/compiler.h> |
427 | 427 | #include <linux/linkage.h> |
428 | +#include <asm/syscalls.h> | |
428 | 429 | |
429 | 430 | #define __ARCH_WANT_IPC_PARSE_VERSION |
430 | 431 | #define __ARCH_WANT_OLD_READDIR |
431 | 432 | |
432 | 433 | |
... | ... | @@ -460,42 +461,8 @@ |
460 | 461 | * System call prototypes. |
461 | 462 | */ |
462 | 463 | #ifdef __KERNEL_SYSCALLS__ |
463 | -extern pid_t setsid(void); | |
464 | -extern int write(int fd, const char *buf, off_t count); | |
465 | -extern int read(int fd, char *buf, off_t count); | |
466 | -extern off_t lseek(int fd, off_t offset, int count); | |
467 | -extern int dup(int fd); | |
468 | 464 | extern int execve(const char *file, char **argv, char **envp); |
469 | -extern int open(const char *file, int flag, int mode); | |
470 | -extern int close(int fd); | |
471 | -extern pid_t waitpid(pid_t pid, int *wait_stat, int options); | |
472 | 465 | #endif /* __KERNEL_SYSCALLS__ */ |
473 | - | |
474 | -/* | |
475 | - * Functions that implement syscalls. | |
476 | - */ | |
477 | -unsigned long sys_mmap(unsigned long addr, size_t len, unsigned long prot, | |
478 | - unsigned long flags, unsigned long fd, off_t offset); | |
479 | -unsigned long sys_mmap2(unsigned long addr, size_t len, | |
480 | - unsigned long prot, unsigned long flags, | |
481 | - unsigned long fd, unsigned long pgoff); | |
482 | -struct pt_regs; | |
483 | -int sys_execve(unsigned long a0, unsigned long a1, unsigned long a2, | |
484 | - unsigned long a3, unsigned long a4, unsigned long a5, | |
485 | - struct pt_regs *regs); | |
486 | -int sys_clone(unsigned long clone_flags, unsigned long usp, | |
487 | - int __user *parent_tidp, void __user *child_threadptr, | |
488 | - int __user *child_tidp, int p6, struct pt_regs *regs); | |
489 | -int sys_fork(unsigned long p1, unsigned long p2, unsigned long p3, | |
490 | - unsigned long p4, unsigned long p5, unsigned long p6, | |
491 | - struct pt_regs *regs); | |
492 | -int sys_vfork(unsigned long p1, unsigned long p2, unsigned long p3, | |
493 | - unsigned long p4, unsigned long p5, unsigned long p6, | |
494 | - struct pt_regs *regs); | |
495 | -int sys_pipe(int __user *fildes); | |
496 | -struct sigaction; | |
497 | -long sys_rt_sigaction(int sig, const struct sigaction __user *act, | |
498 | - struct sigaction __user *oact, size_t sigsetsize); | |
499 | 466 | |
500 | 467 | /* |
501 | 468 | * "Conditional" syscalls |