/*-
* BSD LICENSE
*
- * Copyright(c) 2010-2012 Intel Corporation. All rights reserved.
+ * Copyright(c) 2010-2013 Intel Corporation. All rights reserved.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
#ifndef MALLOC_HEAP_H_
#define MALLOC_HEAP_H_
-enum heap_state {
- NOT_INITIALISED = 0,
- INITIALISED
-};
+#include <rte_malloc.h>
+#include <rte_malloc_heap.h>
-struct malloc_heap {
- enum heap_state initialised;
- unsigned numa_socket;
- volatile unsigned mz_count;
- rte_spinlock_t lock;
- struct malloc_elem * volatile free_head;
-} __rte_cache_aligned;
-
-#define RTE_MALLOC_SOCKET_DEFAULT 0
+#ifdef __cplusplus
+extern "C" {
+#endif
static inline unsigned
malloc_get_numa_socket(void)
{
- unsigned malloc_socket = RTE_MALLOC_SOCKET_DEFAULT;
- #ifdef RTE_MALLOC_PER_NUMA_NODE
- malloc_socket = rte_socket_id();
- #endif
- return malloc_socket;
+ return rte_socket_id();
}
void *
malloc_heap_alloc(struct malloc_heap *heap, const char *type,
size_t size, unsigned align);
+int
+malloc_heap_get_stats(struct malloc_heap *heap,
+ struct rte_malloc_socket_stats *socket_stats);
+
+int
+rte_eal_heap_memzone_init(void);
+
+#ifdef __cplusplus
+}
+#endif
+
#endif /* MALLOC_HEAP_H_ */