This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] SPU linux getpid


Hi,

this patch adds getpid and gettid functions for the SPU.

Regards
Ken

libgloss/ChangeLog:

2009-04-03  Ken Werner  <ken.werner@de.ibm.com>

        * spu/Makefile.in: Add linux_getpid.o and linux_gettid.o.
	* spu/linux_getpid.c: New file.
	* spu/linux_getpid.c: New file.

newlib/ChangeLog:

2009-04-03  Ken Werner  <ken.werner@de.ibm.com>

        * libc/machine/spu/sys/linux_syscalls.h: include <sys/types.h>
          (linux_getpid, linux_gettid): Declare.

Index: src/libgloss/spu/Makefile.in
===================================================================
--- src.orig/libgloss/spu/Makefile.in
+++ src/libgloss/spu/Makefile.in
@@ -63,7 +63,7 @@ OBJS = \
 	munmap_eaddr.o nanosleep.o open.o pread.o pwrite.o read.o readlink.o \
 	readv.o rmdir.o sbrk.o sched_yield.o shm_open.o shm_unlink.o stat.o \
 	symlink.o sync.o syscalls.o truncate.o umask.o unlink.o utime.o utimes.o \
-	write.o writev.o
+	write.o writev.o linux_getpid.o linux_gettid.o
 
 # Object files specific to particular targets.
 EVALOBJS = ${OBJS}
Index: src/libgloss/spu/linux_getpid.c
===================================================================
--- /dev/null
+++ src/libgloss/spu/linux_getpid.c
@@ -0,0 +1,50 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+Author: Ken Werner <ken.werner@de.ibm.com>
+*/
+
+#include <sys/linux_syscalls.h>
+#include <sys/types.h>
+
+pid_t
+linux_getpid (void)
+{
+  struct spu_syscall_block s = {
+    __NR_getpid,
+    {
+     0,
+     0,
+     0,
+     0,
+     0,
+     0}
+  };
+  return __linux_syscall (&s);
+}
Index: src/libgloss/spu/linux_gettid.c
===================================================================
--- /dev/null
+++ src/libgloss/spu/linux_gettid.c
@@ -0,0 +1,50 @@
+/*
+(C) Copyright IBM Corp. 2009
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of IBM nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+Author: Ken Werner <ken.werner@de.ibm.com>
+*/
+
+#include "sys/linux_syscalls.h"
+#include <sys/types.h>
+
+pid_t
+linux_gettid (void)
+{
+  struct spu_syscall_block s = {
+    __NR_gettid,
+    {
+     0,
+     0,
+     0,
+     0,
+     0,
+     0}
+  };
+  return __linux_syscall (&s);
+}
Index: src/newlib/libc/machine/spu/sys/linux_syscalls.h
===================================================================
--- src.orig/newlib/libc/machine/spu/sys/linux_syscalls.h
+++ src/newlib/libc/machine/spu/sys/linux_syscalls.h
@@ -32,9 +32,8 @@ Author: Ken Werner <ken.werner@de.ibm.co
 
 #ifndef __LINUX_SYSCALLS_H
 #define __LINUX_SYSCALLS_H
-#ifdef __cplusplus
-extern "C" {
-#endif
+
+#include <sys/types.h>
 
 /* The system call numbers. See kernel source file
    arch/powerpc/include/asm/unistd.h.  */
@@ -294,9 +293,17 @@ struct spu_syscall_block
   unsigned long long parm[6];	/* System call arguments.  */
 };
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Issues a Linux system call.  */
 int __linux_syscall (struct spu_syscall_block *s);
 
+/* Linux system calls.  */
+pid_t linux_getpid(void);
+pid_t linux_gettid(void);
+
 #ifdef __cplusplus
 }
 #endif

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]