Merge tag 'soc-fixes-6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-block.git] / include / linux / bpf_mem_alloc.h
CommitLineData
7c8199e2
AS
1/* SPDX-License-Identifier: GPL-2.0-only */
2/* Copyright (c) 2022 Meta Platforms, Inc. and affiliates. */
3#ifndef _BPF_MEM_ALLOC_H
4#define _BPF_MEM_ALLOC_H
5#include <linux/compiler_types.h>
9f2c6e96 6#include <linux/workqueue.h>
7c8199e2
AS
7
8struct bpf_mem_cache;
9struct bpf_mem_caches;
10
11struct bpf_mem_alloc {
12 struct bpf_mem_caches __percpu *caches;
13 struct bpf_mem_cache __percpu *cache;
9f2c6e96 14 struct work_struct work;
7c8199e2
AS
15};
16
4ab67149 17int bpf_mem_alloc_init(struct bpf_mem_alloc *ma, int size, bool percpu);
7c8199e2
AS
18void bpf_mem_alloc_destroy(struct bpf_mem_alloc *ma);
19
20/* kmalloc/kfree equivalent: */
21void *bpf_mem_alloc(struct bpf_mem_alloc *ma, size_t size);
22void bpf_mem_free(struct bpf_mem_alloc *ma, void *ptr);
23
24/* kmem_cache_alloc/free equivalent: */
25void *bpf_mem_cache_alloc(struct bpf_mem_alloc *ma);
26void bpf_mem_cache_free(struct bpf_mem_alloc *ma, void *ptr);
27
28#endif /* _BPF_MEM_ALLOC_H */