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.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libcamera/shared_mem_object.cpp b/src/libcamera/shared_mem_object.cpp
index b018fb3b..809fbdaf 100644
--- a/src/libcamera/shared_mem_object.cpp
+++ b/src/libcamera/shared_mem_object.cpp
@@ -5,13 +5,15 @@
* Copyright (C) 2024 Dennis Bonke
* Copyright (C) 2024 Ideas on Board Oy
*
- * shared_mem_object.cpp - Helpers for shared memory allocations
+ * Helpers for shared memory allocations
*/
#include "libcamera/internal/shared_mem_object.h"
#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;