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> | 2008-11-17  Jeff Johnston  <jjohnstn@redhat.com> | ||||||
|  |  | ||||||
| 	* m32r/Makefile.in: Add building m32r-stub.o from local copy instead | 	* 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 | # object files needed | ||||||
| OBJS = \ | OBJS = \ | ||||||
| 	access.o chdir.o chmod.o chown.o close.o conv_stat.o dirfuncs.o dup.o \ | 	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 \ | 	dup2.o exit.o fchdir.o fchmod.o fchown.o fdatasync.o fstat.o fsync.o \ | ||||||
| 	fsync.o ftruncate.o getcwd.o getpagesize.o getpid.o \ | 	ftruncate.o getcwd.o getpagesize.o getpid.o gettimeofday.o isatty.o \ | ||||||
| 	gettimeofday.o isatty.o kill.o lchown.o \ | 	kill.o lchown.o  link.o linux_syscalls.o lockf.o lseek.o lstat.o mkdir.o \ | ||||||
| 	link.o linux_syscalls.o lockf.o lseek.o \ | 	mknod.o mkstemp.o mktemp.o mmap_eaddr.o mremap_eaddr.o msync_eaddr.o \ | ||||||
| 	lstat.o mkdir.o mknod.o mkstemp.o mktemp.o nanosleep.o open.o \ | 	munmap_eaddr.o nanosleep.o open.o pread.o pwrite.o read.o readlink.o \ | ||||||
| 	pread.o pwrite.o read.o readlink.o readv.o rmdir.o sbrk.o \ | 	readv.o rmdir.o sbrk.o sched_yield.o shm_open.o shm_unlink.o stat.o \ | ||||||
| 	sched_yield.o shm_open.o shm_unlink.o stat.o symlink.o sync.o \ | 	symlink.o sync.o syscalls.o truncate.o umask.o unlink.o utime.o utimes.o \ | ||||||
| 	syscalls.o truncate.o umask.o unlink.o utime.o utimes.o write.o \ | 	write.o writev.o | ||||||
| 	writev.o |  | ||||||
|  |  | ||||||
| # Object files specific to particular targets. | # Object files specific to particular targets. | ||||||
| EVALOBJS = ${OBJS} | EVALOBJS = ${OBJS} | ||||||
|   | |||||||
| @@ -6,12 +6,12 @@ All rights reserved. | |||||||
| Redistribution and use in source and binary forms, with or without  | Redistribution and use in source and binary forms, with or without  | ||||||
| modification, are permitted provided that the following conditions are met: | 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. | 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  | notice, this list of conditions and the following disclaimer in the  | ||||||
| documentation and/or other materials provided with the distribution. | 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  | used to endorse or promote products derived from this software without  | ||||||
| specific prior written permission. | specific prior written permission. | ||||||
|  |  | ||||||
| @@ -46,6 +46,10 @@ Author: Andreas Neukoetter (ti95neuk@de.ibm.com) | |||||||
| #define JSRE_GETTIMEOFDAY 7 | #define JSRE_GETTIMEOFDAY 7 | ||||||
| #define JSRE_LSEEK 9 | #define JSRE_LSEEK 9 | ||||||
| #define JSRE_LSTAT 10 | #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_OPEN 15 | ||||||
| #define JSRE_READ 16 | #define JSRE_READ 16 | ||||||
| #define JSRE_SHM_OPEN 21 | #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