75185aa5fe
Add an API to remove memory from specified heaps. This will first check if all elements within the region are free, and that the region is the original region that was added to the heap (by comparing its length to length of memory addressed by the underlying memseg list). Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
74 lines
1.4 KiB
C
74 lines
1.4 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(c) 2010-2014 Intel Corporation
|
|
*/
|
|
|
|
#ifndef MALLOC_HEAP_H_
|
|
#define MALLOC_HEAP_H_
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include <rte_malloc.h>
|
|
#include <rte_malloc_heap.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
static inline unsigned
|
|
malloc_get_numa_socket(void)
|
|
{
|
|
unsigned socket_id = rte_socket_id();
|
|
|
|
if (socket_id == (unsigned)SOCKET_ID_ANY)
|
|
return 0;
|
|
|
|
return socket_id;
|
|
}
|
|
|
|
void *
|
|
malloc_heap_alloc(const char *type, size_t size, int socket, unsigned int flags,
|
|
size_t align, size_t bound, bool contig);
|
|
|
|
void *
|
|
malloc_heap_alloc_biggest(const char *type, int socket, unsigned int flags,
|
|
size_t align, bool contig);
|
|
|
|
int
|
|
malloc_heap_create(struct malloc_heap *heap, const char *heap_name);
|
|
|
|
int
|
|
malloc_heap_destroy(struct malloc_heap *heap);
|
|
|
|
int
|
|
malloc_heap_add_external_memory(struct malloc_heap *heap, void *va_addr,
|
|
rte_iova_t iova_addrs[], unsigned int n_pages, size_t page_sz);
|
|
|
|
int
|
|
malloc_heap_remove_external_memory(struct malloc_heap *heap, void *va_addr,
|
|
size_t len);
|
|
|
|
int
|
|
malloc_heap_free(struct malloc_elem *elem);
|
|
|
|
int
|
|
malloc_heap_resize(struct malloc_elem *elem, size_t size);
|
|
|
|
int
|
|
malloc_heap_get_stats(struct malloc_heap *heap,
|
|
struct rte_malloc_socket_stats *socket_stats);
|
|
|
|
void
|
|
malloc_heap_dump(struct malloc_heap *heap, FILE *f);
|
|
|
|
int
|
|
malloc_socket_to_heap_id(unsigned int socket_id);
|
|
|
|
int
|
|
rte_eal_malloc_heap_init(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* MALLOC_HEAP_H_ */
|