DPDK  24.11.0-rc3
rte_malloc.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2019 Intel Corporation
3  */
4 
5 #ifndef _RTE_MALLOC_H_
6 #define _RTE_MALLOC_H_
7 
14 #include <stdio.h>
15 #include <stddef.h>
16 #include <rte_memory.h>
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
29  unsigned free_count;
30  unsigned alloc_count;
32 };
33 
37 #define __rte_dealloc_free __rte_dealloc(rte_free, 1)
38 
51 void
52 rte_free(void *ptr);
53 
75 void *
76 rte_malloc(const char *type, size_t size, unsigned align)
79 
103 void *
104 rte_zmalloc(const char *type, size_t size, unsigned align)
106  __rte_malloc __rte_dealloc_free;
107 
131 void *
132 rte_calloc(const char *type, size_t num, size_t size, unsigned align)
134  __rte_malloc __rte_dealloc_free;
135 
156 void *
157 rte_realloc(void *ptr, size_t size, unsigned int align)
158  __rte_alloc_size(2) __rte_alloc_align(3)
159  __rte_malloc __rte_dealloc_free;
160 
183 void *
184 rte_realloc_socket(void *ptr, size_t size, unsigned int align, int socket)
185  __rte_alloc_size(2) __rte_alloc_align(3)
186  __rte_malloc __rte_dealloc_free;
187 
211 void *
212 rte_malloc_socket(const char *type, size_t size, unsigned align, int socket)
213  __rte_alloc_size(2) __rte_alloc_align(3)
214  __rte_malloc __rte_dealloc_free;
215 
241 void *
242 rte_zmalloc_socket(const char *type, size_t size, unsigned align, int socket)
243  __rte_alloc_size(2) __rte_alloc_align(3)
244  __rte_malloc __rte_dealloc_free;
245 
271 void *
272 rte_calloc_socket(const char *type, size_t num, size_t size, unsigned align, int socket)
273  __rte_alloc_size(2, 3) __rte_alloc_align(4)
274  __rte_malloc __rte_dealloc_free;
275 
293 int
294 rte_malloc_validate(const void *ptr, size_t *size);
295 
310 int
311 rte_malloc_get_socket_stats(int socket,
312  struct rte_malloc_socket_stats *socket_stats);
313 
353 int
354 rte_malloc_heap_memory_add(const char *heap_name, void *va_addr, size_t len,
355  rte_iova_t iova_addrs[], unsigned int n_pages, size_t page_sz);
356 
384 int
385 rte_malloc_heap_memory_remove(const char *heap_name, void *va_addr, size_t len);
386 
408 int
409 rte_malloc_heap_memory_attach(const char *heap_name, void *va_addr, size_t len);
410 
432 int
433 rte_malloc_heap_memory_detach(const char *heap_name, void *va_addr, size_t len);
434 
451 int
452 rte_malloc_heap_create(const char *heap_name);
453 
474 int
475 rte_malloc_heap_destroy(const char *heap_name);
476 
488 int
489 rte_malloc_heap_get_socket(const char *name);
490 
503 int
505 
520 void
521 rte_malloc_dump_stats(FILE *f, const char *type);
522 
532 void
533 rte_malloc_dump_heaps(FILE *f);
534 
546 rte_malloc_virt2iova(const void *addr);
547 
548 #ifdef __cplusplus
549 }
550 #endif
551 
552 #endif /* _RTE_MALLOC_H_ */
void * rte_malloc_socket(const char *type, size_t size, unsigned align, int socket) __rte_alloc_size(2) __rte_alloc_align(3) __rte_malloc __rte_dealloc_free
int rte_malloc_heap_socket_is_external(int socket_id)
#define __rte_dealloc_free
Definition: rte_malloc.h:37
int rte_malloc_heap_destroy(const char *heap_name)
int rte_malloc_heap_memory_attach(const char *heap_name, void *va_addr, size_t len)
void * rte_calloc_socket(const char *type, size_t num, size_t size, unsigned align, int socket) __rte_alloc_size(2
uint64_t rte_iova_t
Definition: rte_common.h:658
void * rte_calloc(const char *type, size_t num, size_t size, unsigned align) __rte_alloc_size(2
void * rte_realloc(void *ptr, size_t size, unsigned int align) __rte_alloc_size(2) __rte_alloc_align(3) __rte_malloc __rte_dealloc_free
void * rte_malloc(const char *type, size_t size, unsigned align) __rte_alloc_size(2) __rte_alloc_align(3) __rte_malloc __rte_dealloc_free
#define __rte_alloc_size(...)
Definition: rte_common.h:228
int rte_malloc_heap_memory_remove(const char *heap_name, void *va_addr, size_t len)
int rte_malloc_heap_create(const char *heap_name)
#define __rte_malloc
Definition: rte_common.h:251
void * rte_zmalloc_socket(const char *type, size_t size, unsigned align, int socket) __rte_alloc_size(2) __rte_alloc_align(3) __rte_malloc __rte_dealloc_free
int rte_malloc_heap_get_socket(const char *name)
void rte_free(void *ptr)
#define __rte_alloc_align(argno)
Definition: rte_common.h:241
int rte_malloc_validate(const void *ptr, size_t *size)
void * rte_zmalloc(const char *type, size_t size, unsigned align) __rte_alloc_size(2) __rte_alloc_align(3) __rte_malloc __rte_dealloc_free
int rte_malloc_heap_memory_add(const char *heap_name, void *va_addr, size_t len, rte_iova_t iova_addrs[], unsigned int n_pages, size_t page_sz)
int rte_malloc_heap_memory_detach(const char *heap_name, void *va_addr, size_t len)
rte_iova_t rte_malloc_virt2iova(const void *addr)
int rte_malloc_get_socket_stats(int socket, struct rte_malloc_socket_stats *socket_stats)
void rte_malloc_dump_heaps(FILE *f)
void * rte_realloc_socket(void *ptr, size_t size, unsigned int align, int socket) __rte_alloc_size(2) __rte_alloc_align(3) __rte_malloc __rte_dealloc_free
void rte_malloc_dump_stats(FILE *f, const char *type)