X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Fprio-heap%2Fprio-heap.h;h=59fddb84ace25cfd0943b970e8d25c68245d2397;hb=ec21af4a61c29b6972c5b451bb3b9050ae28c75e;hp=8ea51bc148adbfb355cd99cd6dd9e4f558508a05;hpb=578e048b5debf169e286e5b5cc747b5d6c16886d;p=babeltrace.git diff --git a/src/lib/prio-heap/prio-heap.h b/src/lib/prio-heap/prio-heap.h index 8ea51bc1..59fddb84 100644 --- a/src/lib/prio-heap/prio-heap.h +++ b/src/lib/prio-heap/prio-heap.h @@ -27,7 +27,7 @@ */ #include -#include "common/babeltrace.h" +#include "common/macros.h" struct ptr_heap { size_t len, alloc_len; @@ -54,7 +54,7 @@ void check_heap(const struct ptr_heap *heap) static inline void *bt_heap_maximum(const struct ptr_heap *heap) { check_heap(heap); - return likely(heap->len) ? heap->ptrs[0] : NULL; + return G_LIKELY(heap->len) ? heap->ptrs[0] : NULL; } /** @@ -65,6 +65,7 @@ static inline void *bt_heap_maximum(const struct ptr_heap *heap) * * 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)); @@ -73,6 +74,7 @@ extern int bt_heap_init(struct ptr_heap *heap, * bt_heap_free - free the heap * @heap: the heap to free */ +BT_HIDDEN extern void bt_heap_free(struct ptr_heap *heap); /** @@ -84,6 +86,7 @@ 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); /** @@ -93,6 +96,7 @@ 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); /** @@ -104,6 +108,7 @@ 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); /** @@ -118,6 +123,7 @@ 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); /** @@ -127,6 +133,7 @@ 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 */