38 #ifndef included_mheap_h 39 #define included_mheap_h 55 #define mheap_free(v) (v) = _mheap_free(v) 56 void * _mheap_free (
void * v);
void * mheap_alloc(void *memory, uword memory_bytes)
vhost_user_memory_t memory
void mheap_validate(void *h)
void * mheap_alloc_with_flags(void *memory, uword memory_bytes, uword flags)
void mheap_foreach(void *v, uword(*func)(void *arg, void *v, void *elt_data, uword elt_size), void *arg)
uword mheap_bytes(void *v)
void * mheap_get_aligned(void *v, uword n_user_data_bytes, uword align, uword align_offset, uword *offset_return)
u8 * format_mheap(u8 *s, va_list *va)
int test_mheap_main(unformat_input_t *input)
always_inline u32 * elt_data(void *v, heap_elt_t *e)
void mheap_usage(void *v, clib_mem_usage_t *usage)
void mheap_trace(void *v, int enable)
always_inline void * mheap_get(void *v, uword size, uword *offset_return)
CLIB vectors are ubiquitous dynamically resized arrays with by user defined "headers".