From: "Randy.Dunlap" <rddunlap@osdl.org>

add missing syscalls: sys_pipe, sys_ptrace, msg/sem syscalls (from msg.h /
sem.h);



---

 25-akpm/arch/ia64/ia32/sys_ia32.c      |    3 ---
 25-akpm/arch/x86_64/ia32/ptrace32.c    |    3 +--
 25-akpm/include/asm-arm/unistd.h       |    2 ++
 25-akpm/include/asm-arm26/unistd.h     |    2 ++
 25-akpm/include/asm-cris/unistd.h      |    2 ++
 25-akpm/include/asm-h8300/unistd.h     |    2 ++
 25-akpm/include/asm-i386/unistd.h      |    2 ++
 25-akpm/include/asm-ia64/unistd.h      |    9 ++++++++-
 25-akpm/include/asm-m68k/unistd.h      |    2 ++
 25-akpm/include/asm-m68knommu/unistd.h |    4 +++-
 25-akpm/include/asm-mips/unistd.h      |    2 ++
 25-akpm/include/asm-parisc/unistd.h    |    2 ++
 25-akpm/include/asm-ppc/unistd.h       |    2 ++
 25-akpm/include/asm-ppc64/unistd.h     |    2 ++
 25-akpm/include/asm-s390/unistd.h      |    8 ++++++++
 25-akpm/include/asm-sh/unistd.h        |    4 ++++
 25-akpm/include/asm-um/unistd.h        |    2 ++
 25-akpm/include/asm-v850/unistd.h      |    2 ++
 25-akpm/include/asm-x86_64/unistd.h    |    3 +++
 25-akpm/include/linux/msg.h            |    5 -----
 25-akpm/include/linux/sem.h            |    6 ------
 25-akpm/include/linux/syscalls.h       |   19 +++++++++++++++++++
 25-akpm/ipc/sem.c                      |   10 +++++-----
 23 files changed, 75 insertions(+), 23 deletions(-)

diff -puN arch/ia64/ia32/sys_ia32.c~add-syscalls_h-7 arch/ia64/ia32/sys_ia32.c
--- 25/arch/ia64/ia32/sys_ia32.c~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/arch/ia64/ia32/sys_ia32.c	Thu Feb 19 15:16:38 2004
@@ -1430,9 +1430,6 @@ restore_ia32_fpxstate (struct task_struc
 	return 0;
 }
 
-extern asmlinkage long sys_ptrace (long, pid_t, unsigned long, unsigned long, long, long, long,
-				   long, long);
-
 /*
  *  Note that the IA32 version of `ptrace' calls the IA64 routine for
  *    many of the requests.  This will only work for requests that do
diff -puN arch/x86_64/ia32/ptrace32.c~add-syscalls_h-7 arch/x86_64/ia32/ptrace32.c
--- 25/arch/x86_64/ia32/ptrace32.c~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/arch/x86_64/ia32/ptrace32.c	Thu Feb 19 15:16:38 2004
@@ -14,6 +14,7 @@
 #include <linux/kernel.h>
 #include <linux/stddef.h>
 #include <linux/sched.h>
+#include <linux/syscalls.h>
 #include <linux/mm.h>
 #include <asm/ptrace.h>
 #include <asm/uaccess.h>
@@ -223,8 +224,6 @@ static struct task_struct *find_target(i
 	
 } 
 
-extern asmlinkage long sys_ptrace(long request, long pid, unsigned long addr, unsigned long data);
-
 asmlinkage long sys32_ptrace(long request, u32 pid, u32 addr, u32 data)
 {
 	struct task_struct *child;
diff -puN include/asm-arm26/unistd.h~add-syscalls_h-7 include/asm-arm26/unistd.h
--- 25/include/asm-arm26/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-arm26/unistd.h	Thu Feb 19 15:16:38 2004
@@ -457,6 +457,8 @@ asmlinkage int sys_clone(unsigned long c
 			struct pt_regs *regs);
 asmlinkage int sys_fork(struct pt_regs *regs);
 asmlinkage int sys_vfork(struct pt_regs *regs);
+asmlinkage int sys_pipe(unsigned long *fildes);
+asmlinkage int sys_ptrace(long request, long pid, long addr, long data);
 
 /*
  * The following two can't be eliminated yet - they rely on
diff -puN include/asm-arm/unistd.h~add-syscalls_h-7 include/asm-arm/unistd.h
--- 25/include/asm-arm/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-arm/unistd.h	Thu Feb 19 15:16:38 2004
@@ -504,6 +504,8 @@ asmlinkage int sys_clone(unsigned long c
 			struct pt_regs *regs);
 asmlinkage int sys_fork(struct pt_regs *regs);
 asmlinkage int sys_vfork(struct pt_regs *regs);
+asmlinkage int sys_pipe(unsigned long *fildes);
+asmlinkage int sys_ptrace(long request, long pid, long addr, long data);
 
 /*
  * The following two can't be eliminated yet - they rely on
diff -puN include/asm-cris/unistd.h~add-syscalls_h-7 include/asm-cris/unistd.h
--- 25/include/asm-cris/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-cris/unistd.h	Thu Feb 19 15:16:38 2004
@@ -319,6 +319,8 @@ asmlinkage int sys_fork(long r10, long r
 			long mof, long srp, struct pt_regs *regs);
 asmlinkage int sys_vfork(long r10, long r11, long r12, long r13,
 			long mof, long srp, struct pt_regs *regs);
+asmlinkage int sys_pipe(unsigned long __user *fildes);
+asmlinkage int sys_ptrace(long request, long pid, long addr, long data);
 
 /*
  * Since we define it "external", it collides with the built-in
diff -puN include/asm-h8300/unistd.h~add-syscalls_h-7 include/asm-h8300/unistd.h
--- 25/include/asm-h8300/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-h8300/unistd.h	Thu Feb 19 15:16:38 2004
@@ -484,6 +484,8 @@ asmlinkage long sys_mmap2(unsigned long 
 			unsigned long fd, unsigned long pgoff);
 asmlinkage int sys_execve(char *name, char **argv, char **envp,
 			int dummy, ...);
+asmlinkage int sys_pipe(unsigned long *fildes);
+asmlinkage int sys_ptrace(long request, long pid, long addr, long data);
 
 #endif
 
diff -puN include/asm-i386/unistd.h~add-syscalls_h-7 include/asm-i386/unistd.h
--- 25/include/asm-i386/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-i386/unistd.h	Thu Feb 19 15:16:38 2004
@@ -405,6 +405,8 @@ asmlinkage int sys_execve(struct pt_regs
 asmlinkage int sys_clone(struct pt_regs regs);
 asmlinkage int sys_fork(struct pt_regs regs);
 asmlinkage int sys_vfork(struct pt_regs regs);
+asmlinkage int sys_pipe(unsigned long __user *fildes);
+asmlinkage int sys_ptrace(long request, long pid, long addr, long data);
 
 #endif
 
diff -puN include/asm-ia64/unistd.h~add-syscalls_h-7 include/asm-ia64/unistd.h
--- 25/include/asm-ia64/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-ia64/unistd.h	Thu Feb 19 15:16:38 2004
@@ -8,7 +8,6 @@
  *	David Mosberger-Tang <davidm@hpl.hp.com>
  */
 
-#include <linux/linkage.h>
 #include <asm/break.h>
 
 #define __BREAK_SYSCALL			__IA64_BREAK_SYSCALL
@@ -256,6 +255,9 @@
 
 #if !defined(__ASSEMBLY__) && !defined(ASSEMBLER)
 
+#include <linux/types.h>
+#include <linux/linkage.h>
+
 extern long __ia64_syscall (long a0, long a1, long a2, long a3, long a4, long nr);
 
 #ifdef __KERNEL_SYSCALLS__
@@ -340,6 +342,11 @@ asmlinkage unsigned long sys_mmap2(
 struct pt_regs;
 asmlinkage long sys_execve(char *filename, char **argv, char **envp,
 				struct pt_regs *regs);
+asmlinkage long sys_pipe(long arg0, long arg1, long arg2, long arg3,
+			long arg4, long arg5, long arg6, long arg7, long stack);
+asmlinkage long sys_ptrace(long request, pid_t pid,
+			unsigned long addr, unsigned long data,
+			long arg4, long arg5, long arg6, long arg7, long stack);
 
 /*
  * "Conditional" syscalls
diff -puN include/asm-m68knommu/unistd.h~add-syscalls_h-7 include/asm-m68knommu/unistd.h
--- 25/include/asm-m68knommu/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-m68knommu/unistd.h	Thu Feb 19 15:16:38 2004
@@ -371,7 +371,7 @@ type name(atype a, btype b, ctype c, dty
   }										\
   return (type)__res;								\
 }
-		
+
 
 #ifdef __KERNEL_SYSCALLS__
 
@@ -410,6 +410,8 @@ asmlinkage long sys_mmap2(unsigned long 
 			unsigned long prot, unsigned long flags,
 			unsigned long fd, unsigned long pgoff);
 asmlinkage int sys_execve(char *name, char **argv, char **envp);
+asmlinkage int sys_pipe(unsigned long *fildes);
+asmlinkage int sys_ptrace(long request, long pid, long addr, long data);
 
 #endif
 
diff -puN include/asm-m68k/unistd.h~add-syscalls_h-7 include/asm-m68k/unistd.h
--- 25/include/asm-m68k/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-m68k/unistd.h	Thu Feb 19 15:16:38 2004
@@ -368,6 +368,8 @@ asmlinkage long sys_mmap2(
 			unsigned long prot, unsigned long flags,
 			unsigned long fd, unsigned long pgoff);
 asmlinkage int sys_execve(char *name, char **argv, char **envp);
+asmlinkage int sys_pipe(unsigned long *fildes);
+asmlinkage int sys_ptrace(long request, long pid, long addr, long data);
 
 #endif
 
diff -puN include/asm-mips/unistd.h~add-syscalls_h-7 include/asm-mips/unistd.h
--- 25/include/asm-mips/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-mips/unistd.h	Thu Feb 19 15:16:38 2004
@@ -1087,6 +1087,8 @@ asmlinkage long sys_mmap2(
 			unsigned long prot, unsigned long flags,
 			unsigned long fd, unsigned long pgoff);
 asmlinkage int sys_execve(nabi_no_regargs struct pt_regs regs);
+asmlinkage int sys_pipe(nabi_no_regargs struct pt_regs regs);
+asmlinkage int sys_ptrace(long request, long pid, long addr, long data);
 
 #endif /* __KERNEL_SYSCALLS__ */
 #endif /* !__ASSEMBLY__ */
diff -puN include/asm-parisc/unistd.h~add-syscalls_h-7 include/asm-parisc/unistd.h
--- 25/include/asm-parisc/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-parisc/unistd.h	Thu Feb 19 15:16:38 2004
@@ -905,6 +905,8 @@ asmlinkage int sys_execve(struct pt_regs
 int sys_clone(unsigned long clone_flags, unsigned long usp,
 		struct pt_regs *regs);
 int sys_vfork(struct pt_regs *regs);
+int sys_pipe(int *fildes);
+long sys_ptrace(long request, pid_t pid, long addr, long data);
 
 #endif	/* __KERNEL_SYSCALLS__ */
 
diff -puN include/asm-ppc64/unistd.h~add-syscalls_h-7 include/asm-ppc64/unistd.h
--- 25/include/asm-ppc64/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-ppc64/unistd.h	Thu Feb 19 15:16:38 2004
@@ -425,6 +425,8 @@ int sys_fork(unsigned long p1, unsigned 
 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 *fildes);
+int sys_ptrace(long request, long pid, long addr, long data);
 
 /*
  * "Conditional" syscalls
diff -puN include/asm-ppc/unistd.h~add-syscalls_h-7 include/asm-ppc/unistd.h
--- 25/include/asm-ppc/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-ppc/unistd.h	Thu Feb 19 15:16:38 2004
@@ -408,6 +408,8 @@ int sys_fork(int p1, int p2, int p3, int
 		struct pt_regs *regs);
 int sys_vfork(int p1, int p2, int p3, int p4, int p5, int p6,
 		struct pt_regs *regs);
+int sys_pipe(int __user *fildes);
+int sys_ptrace(long request, long pid, long addr, long data);
 
 #endif /* __KERNEL_SYSCALLS__ */
 
diff -puN include/asm-s390/unistd.h~add-syscalls_h-7 include/asm-s390/unistd.h
--- 25/include/asm-s390/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-s390/unistd.h	Thu Feb 19 15:16:38 2004
@@ -505,6 +505,7 @@ type name(type1 arg1, type2 arg2, type3 
 
 #ifdef __KERNEL_SYSCALLS__
 
+#include <linux/config.h>
 #include <asm/ptrace.h>
 #include <asm/stat.h>
 #include <linux/syscalls.h>
@@ -544,6 +545,13 @@ asmlinkage int sys_execve(struct pt_regs
 asmlinkage int sys_clone(struct pt_regs regs);
 asmlinkage int sys_fork(struct pt_regs regs);
 asmlinkage int sys_vfork(struct pt_regs regs);
+#ifndef CONFIG_ARCH_S390X
+#define __SYS_RETTYPE int
+#else
+#define __SYS_RETTYPE long
+#endif /* CONFIG_ARCH_S390X */
+asmlinkage __SYS_RETTYPE sys_pipe(unsigned long *fildes);
+asmlinkage int sys_ptrace(long request, long pid, long addr, long data);
 
 #endif
 
diff -puN include/asm-sh/unistd.h~add-syscalls_h-7 include/asm-sh/unistd.h
--- 25/include/asm-sh/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-sh/unistd.h	Thu Feb 19 15:16:38 2004
@@ -453,6 +453,10 @@ asmlinkage int sys_fork(unsigned long r4
 asmlinkage int sys_vfork(unsigned long r4, unsigned long r5,
 			unsigned long r6, unsigned long r7,
 			struct pt_regs regs);
+asmlinkage int sys_pipe(unsigned long r4, unsigned long r5,
+			unsigned long r6, unsigned long r7,
+			struct pt_regs regs);
+asmlinkage int sys_ptrace(long request, long pid, long addr, long data);
 
 #endif
 
diff -puN include/asm-um/unistd.h~add-syscalls_h-7 include/asm-um/unistd.h
--- 25/include/asm-um/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-um/unistd.h	Thu Feb 19 15:16:38 2004
@@ -76,6 +76,8 @@ long sys_clone(unsigned long clone_flags
 		int *parent_tid, int *child_tid);
 long sys_fork(void);
 long sys_vfork(void);
+int sys_pipe(unsigned long *fildes);
+int sys_ptrace(long request, long pid, long addr, long data);
 
 #endif
 
diff -puN include/asm-v850/unistd.h~add-syscalls_h-7 include/asm-v850/unistd.h
--- 25/include/asm-v850/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-v850/unistd.h	Thu Feb 19 15:16:38 2004
@@ -425,6 +425,8 @@ unsigned long sys_mmap2(unsigned long ad
 			unsigned long fd, unsigned long pgoff);
 struct pt_regs;
 int sys_execve (char *name, char **argv, char **envp, struct pt_regs *regs);
+int sys_pipe (int *fildes);
+int sys_ptrace(long request, long pid, long addr, long data);
 
 #endif
 
diff -puN include/asm-x86_64/unistd.h~add-syscalls_h-7 include/asm-x86_64/unistd.h
--- 25/include/asm-x86_64/unistd.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/asm-x86_64/unistd.h	Thu Feb 19 15:16:38 2004
@@ -709,6 +709,9 @@ asmlinkage long sys_clone(unsigned long 
 			struct pt_regs regs);
 asmlinkage long sys_fork(struct pt_regs regs);
 asmlinkage long sys_vfork(struct pt_regs regs);
+asmlinkage long sys_pipe(int *fildes);
+asmlinkage long sys_ptrace(long request, long pid,
+				unsigned long addr, long data);
 
 #endif /* __KERNEL_SYSCALLS__ */
 
diff -puN include/linux/msg.h~add-syscalls_h-7 include/linux/msg.h
--- 25/include/linux/msg.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/linux/msg.h	Thu Feb 19 15:16:38 2004
@@ -95,11 +95,6 @@ struct msg_queue {
 	struct list_head q_senders;
 };
 
-asmlinkage long sys_msgget (key_t key, int msgflg);
-asmlinkage long sys_msgsnd (int msqid, struct msgbuf __user *msgp, size_t msgsz, int msgflg);
-asmlinkage long sys_msgrcv (int msqid, struct msgbuf __user *msgp, size_t msgsz, long msgtyp, int msgflg);
-asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf);
-
 #endif /* __KERNEL__ */
 
 #endif /* _LINUX_MSG_H */
diff -puN include/linux/sem.h~add-syscalls_h-7 include/linux/sem.h
--- 25/include/linux/sem.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/linux/sem.h	Thu Feb 19 15:16:38 2004
@@ -134,12 +134,6 @@ struct sysv_sem {
 	struct sem_undo_list *undo_list;
 };
 
-asmlinkage long sys_semget (key_t key, int nsems, int semflg);
-asmlinkage long sys_semop (int semid, struct sembuf __user *sops, unsigned nsops);
-asmlinkage long sys_semctl (int semid, int semnum, int cmd, union semun arg);
-asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops,
-			unsigned nsops, const struct timespec __user *timeout);
-
 void exit_sem(struct task_struct *p);
 
 #endif /* __KERNEL__ */
diff -puN include/linux/syscalls.h~add-syscalls_h-7 include/linux/syscalls.h
--- 25/include/linux/syscalls.h~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/include/linux/syscalls.h	Thu Feb 19 15:16:38 2004
@@ -23,7 +23,9 @@ struct itimerval;
 struct linux_dirent;
 struct linux_dirent64;
 struct list_head;
+struct msgbuf;
 struct msghdr;
+struct msqid_ds;
 struct new_utsname;
 struct nfsctl_arg;
 struct __old_kernel_stat;
@@ -32,6 +34,7 @@ struct rlimit;
 struct rusage;
 struct sched_param;
 struct semaphore;
+struct sembuf;
 struct sockaddr;
 struct stat;
 struct stat64;
@@ -49,6 +52,7 @@ struct utimbuf;
 #include <linux/aio_abi.h>
 #include <linux/capability.h>
 #include <linux/list.h>
+#include <linux/sem.h>
 #include <asm/semaphore.h>
 #include <asm/siginfo.h>
 #include <asm/signal.h>
@@ -411,6 +415,21 @@ asmlinkage long sys_setrlimit(unsigned i
 asmlinkage long sys_getrusage(int who, struct rusage __user *ru);
 asmlinkage long sys_umask(int mask);
 
+asmlinkage long sys_msgget(key_t key, int msgflg);
+asmlinkage long sys_msgsnd(int msqid, struct msgbuf __user *msgp,
+				size_t msgsz, int msgflg);
+asmlinkage long sys_msgrcv(int msqid, struct msgbuf __user *msgp,
+				size_t msgsz, long msgtyp, int msgflg);
+asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *buf);
+
+asmlinkage long sys_semget(key_t key, int nsems, int semflg);
+asmlinkage long sys_semop(int semid, struct sembuf __user *sops,
+				unsigned nsops);
+asmlinkage long sys_semctl(int semid, int semnum, int cmd, union semun arg);
+asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops,
+				unsigned nsops,
+				const struct timespec __user *timeout);
+
 asmlinkage long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn);
 asmlinkage long sys_pciconfig_read(unsigned long bus, unsigned long dfn,
 				unsigned long off, unsigned long len,
diff -puN ipc/sem.c~add-syscalls_h-7 ipc/sem.c
--- 25/ipc/sem.c~add-syscalls_h-7	Thu Feb 19 15:16:38 2004
+++ 25-akpm/ipc/sem.c	Thu Feb 19 15:16:38 2004
@@ -1011,11 +1011,6 @@ out:
 	return un;
 }
 
-asmlinkage long sys_semop (int semid, struct sembuf __user *tsops, unsigned nsops)
-{
-	return sys_semtimedop(semid, tsops, nsops, NULL);
-}
-
 asmlinkage long sys_semtimedop(int semid, struct sembuf __user *tsops,
 			unsigned nsops, const struct timespec __user *timeout)
 {
@@ -1181,6 +1176,11 @@ out_free:
 	return error;
 }
 
+asmlinkage long sys_semop (int semid, struct sembuf __user *tsops, unsigned nsops)
+{
+	return sys_semtimedop(semid, tsops, nsops, NULL);
+}
+
 /* If CLONE_SYSVSEM is set, establish sharing of SEM_UNDO state between
  * parent and child tasks.
  *

_