]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/dpdk/lib/librte_eal/common/include/rte_malloc_heap.h
import 15.2.0 Octopus source
[ceph.git] / ceph / src / spdk / dpdk / lib / librte_eal / common / include / rte_malloc_heap.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2010-2014 Intel Corporation
3 */
4
5 #ifndef _RTE_MALLOC_HEAP_H_
6 #define _RTE_MALLOC_HEAP_H_
7
8 #include <stddef.h>
9 #include <sys/queue.h>
10 #include <rte_spinlock.h>
11 #include <rte_memory.h>
12
13 /* Number of free lists per heap, grouped by size. */
14 #define RTE_HEAP_NUM_FREELISTS 13
15 #define RTE_HEAP_NAME_MAX_LEN 32
16
17 /* dummy definition, for pointers */
18 struct malloc_elem;
19
20 /**
21 * Structure to hold malloc heap
22 */
23 struct malloc_heap {
24 rte_spinlock_t lock;
25 LIST_HEAD(, malloc_elem) free_head[RTE_HEAP_NUM_FREELISTS];
26 struct malloc_elem *volatile first;
27 struct malloc_elem *volatile last;
28
29 unsigned alloc_count;
30 unsigned int socket_id;
31 size_t total_size;
32 char name[RTE_HEAP_NAME_MAX_LEN];
33 } __rte_cache_aligned;
34
35 #endif /* _RTE_MALLOC_HEAP_H_ */