diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2006-12-13 19:42:56 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2006-12-13 19:42:56 +0000 |
commit | d7d262442cd7e66531f5b1cb2ea495dc1cec2827 (patch) | |
tree | 52d27139e8ef4ce64417d7860e78da5eec6fc4dd /libgloss/spu | |
parent | 4e051d914ac43b2bec8978f9fe2be25cb1c4dadf (diff) | |
download | newlib-d7d262442cd7e66531f5b1cb2ea495dc1cec2827.zip newlib-d7d262442cd7e66531f5b1cb2ea495dc1cec2827.tar.gz newlib-d7d262442cd7e66531f5b1cb2ea495dc1cec2827.tar.bz2 |
2006-12-13 Sa Liu <saliu@de.ibm.com>
* spu/access.c: New file
* spu/dup.c: New file
* spu/ftruncate.c: New file
* spu/jsre.h: add structures for new functions
* spu/time.c: New file
* spu/Makefile.in (access.o, dup.o, ftruncate.o, time.o): New targets.
Diffstat (limited to 'libgloss/spu')
-rw-r--r-- | libgloss/spu/Makefile.in | 3 | ||||
-rw-r--r-- | libgloss/spu/access.c | 49 | ||||
-rw-r--r-- | libgloss/spu/dup.c | 48 | ||||
-rw-r--r-- | libgloss/spu/ftruncate.c | 49 | ||||
-rw-r--r-- | libgloss/spu/jsre.h | 32 | ||||
-rw-r--r-- | libgloss/spu/time.c | 49 |
6 files changed, 229 insertions, 1 deletions
diff --git a/libgloss/spu/Makefile.in b/libgloss/spu/Makefile.in index b147bda..a68d8b7 100644 --- a/libgloss/spu/Makefile.in +++ b/libgloss/spu/Makefile.in @@ -55,7 +55,8 @@ OBJCOPY = `t='$(program_transform_name)'; echo objcopy | sed -e $$t` # object files needed OBJS = syscalls.o exit.o sbrk.o close.o fstat.o getpid.o isatty.o \ - kill.o lseek.o open.o read.o unlink.o write.o stat.o + kill.o lseek.o open.o read.o unlink.o write.o stat.o \ + ftruncate.o dup.o access.o time.o # Object files specific to particular targets. EVALOBJS = ${OBJS} diff --git a/libgloss/spu/access.c b/libgloss/spu/access.c new file mode 100644 index 0000000..ae3ab2d --- /dev/null +++ b/libgloss/spu/access.c @@ -0,0 +1,49 @@ +/* +(C) Copyright IBM Corp. 2005, 2006 + +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. + +*/ + +#include <errno.h> +#include "jsre.h" + +int +access (const char *pathname, int mode) +{ + syscall_access_t sys; + syscall_out_t *psys_out = ( syscall_out_t* )&sys; + + sys.pathname = (unsigned int) pathname; + sys.mode = mode; + + _send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_ACCESS, &sys); + + errno = psys_out->err; + return ( psys_out->rc); +} + diff --git a/libgloss/spu/dup.c b/libgloss/spu/dup.c new file mode 100644 index 0000000..86562e7 --- /dev/null +++ b/libgloss/spu/dup.c @@ -0,0 +1,48 @@ +/* +(C) Copyright IBM Corp. 2005, 2006 + +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. + +*/ + +#include <errno.h> +#include "jsre.h" + +int +dup (int oldfd) +{ + syscall_dup_t sys; + syscall_out_t *psys_out = ( syscall_out_t* )&sys; + + sys.oldfd = oldfd; + + _send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_DUP, &sys); + + errno = psys_out->err; + return ( psys_out->rc); +} + diff --git a/libgloss/spu/ftruncate.c b/libgloss/spu/ftruncate.c new file mode 100644 index 0000000..4f05bef --- /dev/null +++ b/libgloss/spu/ftruncate.c @@ -0,0 +1,49 @@ +/* +(C) Copyright IBM Corp. 2005, 2006 + +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. + +*/ +#include <unistd.h> +#include <errno.h> +#include "jsre.h" + +int +ftruncate (int file, off_t length) +{ + syscall_ftruncate_t sys; + syscall_out_t *psys_out = ( syscall_out_t* )&sys; + + sys.file = file; + sys.length = length; + + _send_to_ppe(JSRE_POSIX1_SIGNALCODE, JSRE_FTRUNCATE, &sys); + + errno = psys_out->err; + return ( psys_out->rc); +} + diff --git a/libgloss/spu/jsre.h b/libgloss/spu/jsre.h index 2bf0be0..4b95618 100644 --- a/libgloss/spu/jsre.h +++ b/libgloss/spu/jsre.h @@ -62,6 +62,10 @@ Author: Andreas Neukoetter (ti95neuk@de.ibm.com) #define JSRE_STAT 23 #define JSRE_UNLINK 24 #define JSRE_WRITE 27 +#define JSRE_FTRUNCATE 28 +#define JSRE_ACCESS 29 +#define JSRE_DUP 30 +#define JSRE_TIME 31 typedef struct { @@ -111,6 +115,34 @@ typedef struct typedef struct { + unsigned int file; + unsigned int pad0[ 3 ]; + unsigned int length; + unsigned int pad1[ 3 ]; +} syscall_ftruncate_t; + +typedef struct +{ + unsigned int pathname; + unsigned int pad0[ 3 ]; + unsigned int mode; + unsigned int pad1[ 3 ]; +} syscall_access_t; + +typedef struct +{ + unsigned int oldfd; + unsigned int pad0[ 3 ]; +} syscall_dup_t; + +typedef struct +{ + unsigned int time; + unsigned int pad0[ 3 ]; +} syscall_time_t; + +typedef struct +{ unsigned int pathname; unsigned int pad0[ 3 ]; } syscall_unlink_t; diff --git a/libgloss/spu/time.c b/libgloss/spu/time.c new file mode 100644 index 0000000..03fd02e --- /dev/null +++ b/libgloss/spu/time.c @@ -0,0 +1,49 @@ +/* +(C) Copyright IBM Corp. 2005, 2006 + +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. + +*/ + +#include <unistd.h> +#include <errno.h> +#include "jsre.h" + +time_t +time (time_t *t) +{ + syscall_time_t sys; + syscall_out_t *psys_out = ( syscall_out_t* )&sys; + + sys.time = t; + + _send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_TIME, &sys); + + errno = psys_out->err; + return ( psys_out->rc); +} + |