diff options
author | Kevin Kirspel <kevin-kirspel@idexx.com> | 2017-06-29 10:36:43 -0400 |
---|---|---|
committer | Gedare Bloom <gedare@rtems.org> | 2017-07-14 16:04:05 -0400 |
commit | c6bb1c33bcf70d1398073c96a4fac4f9b031b9ab (patch) | |
tree | ce904d8bfaded9060edf71bac28c517c3e75a4c8 /cpukit/libfs/src/defaults | |
parent | bsps: Include missing header file (diff) | |
download | rtems-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.c | 1 | ||||
-rw-r--r-- | cpukit/libfs/src/defaults/default_mmap.c | 40 |
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 ); |