summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2013-08-21 17:45:00 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-08-24 15:00:02 +0200
commite6a85661cee799cd51c2afff4d6d5ec54d3e8a43 (patch)
tree8eb402f4dee9459988290fa77e16d7d9e3a321c7
parent5d29023c110473e13beff16607d85a49673f2b7b (diff)
downloadcygnal-e6a85661cee799cd51c2afff4d6d5ec54d3e8a43.tar.gz
cygnal-e6a85661cee799cd51c2afff4d6d5ec54d3e8a43.tar.bz2
cygnal-e6a85661cee799cd51c2afff4d6d5ec54d3e8a43.zip
Implement read(2)/write(2) and neccessary lseek(2)
for posix shmfd. Add MAC framework entries for posix shm read and write. Do not allow implicit extension of the underlying memory segment past the limit set by ftruncate(2) by either of the syscalls. Read and write returns short i/o, lseek(2) fails with EINVAL when resulting offset does not fit into the limit. Discussed with: alc Tested by: pho Sponsored by: The FreeBSD Foundation
-rw-r--r--newlib/libc/sys/rtems/include/sys/mman.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/newlib/libc/sys/rtems/include/sys/mman.h b/newlib/libc/sys/rtems/include/sys/mman.h
index e7e5cf46b..536bfd562 100644
--- a/newlib/libc/sys/rtems/include/sys/mman.h
+++ b/newlib/libc/sys/rtems/include/sys/mman.h
@@ -190,6 +190,10 @@ typedef __size_t size_t;
#endif
#if defined(_KERNEL) || defined(_WANT_FILE)
+#include <sys/lock.h>
+#include <sys/mutex.h>
+#include <sys/queue.h>
+#include <sys/rangelock.h>
#include <vm/vm.h>
struct file;
@@ -215,6 +219,9 @@ struct shmfd {
struct label *shm_label; /* MAC label */
const char *shm_path;
+
+ struct rangelock shm_rl;
+ struct mtx shm_mtx;
};
#endif