2008-11-20 Ken Werner <ken.werner@de.ibm.com>
Patrick Mansfield <patmans@us.ibm.com> Joel Schopp <jschopp@austin.ibm.com> * spu/Makefile.in: Add new files. * spu/jsre.h: Add JSRE_MMAP, JSRE_MREMAP, JSRE_MSYNC and JSRE_MUNMAP opcodes. * spu/mmap_eaddr.c: New File. * spu/mremap_eaddr.c: Likewise. * spu/msync_eaddr.c: Likewise. * spu/munmap_eaddr.c: Likewise.
This commit is contained in:
		| @@ -1,3 +1,15 @@ | ||||
| 2008-11-20  Ken Werner  <ken.werner@de.ibm.com> | ||||
|             Patrick Mansfield  <patmans@us.ibm.com> | ||||
|             Joel Schopp   <jschopp@austin.ibm.com> | ||||
|  | ||||
| 	* spu/Makefile.in: Add new files. | ||||
| 	* spu/jsre.h: Add JSRE_MMAP, JSRE_MREMAP, JSRE_MSYNC and | ||||
| 	JSRE_MUNMAP opcodes. | ||||
| 	* spu/mmap_eaddr.c: New File. | ||||
| 	* spu/mremap_eaddr.c: Likewise. | ||||
| 	* spu/msync_eaddr.c: Likewise. | ||||
| 	* spu/munmap_eaddr.c: Likewise. | ||||
|  | ||||
| 2008-11-17  Jeff Johnston  <jjohnstn@redhat.com> | ||||
|  | ||||
| 	* m32r/Makefile.in: Add building m32r-stub.o from local copy instead | ||||
|   | ||||
| @@ -56,15 +56,14 @@ OBJCOPY = `t='$(program_transform_name)'; echo objcopy | sed -e $$t` | ||||
| # object files needed | ||||
| OBJS = \ | ||||
| 	access.o chdir.o chmod.o chown.o close.o conv_stat.o dirfuncs.o dup.o \ | ||||
| 	dup2.o exit.o fchdir.o fchmod.o fchown.o fdatasync.o fstat.o \ | ||||
| 	fsync.o ftruncate.o getcwd.o getpagesize.o getpid.o \ | ||||
| 	gettimeofday.o isatty.o kill.o lchown.o \ | ||||
| 	link.o linux_syscalls.o lockf.o lseek.o \ | ||||
| 	lstat.o mkdir.o mknod.o mkstemp.o mktemp.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 | ||||
| 	dup2.o exit.o fchdir.o fchmod.o fchown.o fdatasync.o fstat.o fsync.o \ | ||||
| 	ftruncate.o getcwd.o getpagesize.o getpid.o gettimeofday.o isatty.o \ | ||||
| 	kill.o lchown.o  link.o linux_syscalls.o lockf.o lseek.o lstat.o mkdir.o \ | ||||
| 	mknod.o mkstemp.o mktemp.o mmap_eaddr.o mremap_eaddr.o msync_eaddr.o \ | ||||
| 	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 | ||||
|  | ||||
| # Object files specific to particular targets. | ||||
| EVALOBJS = ${OBJS} | ||||
|   | ||||
| @@ -6,12 +6,12 @@ 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,  | ||||
| * 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  | ||||
| * 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  | ||||
| * 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. | ||||
|  | ||||
| @@ -46,6 +46,10 @@ Author: Andreas Neukoetter (ti95neuk@de.ibm.com) | ||||
| #define JSRE_GETTIMEOFDAY 7 | ||||
| #define JSRE_LSEEK 9 | ||||
| #define JSRE_LSTAT 10 | ||||
| #define JSRE_MMAP 11 | ||||
| #define JSRE_MREMAP 12 | ||||
| #define JSRE_MSYNC 13 | ||||
| #define JSRE_MUNMAP 14 | ||||
| #define JSRE_OPEN 15 | ||||
| #define JSRE_READ 16 | ||||
| #define JSRE_SHM_OPEN 21 | ||||
|   | ||||
							
								
								
									
										67
									
								
								libgloss/spu/mmap_eaddr.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								libgloss/spu/mmap_eaddr.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| /* | ||||
| (C) Copyright IBM Corp. 2007 | ||||
|  | ||||
| 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 <sys/mman.h> | ||||
| #include "jsre.h" | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   unsigned long long start; | ||||
|   unsigned int pad0[2]; | ||||
|   unsigned int length; | ||||
|   unsigned int pad1[3]; | ||||
|   unsigned int prot; | ||||
|   unsigned int pad2[3]; | ||||
|   unsigned int flags; | ||||
|   unsigned int pad3[3]; | ||||
|   unsigned int fd; | ||||
|   unsigned int pad4[3]; | ||||
|   unsigned int offset; | ||||
|   unsigned int pad5[3]; | ||||
| } syscall_mmap_t; | ||||
|  | ||||
| unsigned long long mmap_eaddr(unsigned long long start, size_t length, int | ||||
|                               prot, int flags, int fd, off_t offset) | ||||
| { | ||||
|   syscall_mmap_t sys; | ||||
|  | ||||
|   sys.start = start; | ||||
|   sys.length = (unsigned int) length; | ||||
|   sys.prot = (unsigned int) prot; | ||||
|   sys.flags = (unsigned int) flags; | ||||
|   sys.fd = (unsigned int) fd; | ||||
|   sys.offset = (unsigned int) offset; | ||||
|   __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_MMAP, &sys); | ||||
|   /* | ||||
|    * Extract 64 bit result from the result stored in sys. | ||||
|    */ | ||||
|   return *(unsigned long long *) (&sys); | ||||
| } | ||||
							
								
								
									
										61
									
								
								libgloss/spu/mremap_eaddr.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								libgloss/spu/mremap_eaddr.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,61 @@ | ||||
| /* | ||||
| (C) Copyright IBM Corp. 2007 | ||||
|  | ||||
| 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 <sys/mman.h> | ||||
| #include "jsre.h" | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   unsigned long long old_addr; | ||||
|   unsigned int pad0[2]; | ||||
|   unsigned int old_size; | ||||
|   unsigned int pad1[3]; | ||||
|   unsigned int new_size; | ||||
|   unsigned int pad2[3]; | ||||
|   unsigned int flags; | ||||
|   unsigned int pad3[3]; | ||||
| } syscall_mremap_t; | ||||
|  | ||||
| unsigned long long mremap_eaddr(unsigned long long old_addr, size_t old_size, | ||||
|                                 size_t new_size, int flags) | ||||
| { | ||||
|   syscall_mremap_t sys; | ||||
|  | ||||
|   sys.old_addr = old_addr; | ||||
|   sys.old_size = (unsigned int) old_size; | ||||
|   sys.new_size = (unsigned int) new_size; | ||||
|   sys.flags = (unsigned int) flags; | ||||
|   __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_MREMAP, &sys); | ||||
|   /* | ||||
|    * Extract 64 bit result from the result stored in sys. | ||||
|    */ | ||||
|   return *(unsigned long long *) (&sys); | ||||
| } | ||||
							
								
								
									
										58
									
								
								libgloss/spu/msync_eaddr.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								libgloss/spu/msync_eaddr.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| /* | ||||
| (C) Copyright IBM Corp. 2007 | ||||
|  | ||||
| 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 <sys/mman.h> | ||||
| #include "jsre.h" | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   unsigned long long start; | ||||
|   unsigned int pad0[2]; | ||||
|   unsigned int length; | ||||
|   unsigned int pad1[3]; | ||||
|   unsigned int flags; | ||||
|   unsigned int pad2[3]; | ||||
| } syscall_msync_t; | ||||
|  | ||||
| unsigned long long msync_eaddr(unsigned long long start, size_t length, | ||||
|                                int flags) | ||||
| { | ||||
|   syscall_msync_t sys; | ||||
|  | ||||
|   sys.start = start; | ||||
|   sys.length = (unsigned int) length; | ||||
|   sys.flags = (unsigned int) flags; | ||||
|   __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_MSYNC, &sys); | ||||
|   /* | ||||
|    * Extract 64 bit result from the result stored in sys. | ||||
|    */ | ||||
|   return *(unsigned long long *) (&sys); | ||||
| } | ||||
							
								
								
									
										54
									
								
								libgloss/spu/munmap_eaddr.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								libgloss/spu/munmap_eaddr.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| /* | ||||
| (C) Copyright IBM Corp. 2007 | ||||
|  | ||||
| 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 <sys/mman.h> | ||||
| #include "jsre.h" | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   unsigned long long start; | ||||
|   unsigned int pad0[2]; | ||||
|   unsigned int length; | ||||
|   unsigned int pad1[3]; | ||||
| } syscall_munmap_t; | ||||
|  | ||||
| unsigned long long munmap_eaddr(unsigned long long start, size_t length) | ||||
| { | ||||
|   syscall_munmap_t sys; | ||||
|  | ||||
|   sys.start = start; | ||||
|   sys.length = (unsigned int) length; | ||||
|   __send_to_ppe (JSRE_POSIX1_SIGNALCODE, JSRE_MUNMAP, &sys); | ||||
|   /* | ||||
|    * Extract 64 bit result from the result stored in sys. | ||||
|    */ | ||||
|   return *(unsigned long long *) (&sys); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user