You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by je...@apache.org on 2023/02/13 15:00:43 UTC

[nuttx] branch master updated: libc: Move memfd related stuff to sys/mman.h

This is an automated email from the ASF dual-hosted git repository.

jerpelea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new dc2e9b8771 libc: Move memfd related stuff to sys/mman.h
dc2e9b8771 is described below

commit dc2e9b877144527c7f7723b2eb982f1856631de5
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Mon Feb 13 06:42:04 2023 +0800

    libc: Move memfd related stuff to sys/mman.h
    
    follow the freebsd definition:
    https://github.com/freebsd/freebsd-src/blob/master/sys/sys/mman.h#L207-L228
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 include/sys/memfd.h        | 72 ----------------------------------------------
 include/sys/mman.h         | 22 ++++++++++++++
 libs/libc/misc/lib_memfd.c |  3 +-
 3 files changed, 24 insertions(+), 73 deletions(-)

diff --git a/include/sys/memfd.h b/include/sys/memfd.h
deleted file mode 100644
index 7bd244bf9e..0000000000
--- a/include/sys/memfd.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * include/sys/memfd.h
- *
- * 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.
- *
- ****************************************************************************/
-
-#ifndef __INCLUDE_SYS_MEMFD_H
-#define __INCLUDE_SYS_MEMFD_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <fcntl.h>
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#define MFD_CLOEXEC       O_CLOEXEC
-#define MFD_ALLOW_SEALING (1 << 16)
-#define MFD_HUGETLB       (1 << 17)
-
-#define MFD_HUGE_SHIFT   26
-#define MFD_HUGE_MASK    0x3f
-#define MFD_HUGE_64KB    (16 << MFD_HUGE_SHIFT)
-#define MFD_HUGE_512KB   (19 << MFD_HUGE_SHIFT)
-#define MFD_HUGE_1MB     (20 << MFD_HUGE_SHIFT)
-#define MFD_HUGE_2MB     (21 << MFD_HUGE_SHIFT)
-#define MFD_HUGE_8MB     (23 << MFD_HUGE_SHIFT)
-#define MFD_HUGE_16MB    (24 << MFD_HUGE_SHIFT)
-#define MFD_HUGE_32MB    (25 << MFD_HUGE_SHIFT)
-#define MFD_HUGE_256MB   (28 << MFD_HUGE_SHIFT)
-#define MFD_HUGE_512MB   (29 << MFD_HUGE_SHIFT)
-#define MFD_HUGE_1GB     (30 << MFD_HUGE_SHIFT)
-#define MFD_HUGE_2GB     (31 << MFD_HUGE_SHIFT)
-#define MFD_HUGE_16GB    (34 << MFD_HUGE_SHIFT)
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-#ifdef __cplusplus
-#define EXTERN extern "C"
-extern "C"
-{
-#else
-#define EXTERN extern
-#endif
-
-int memfd_create(FAR const char *name, unsigned int flags);
-
-#undef EXTERN
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __INCLUDE_SYS_MEMFD_H */
diff --git a/include/sys/mman.h b/include/sys/mman.h
index b4a154a93a..3bcdd907b4 100644
--- a/include/sys/mman.h
+++ b/include/sys/mman.h
@@ -128,6 +128,27 @@
 #define POSIX_TYPED_MEM_ALLOCATE_CONTIG  (1)
 #define POSIX_TYPED_MEM_MAP_ALLOCATABLE  (2)
 
+/* Flags for memfd_create(). */
+
+#define MFD_CLOEXEC       O_CLOEXEC
+#define MFD_ALLOW_SEALING (1 << 16)
+#define MFD_HUGETLB       (1 << 17)
+
+#define MFD_HUGE_SHIFT    26
+#define MFD_HUGE_MASK     0x3f
+#define MFD_HUGE_64KB     (16 << MFD_HUGE_SHIFT)
+#define MFD_HUGE_512KB    (19 << MFD_HUGE_SHIFT)
+#define MFD_HUGE_1MB      (20 << MFD_HUGE_SHIFT)
+#define MFD_HUGE_2MB      (21 << MFD_HUGE_SHIFT)
+#define MFD_HUGE_8MB      (23 << MFD_HUGE_SHIFT)
+#define MFD_HUGE_16MB     (24 << MFD_HUGE_SHIFT)
+#define MFD_HUGE_32MB     (25 << MFD_HUGE_SHIFT)
+#define MFD_HUGE_256MB    (28 << MFD_HUGE_SHIFT)
+#define MFD_HUGE_512MB    (29 << MFD_HUGE_SHIFT)
+#define MFD_HUGE_1GB      (30 << MFD_HUGE_SHIFT)
+#define MFD_HUGE_2GB      (31 << MFD_HUGE_SHIFT)
+#define MFD_HUGE_16GB     (34 << MFD_HUGE_SHIFT)
+
 #if defined(CONFIG_FS_LARGEFILE) && defined(CONFIG_HAVE_LONG_LONG)
 #  define mmap64 mmap
 #endif
@@ -180,6 +201,7 @@ int posix_typed_mem_get_info(int fildes,
 int posix_typed_mem_open(FAR const char *name, int oflag, int tflag);
 int shm_open(FAR const char *name, int oflag, mode_t mode);
 int shm_unlink(FAR const char *name);
+int memfd_create(FAR const char *name, unsigned int flags);
 
 #undef EXTERN
 #if defined(__cplusplus)
diff --git a/libs/libc/misc/lib_memfd.c b/libs/libc/misc/lib_memfd.c
index 8675d33e43..d3cc8c6b8f 100644
--- a/libs/libc/misc/lib_memfd.c
+++ b/libs/libc/misc/lib_memfd.c
@@ -22,8 +22,9 @@
  * Included Files
  ****************************************************************************/
 
-#include <sys/memfd.h>
+#include <sys/mman.h>
 #include <errno.h>
+#include <fcntl.h>
 #include <stdio.h>
 #include <unistd.h>