summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs/src/defaults
diff options
context:
space:
mode:
authorKevin Kirspel <kevin-kirspel@idexx.com>2017-06-29 10:36:43 -0400
committerGedare Bloom <gedare@rtems.org>2017-07-14 16:04:05 -0400
commitc6bb1c33bcf70d1398073c96a4fac4f9b031b9ab (patch)
treece904d8bfaded9060edf71bac28c517c3e75a4c8 /cpukit/libfs/src/defaults
parentbsps: Include missing header file (diff)
downloadrtems-c6bb1c33bcf70d1398073c96a4fac4f9b031b9ab.tar.bz2
posix/mmap: Add support for file handler and MAP_ANON
Added a mmap file handler to struct _rtems_filesystem_file_handlers_r. Updated each file handler object to support the default mmap handler. Updated mmap() to call the mmap handler for MAP_SHARED. Added a mmap file handler for shm Added support for MAP_ANON in mmap(). Updates #2859
Diffstat (limited to 'cpukit/libfs/src/defaults')
-rw-r--r--cpukit/libfs/src/defaults/default_handlers.c1
-rw-r--r--cpukit/libfs/src/defaults/default_mmap.c40
2 files changed, 41 insertions, 0 deletions
diff --git a/cpukit/libfs/src/defaults/default_handlers.c b/cpukit/libfs/src/defaults/default_handlers.c
index 903cddc7f3..3730f6c283 100644
--- a/cpukit/libfs/src/defaults/default_handlers.c
+++ b/cpukit/libfs/src/defaults/default_handlers.c
@@ -34,6 +34,7 @@ const rtems_filesystem_file_handlers_r rtems_filesystem_handlers_default = {
.fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync,
.fcntl_h = rtems_filesystem_default_fcntl,
.kqfilter_h = rtems_filesystem_default_kqfilter,
+ .mmap_h = rtems_filesystem_default_mmap,
.poll_h = rtems_filesystem_default_poll,
.readv_h = rtems_filesystem_default_readv,
.writev_h = rtems_filesystem_default_writev
diff --git a/cpukit/libfs/src/defaults/default_mmap.c b/cpukit/libfs/src/defaults/default_mmap.c
new file mode 100644
index 0000000000..08534eef31
--- /dev/null
+++ b/cpukit/libfs/src/defaults/default_mmap.c
@@ -0,0 +1,40 @@
+/**
+ * @file
+ *
+ * @brief Default MMAP Handler
+ *
+ * @ingroup LibIOFSHandler
+ */
+
+/*
+ * Copyright (c) 2017 Kevin Kirspel (kirspkt@gmail.com)
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#if HAVE_CONFIG_H
+ #include "config.h"
+#endif
+
+#include <rtems/libio_.h>
+
+int rtems_filesystem_default_mmap(
+ rtems_libio_t *iop,
+ void **addr,
+ size_t len,
+ int prot,
+ off_t off
+)
+{
+ rtems_set_errno_and_return_minus_one( ENOTSUP );
+}
+
+int rtems_termios_mmap(
+ rtems_libio_t *iop,
+ void **addr,
+ size_t len,
+ int prot,
+ off_t off
+) RTEMS_WEAK_ALIAS( rtems_filesystem_default_mmap );