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>