Commit a7f31841a40776605c834053ad1eb82d539bd79f

Authored by Arnd Bergmann
Committed by Paul Mackerras
1 parent 5536408c21

[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
... ... @@ -45,6 +45,7 @@
45 45 #include <asm/prom.h>
46 46 #include <asm/machdep.h>
47 47 #include <asm/time.h>
  48 +#include <asm/syscalls.h>
48 49 #ifdef CONFIG_PPC64
49 50 #include <asm/firmware.h>
50 51 #endif
arch/powerpc/kernel/rtas.c
... ... @@ -32,6 +32,7 @@
32 32 #include <asm/uaccess.h>
33 33 #include <asm/lmb.h>
34 34 #include <asm/udbg.h>
  35 +#include <asm/syscalls.h>
35 36  
36 37 struct rtas_t rtas = {
37 38 .lock = SPIN_LOCK_UNLOCKED
arch/powerpc/kernel/signal_32.c
... ... @@ -42,6 +42,7 @@
42 42  
43 43 #include <asm/uaccess.h>
44 44 #include <asm/cacheflush.h>
  45 +#include <asm/syscalls.h>
45 46 #include <asm/sigcontext.h>
46 47 #include <asm/vdso.h>
47 48 #ifdef CONFIG_PPC64
arch/powerpc/kernel/signal_64.c
... ... @@ -33,6 +33,7 @@
33 33 #include <asm/pgtable.h>
34 34 #include <asm/unistd.h>
35 35 #include <asm/cacheflush.h>
  36 +#include <asm/syscalls.h>
36 37 #include <asm/vdso.h>
37 38  
38 39 #define DEBUG_SIG 0
arch/powerpc/kernel/syscalls.c
... ... @@ -40,6 +40,7 @@
40 40 #include <asm/uaccess.h>
41 41 #include <asm/ipc.h>
42 42 #include <asm/semaphore.h>
  43 +#include <asm/syscalls.h>
43 44 #include <asm/time.h>
44 45 #include <asm/unistd.h>
45 46  
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