From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 123879 invoked by alias); 24 Aug 2018 13:09:08 -0000 Mailing-List: contact newlib-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: newlib-cvs-owner@sourceware.org Received: (qmail 121846 invoked by uid 10080); 24 Aug 2018 13:09:07 -0000 Date: Fri, 24 Aug 2018 13:09:00 -0000 Message-ID: <20180824130907.121833.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Sebastian Huber To: newlib-cvs@sourceware.org Subject: [newlib-cygwin] Implement process-shared locks support X-Act-Checkin: newlib-cygwin X-Git-Author: kib X-Git-Refname: refs/heads/master X-Git-Oldrev: 7cfc736e8911c2ad1fbd9d212264c44bcda45fbd X-Git-Newrev: c3df6d5155f0ffc3337991fbc1796952edf2cd82 X-SW-Source: 2018-q3/txt/msg00057.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=c3df6d5155f0ffc3337991fbc1796952edf2cd82 commit c3df6d5155f0ffc3337991fbc1796952edf2cd82 Author: kib Date: Sun Feb 28 17:52:33 2016 +0000 Implement process-shared locks support for libthr.so.3, without breaking the ABI. Special value is stored in the lock pointer to indicate shared lock, and offline page in the shared memory is allocated to store the actual lock. Reviewed by: vangyzen (previous version) Discussed with: deischen, emaste, jhb, rwatson, Martin Simmons Tested by: pho Sponsored by: The FreeBSD Foundation Diff: --- newlib/libc/sys/rtems/include/sys/mman.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/newlib/libc/sys/rtems/include/sys/mman.h b/newlib/libc/sys/rtems/include/sys/mman.h index 19d992e..1fce960 100644 --- a/newlib/libc/sys/rtems/include/sys/mman.h +++ b/newlib/libc/sys/rtems/include/sys/mman.h @@ -233,6 +233,13 @@ struct shmfd { int shm_map(struct file *fp, size_t size, off_t offset, void **memp); int shm_unmap(struct file *fp, void *mem, size_t size); +int shm_access(struct shmfd *shmfd, struct ucred *ucred, int flags); +struct shmfd *shm_alloc(struct ucred *ucred, mode_t mode); +struct shmfd *shm_hold(struct shmfd *shmfd); +void shm_drop(struct shmfd *shmfd); +int shm_dotruncate(struct shmfd *shmfd, off_t length); + +extern struct fileops shm_ops; #else /* !_KERNEL */ __BEGIN_DECLS