mirror of https://gitee.com/openkylin/linux.git
[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>
This commit is contained in:
parent
5536408c21
commit
a7f31841a4
|
@ -45,6 +45,7 @@
|
|||
#include <asm/prom.h>
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/time.h>
|
||||
#include <asm/syscalls.h>
|
||||
#ifdef CONFIG_PPC64
|
||||
#include <asm/firmware.h>
|
||||
#endif
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <asm/uaccess.h>
|
||||
#include <asm/lmb.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
struct rtas_t rtas = {
|
||||
.lock = SPIN_LOCK_UNLOCKED
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/syscalls.h>
|
||||
#include <asm/sigcontext.h>
|
||||
#include <asm/vdso.h>
|
||||
#ifdef CONFIG_PPC64
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include <asm/pgtable.h>
|
||||
#include <asm/unistd.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/syscalls.h>
|
||||
#include <asm/vdso.h>
|
||||
|
||||
#define DEBUG_SIG 0
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include <asm/uaccess.h>
|
||||
#include <asm/ipc.h>
|
||||
#include <asm/semaphore.h>
|
||||
#include <asm/syscalls.h>
|
||||
#include <asm/time.h>
|
||||
#include <asm/unistd.h>
|
||||
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
#ifndef __ASM_POWERPC_SYSCALLS_H
|
||||
#define __ASM_POWERPC_SYSCALLS_H
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/types.h>
|
||||
#include <asm/signal.h>
|
||||
|
||||
struct new_utsname;
|
||||
struct pt_regs;
|
||||
struct rtas_args;
|
||||
struct sigaction;
|
||||
|
||||
asmlinkage unsigned long sys_mmap(unsigned long addr, size_t len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, off_t offset);
|
||||
asmlinkage unsigned long sys_mmap2(unsigned long addr, size_t len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, unsigned long pgoff);
|
||||
asmlinkage int sys_execve(unsigned long a0, unsigned long a1,
|
||||
unsigned long a2, unsigned long a3, unsigned long a4,
|
||||
unsigned long a5, struct pt_regs *regs);
|
||||
asmlinkage int sys_clone(unsigned long clone_flags, unsigned long usp,
|
||||
int __user *parent_tidp, void __user *child_threadptr,
|
||||
int __user *child_tidp, int p6, struct pt_regs *regs);
|
||||
asmlinkage int sys_fork(unsigned long p1, unsigned long p2,
|
||||
unsigned long p3, unsigned long p4, unsigned long p5,
|
||||
unsigned long p6, struct pt_regs *regs);
|
||||
asmlinkage int sys_vfork(unsigned long p1, unsigned long p2,
|
||||
unsigned long p3, unsigned long p4, unsigned long p5,
|
||||
unsigned long p6, struct pt_regs *regs);
|
||||
asmlinkage int sys_pipe(int __user *fildes);
|
||||
asmlinkage long sys_rt_sigaction(int sig,
|
||||
const struct sigaction __user *act,
|
||||
struct sigaction __user *oact, size_t sigsetsize);
|
||||
asmlinkage int sys_ipc(uint call, int first, unsigned long second,
|
||||
long third, void __user *ptr, long fifth);
|
||||
asmlinkage long ppc64_personality(unsigned long personality);
|
||||
asmlinkage int ppc_rtas(struct rtas_args __user *uargs);
|
||||
asmlinkage time_t sys64_time(time_t __user * tloc);
|
||||
asmlinkage long ppc_newuname(struct new_utsname __user * name);
|
||||
|
||||
asmlinkage long sys_rt_sigsuspend(sigset_t __user *unewset,
|
||||
size_t sigsetsize);
|
||||
|
||||
#ifndef __powerpc64__
|
||||
asmlinkage long sys_sigaltstack(const stack_t __user *uss,
|
||||
stack_t __user *uoss, int r5, int r6, int r7, int r8,
|
||||
struct pt_regs *regs);
|
||||
#else /* __powerpc64__ */
|
||||
asmlinkage long sys_sigaltstack(const stack_t __user *uss,
|
||||
stack_t __user *uoss, unsigned long r5, unsigned long r6,
|
||||
unsigned long r7, unsigned long r8, struct pt_regs *regs);
|
||||
#endif /* __powerpc64__ */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __ASM_POWERPC_SYSCALLS_H */
|
|
@ -425,6 +425,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6
|
|||
#include <linux/types.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_OLD_READDIR
|
||||
|
@ -460,43 +461,9 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6
|
|||
* System call prototypes.
|
||||
*/
|
||||
#ifdef __KERNEL_SYSCALLS__
|
||||
extern pid_t setsid(void);
|
||||
extern int write(int fd, const char *buf, off_t count);
|
||||
extern int read(int fd, char *buf, off_t count);
|
||||
extern off_t lseek(int fd, off_t offset, int count);
|
||||
extern int dup(int fd);
|
||||
extern int execve(const char *file, char **argv, char **envp);
|
||||
extern int open(const char *file, int flag, int mode);
|
||||
extern int close(int fd);
|
||||
extern pid_t waitpid(pid_t pid, int *wait_stat, int options);
|
||||
#endif /* __KERNEL_SYSCALLS__ */
|
||||
|
||||
/*
|
||||
* Functions that implement syscalls.
|
||||
*/
|
||||
unsigned long sys_mmap(unsigned long addr, size_t len, unsigned long prot,
|
||||
unsigned long flags, unsigned long fd, off_t offset);
|
||||
unsigned long sys_mmap2(unsigned long addr, size_t len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, unsigned long pgoff);
|
||||
struct pt_regs;
|
||||
int sys_execve(unsigned long a0, unsigned long a1, unsigned long a2,
|
||||
unsigned long a3, unsigned long a4, unsigned long a5,
|
||||
struct pt_regs *regs);
|
||||
int sys_clone(unsigned long clone_flags, unsigned long usp,
|
||||
int __user *parent_tidp, void __user *child_threadptr,
|
||||
int __user *child_tidp, int p6, struct pt_regs *regs);
|
||||
int sys_fork(unsigned long p1, unsigned long p2, unsigned long p3,
|
||||
unsigned long p4, unsigned long p5, unsigned long p6,
|
||||
struct pt_regs *regs);
|
||||
int sys_vfork(unsigned long p1, unsigned long p2, unsigned long p3,
|
||||
unsigned long p4, unsigned long p5, unsigned long p6,
|
||||
struct pt_regs *regs);
|
||||
int sys_pipe(int __user *fildes);
|
||||
struct sigaction;
|
||||
long sys_rt_sigaction(int sig, const struct sigaction __user *act,
|
||||
struct sigaction __user *oact, size_t sigsetsize);
|
||||
|
||||
/*
|
||||
* "Conditional" syscalls
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue