You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ma...@apache.org on 2021/06/30 23:07:07 UTC
[incubator-nuttx] 02/02: mmap: Implement the minial but reasonable
mlock/munlock/mprotect
This is an automated email from the ASF dual-hosted git repository.
masayuki pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 06215be327b28d9f798e5d0a61a90762d01f283b
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Thu Jun 24 02:29:19 2021 +0800
mmap: Implement the minial but reasonable mlock/munlock/mprotect
Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
Change-Id: I538e0d78ecd0680374a2e0f56adbc61d7a4e6d1f
---
fs/mmap/Make.defs | 2 +-
fs/mmap/fs_mmap.c | 3 +--
fs/mmap/fs_mmisc.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 67 insertions(+), 3 deletions(-)
diff --git a/fs/mmap/Make.defs b/fs/mmap/Make.defs
index d7cfa57..ab8cbd0 100644
--- a/fs/mmap/Make.defs
+++ b/fs/mmap/Make.defs
@@ -18,7 +18,7 @@
#
############################################################################
-CSRCS += fs_mmap.c fs_munmap.c
+CSRCS += fs_mmap.c fs_munmap.c fs_mmisc.c
ifeq ($(CONFIG_FS_RAMMAP),y)
CSRCS += fs_rammap.c
diff --git a/fs/mmap/fs_mmap.c b/fs/mmap/fs_mmap.c
index 6b210b5..baab91f 100644
--- a/fs/mmap/fs_mmap.c
+++ b/fs/mmap/fs_mmap.c
@@ -132,8 +132,7 @@ FAR void *mmap(FAR void *start, size_t length, int prot, int flags,
* logic is not in place.
*/
- if (prot == PROT_NONE ||
- (flags & (MAP_FIXED | MAP_DENYWRITE)) != 0)
+ if ((flags & (MAP_FIXED | MAP_DENYWRITE)) != 0)
{
ferr("ERROR: Unsupported options, prot=%x flags=%04x\n", prot, flags);
ret = -ENOSYS;
diff --git a/fs/mmap/fs_mmisc.c b/fs/mmap/fs_mmisc.c
new file mode 100644
index 0000000..a7ede82
--- /dev/null
+++ b/fs/mmap/fs_mmisc.c
@@ -0,0 +1,65 @@
+/****************************************************************************
+ * fs/mmap/fs_mmisc.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership. The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <sys/mman.h>
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/* The empty implementation is enough since the paging isn't supported yet. */
+
+int mlock(FAR const void *addr, size_t len)
+{
+ return 0;
+}
+
+int mlockall(int flags)
+{
+ return 0;
+}
+
+int munlock(FAR const void *addr, size_t len)
+{
+ return 0;
+}
+
+int munlockall(void)
+{
+ return 0;
+}
+
+/* The empty implementation is enough since MMU/MPU mayn't exist. */
+
+int mprotect(FAR void *addr, size_t len, int prot)
+{
+ return 0;
+}
+
+/* Ignore the advice since there is no alternative strategy to select. */
+
+int posix_madvise(FAR void *addr, size_t len, int advice)
+{
+ return 0;
+}