]>
Commit | Line | Data |
---|---|---|
9f95a23c TL |
1 | /* SPDX-License-Identifier: BSD-3-Clause |
2 | * Copyright(c) 2010-2014 Intel Corporation | |
7c673cae FG |
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 | |
9f95a23c TL |
15 | #define RTE_HEAP_NAME_MAX_LEN 32 |
16 | ||
17 | /* dummy definition, for pointers */ | |
18 | struct malloc_elem; | |
7c673cae FG |
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]; | |
9f95a23c TL |
26 | struct malloc_elem *volatile first; |
27 | struct malloc_elem *volatile last; | |
28 | ||
7c673cae | 29 | unsigned alloc_count; |
9f95a23c | 30 | unsigned int socket_id; |
7c673cae | 31 | size_t total_size; |
9f95a23c | 32 | char name[RTE_HEAP_NAME_MAX_LEN]; |
7c673cae FG |
33 | } __rte_cache_aligned; |
34 | ||
35 | #endif /* _RTE_MALLOC_HEAP_H_ */ |