summaryrefslogtreecommitdiff
path: root/src/libcamera/shared_mem_object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/shared_mem_object.cpp')
-rw-r--r--src/libcamera/shared_mem_object.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libcamera/shared_mem_object.cpp b/src/libcamera/shared_mem_object.cpp
index b018fb3b..e8cb59f7 100644
--- a/src/libcamera/shared_mem_object.cpp
+++ b/src/libcamera/shared_mem_object.cpp
@@ -12,6 +12,8 @@
#include <stddef.h>
#include <stdint.h>
+#include <sys/mman.h>
+#include <sys/syscall.h>
#include <sys/types.h>
#include <unistd.h>
@@ -56,7 +58,11 @@ SharedMem::SharedMem() = default;
*/
SharedMem::SharedMem(const std::string &name, std::size_t size)
{
+#if HAVE_MEMFD_CREATE
int fd = memfd_create(name.c_str(), MFD_CLOEXEC);
+#else
+ int fd = syscall(SYS_memfd_create, name.c_str(), MFD_CLOEXEC);
+#endif
if (fd < 0)
return;