]> git.proxmox.com Git - ceph.git/blame - ceph/src/seastar/dpdk/lib/librte_eal/common/include/rte_malloc_heap.h
import 15.2.0 Octopus source
[ceph.git] / ceph / src / seastar / dpdk / lib / librte_eal / common / include / rte_malloc_heap.h
CommitLineData
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 */
18struct malloc_elem;
7c673cae
FG
19
20/**
21 * Structure to hold malloc heap
22 */
23struct 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_ */