libcamera: base: Add MemFd helper class
libcamera creates memfds in two locations already, duplicating some code. Move the code to a new MemFd helper class. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Milan Zamazal <mzamazal@redhat.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Tested-by: Milan Zamazal <mzamazal@redhat.com> Tested-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
/*
|
||||
* Copyright (C) 2024, Ideas on Board Oy
|
||||
*
|
||||
* Anonymous file creation
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#include <libcamera/base/flags.h>
|
||||
#include <libcamera/base/unique_fd.h>
|
||||
|
||||
namespace libcamera {
|
||||
|
||||
class MemFd
|
||||
{
|
||||
public:
|
||||
enum class Seal {
|
||||
None = 0,
|
||||
Shrink = (1 << 0),
|
||||
Grow = (1 << 1),
|
||||
};
|
||||
|
||||
using Seals = Flags<Seal>;
|
||||
|
||||
static UniqueFD create(const char *name, std::size_t size,
|
||||
Seals seals = Seal::None);
|
||||
};
|
||||
|
||||
LIBCAMERA_FLAGS_ENABLE_OPERATORS(MemFd::Seal)
|
||||
|
||||
} /* namespace libcamera */
|
||||
@@ -21,6 +21,7 @@ libcamera_base_private_headers = files([
|
||||
'event_notifier.h',
|
||||
'file.h',
|
||||
'log.h',
|
||||
'memfd.h',
|
||||
'message.h',
|
||||
'mutex.h',
|
||||
'private.h',
|
||||
|
||||
Reference in New Issue
Block a user