*
* Returns -ENOMEM if out of memory.
*/
-BT_HIDDEN
extern int bt_heap_init(struct ptr_heap *heap,
size_t alloc_len,
int gt(void *a, void *b));
* bt_heap_free - free the heap
* @heap: the heap to free
*/
-BT_HIDDEN
extern void bt_heap_free(struct ptr_heap *heap);
/**
*
* Returns -ENOMEM if out of memory.
*/
-BT_HIDDEN
extern int bt_heap_insert(struct ptr_heap *heap, void *p);
/**
* Returns the largest element in the heap. It removes this element from the
* heap. Returns NULL if the heap is empty.
*/
-BT_HIDDEN
extern void *bt_heap_remove(struct ptr_heap *heap);
/**
* return NULL. This algorithm has a complexity of O(n), which is higher than
* O(log(n)) provided by the rest of this API.
*/
-BT_HIDDEN
extern void *bt_heap_cherrypick(struct ptr_heap *heap, void *p);
/**
* This is the equivalent of calling bt_heap_remove() and then bt_heap_insert(), but
* it only rebalances the heap once. It never allocates memory.
*/
-BT_HIDDEN
extern void *bt_heap_replace_max(struct ptr_heap *heap, void *p);
/**
*
* Returns -ENOMEM if out of memory.
*/
-BT_HIDDEN
extern int bt_heap_copy(struct ptr_heap *dst, struct ptr_heap *src);
#endif /* _BABELTRACE_PRIO_HEAP_H */