27 const char *debugName)
29 QUniqueFileDescriptorHandle memfd{
30 ::memfd_create(debugName, MFD_ALLOW_SEALING),
34 if (::ftruncate(memfd.get(), bufferSize) != 0)
36 if (::write(memfd.get(), data.constData(), data.size()) != data.size())
38 if (::fcntl(memfd.get(), F_ADD_SEALS, F_SEAL_SHRINK) != 0)
45 QUniqueFileDescriptorHandle device{
46 ::open(
"/dev/udmabuf", O_RDWR),
51 udmabuf_create create{
52 .memfd = uint32_t(memFd.get()),
53 .flags = UDMABUF_FLAGS_CLOEXEC,
58 QUniqueFileDescriptorHandle dmabufFd{
59 ::ioctl(device.get(), UDMABUF_CREATE, &create),