public inbox for newlib-cvs@sourceware.org
help / color / mirror / Atom feed
* [newlib-cygwin] Add linux-compatible memfd_create
@ 2022-07-11 11:50 Sebastian Huber
  0 siblings, 0 replies; only message in thread
From: Sebastian Huber @ 2022-07-11 11:50 UTC (permalink / raw)
  To: newlib-cvs

https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=9243caa8d3723e808f4679fe5bb3b97ebfa1b4fe

commit 9243caa8d3723e808f4679fe5bb3b97ebfa1b4fe
Author: Kyle Evans <kevans@FreeBSD.org>
Date:   Wed Sep 25 18:03:18 2019 +0000

    Add linux-compatible memfd_create
    
    memfd_create is effectively a SHM_ANON shm_open(2) mapping with optional
    CLOEXEC and file sealing support. This is used by some mesa parts, some
    linux libs, and qemu can also take advantage of it and uses the sealing to
    prevent resizing the region.
    
    This reimplements shm_open in terms of shm_open2(2) at the same time.
    
    shm_open(2) will be moved to COMPAT12 shortly.
    
    Reviewed by:    markj, kib
    Differential Revision:  https://reviews.freebsd.org/D21393

Diff:
---
 newlib/libc/sys/rtems/include/sys/mman.h | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/newlib/libc/sys/rtems/include/sys/mman.h b/newlib/libc/sys/rtems/include/sys/mman.h
index 6e178d83d..867b68647 100644
--- a/newlib/libc/sys/rtems/include/sys/mman.h
+++ b/newlib/libc/sys/rtems/include/sys/mman.h
@@ -182,6 +182,30 @@
  */
 #define	SHM_ALLOW_SEALING		0x00000001
 
+/*
+ * Flags for memfd_create().
+ */
+#define	MFD_ALLOW_SEALING		0x00000001
+#define	MFD_CLOEXEC			0x00000002
+
+/* UNSUPPORTED */
+#define	MFD_HUGETLB			0x00000004
+
+#define	MFD_HUGE_MASK			0xFC000000
+#define	MFD_HUGE_SHIFT			26
+#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)
+
 #endif /* __BSD_VISIBLE */
 
 /*
@@ -242,6 +266,9 @@ int	munlockall(void);
 int	shm_open(const char *, int, mode_t);
 int	shm_unlink(const char *);
 #endif
+#if __BSD_VISIBLE
+int	memfd_create(const char *, unsigned int);
+#endif
 __END_DECLS
 
 #endif /* !_KERNEL */


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-07-11 11:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-11 11:50 [newlib-cygwin] Add linux-compatible memfd_create Sebastian Huber

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).