MCPcopy Create free account
hub / github.com/MaaXYZ/MaaFramework / create_buffer

Method create_buffer

source/MaaWlRootsControlUnit/Client/MemfdBuffer.cpp:48–71  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46}
47
48bool MemfdBuffer::create_buffer()
49{
50 constexpr std::string_view kDefaultBufferName = "maafw-wl-buffer-{}";
51 const std::string name = std::format(kDefaultBufferName, make_uuid());
52 fd_ = memfd_create(name.c_str(), 0);
53 if (fd_ < 0) {
54 LogError << "Failed to create memfd";
55 return false;
56 }
57 if (const int ret = ftruncate(fd_, size_); ret < 0) {
58 LogError << "Failed to allocate buffer";
59 close(fd_);
60 fd_ = -1;
61 return false;
62 }
63 ptr_ = mmap(nullptr, size_, PROT_READ | PROT_WRITE, MAP_SHARED, fd_, 0);
64 if (ptr_ == MAP_FAILED) {
65 LogError << "Failed to mmap buffer";
66 ptr_ = nullptr;
67 return false;
68 }
69 LogDebug << "Created new buffer" << VAR(fd_);
70 return true;
71}
72
73MAA_CTRL_UNIT_NS_END

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected