summaryrefslogtreecommitdiffstats
path: root/src/shared/data-fd-util.h
blob: d77e09fb06a227a93f5279c31ef0f43245085b3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once

#include <stddef.h>
#include <stdint.h>

typedef enum DataFDFlags {
        ACQUIRE_NO_DEV_NULL = 1 << 0,
        ACQUIRE_NO_MEMFD    = 1 << 1,
        ACQUIRE_NO_PIPE     = 1 << 2,
        ACQUIRE_NO_TMPFILE  = 1 << 3,
        ACQUIRE_NO_REGULAR  = 1 << 4,
} DataFDFlags;

int acquire_data_fd_full(const void *data, size_t size, DataFDFlags flags);
static inline int acquire_data_fd(const void *data) {
        return acquire_data_fd_full(data, SIZE_MAX, 0);
}

int copy_data_fd(int fd);
int memfd_clone_fd(int fd, const char *name, int mode);