]> git.proxmox.com Git - systemd.git/blame - src/basic/mempool.h
New upstream version 240
[systemd.git] / src / basic / mempool.h
CommitLineData
52ad194e 1/* SPDX-License-Identifier: LGPL-2.1+ */
663996b3
MS
2#pragma once
3
6e866b33 4#include <stdbool.h>
5eef597e 5#include <stddef.h>
663996b3 6
5eef597e
MP
7struct pool;
8
9struct mempool {
10 struct pool *first_pool;
11 void *freelist;
12 size_t tile_size;
13 unsigned at_least;
60f067b4 14};
663996b3 15
5eef597e 16void* mempool_alloc_tile(struct mempool *mp);
f47781d8 17void* mempool_alloc0_tile(struct mempool *mp);
5eef597e
MP
18void mempool_free_tile(struct mempool *mp, void *p);
19
20#define DEFINE_MEMPOOL(pool_name, tile_type, alloc_at_least) \
aa27b158 21static struct mempool pool_name = { \
5eef597e
MP
22 .tile_size = sizeof(tile_type), \
23 .at_least = alloc_at_least, \
24}
60f067b4 25
6e866b33
MB
26extern const bool mempool_use_allowed;
27bool mempool_enabled(void);
28
b012e921 29#if VALGRIND
5eef597e
MP
30void mempool_drop(struct mempool *mp);
31#endif