11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
19PROMEKI_NAMESPACE_BEGIN
98 static bool isSupported();
120 explicit MemfdRegion(
size_t bytes,
const String &debugName = String(
"anonymous"));
125 MemfdRegion(
const MemfdRegion &) =
delete;
126 MemfdRegion &operator=(
const MemfdRegion &) =
delete;
129 MemfdRegion(MemfdRegion &&other)
noexcept;
132 MemfdRegion &operator=(MemfdRegion &&other)
noexcept;
141 bool isValid()
const;
144 bool isSealed()
const;
147 size_t size()
const {
return _size; }
156 int fd()
const {
return _fd; }
167 void *producerView();
196 Error seal(
void **outFirstClone =
nullptr);
214 void *cloneView(Error *err =
nullptr);
230 void *readOnlyView(Error *err =
nullptr);
245 Error releaseView(
void *p);
256 Error adviseProducer(
int madviseFlag);
265 Error adviseView(
void *p,
int madviseFlag);
274 void closeAndReset() noexcept;