2020-11-09 05:23:58 +01:00
|
|
|
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
2013-04-11 23:09:29 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "sd-bus.h"
|
|
|
|
|
2013-05-14 22:24:26 +02:00
|
|
|
#define MEMFD_CACHE_MAX 32
|
2013-05-16 16:26:35 +02:00
|
|
|
|
|
|
|
/* When we cache a memfd block for reuse, we will truncate blocks
|
|
|
|
* longer than this in order not to keep too much data around. */
|
2013-05-29 09:59:10 +02:00
|
|
|
#define MEMFD_CACHE_ITEM_SIZE_MAX (128*1024)
|
2013-05-16 16:26:35 +02:00
|
|
|
|
|
|
|
/* This determines at which minimum size we prefer sending memfds over
|
|
|
|
* sending vectors */
|
2014-01-24 21:15:34 +01:00
|
|
|
#define MEMFD_MIN_SIZE (512*1024)
|
2013-05-14 22:24:26 +02:00
|
|
|
|
|
|
|
struct memfd_cache {
|
|
|
|
int fd;
|
|
|
|
void *address;
|
2013-12-18 18:46:23 +01:00
|
|
|
size_t mapped;
|
|
|
|
size_t allocated;
|
2013-05-14 22:24:26 +02:00
|
|
|
};
|
|
|
|
|
2017-07-23 17:45:57 +02:00
|
|
|
void close_and_munmap(int fd, void *address, size_t size);
|
|
|
|
void bus_flush_memfd(sd_bus *bus);
|