xref: /linux/lib/min_heap.c (revision f5f4745a7f057b58c9728ee4e2c5d6d79f382fe7)
1*92a8b224SKuan-Wei Chiu // SPDX-License-Identifier: GPL-2.0
2*92a8b224SKuan-Wei Chiu #include <linux/export.h>
3*92a8b224SKuan-Wei Chiu #include <linux/min_heap.h>
4*92a8b224SKuan-Wei Chiu 
__min_heap_init(min_heap_char * heap,void * data,int size)5*92a8b224SKuan-Wei Chiu void __min_heap_init(min_heap_char *heap, void *data, int size)
6*92a8b224SKuan-Wei Chiu {
7*92a8b224SKuan-Wei Chiu 	__min_heap_init_inline(heap, data, size);
8*92a8b224SKuan-Wei Chiu }
9*92a8b224SKuan-Wei Chiu EXPORT_SYMBOL(__min_heap_init);
10*92a8b224SKuan-Wei Chiu 
__min_heap_peek(struct min_heap_char * heap)11*92a8b224SKuan-Wei Chiu void *__min_heap_peek(struct min_heap_char *heap)
12*92a8b224SKuan-Wei Chiu {
13*92a8b224SKuan-Wei Chiu 	return __min_heap_peek_inline(heap);
14*92a8b224SKuan-Wei Chiu }
15*92a8b224SKuan-Wei Chiu EXPORT_SYMBOL(__min_heap_peek);
16*92a8b224SKuan-Wei Chiu 
__min_heap_full(min_heap_char * heap)17*92a8b224SKuan-Wei Chiu bool __min_heap_full(min_heap_char *heap)
18*92a8b224SKuan-Wei Chiu {
19*92a8b224SKuan-Wei Chiu 	return __min_heap_full_inline(heap);
20*92a8b224SKuan-Wei Chiu }
21*92a8b224SKuan-Wei Chiu EXPORT_SYMBOL(__min_heap_full);
22*92a8b224SKuan-Wei Chiu 
__min_heap_sift_down(min_heap_char * heap,int pos,size_t elem_size,const struct min_heap_callbacks * func,void * args)23*92a8b224SKuan-Wei Chiu void __min_heap_sift_down(min_heap_char *heap, int pos, size_t elem_size,
24*92a8b224SKuan-Wei Chiu 			  const struct min_heap_callbacks *func, void *args)
25*92a8b224SKuan-Wei Chiu {
26*92a8b224SKuan-Wei Chiu 	__min_heap_sift_down_inline(heap, pos, elem_size, func, args);
27*92a8b224SKuan-Wei Chiu }
28*92a8b224SKuan-Wei Chiu EXPORT_SYMBOL(__min_heap_sift_down);
29*92a8b224SKuan-Wei Chiu 
__min_heap_sift_up(min_heap_char * heap,size_t elem_size,size_t idx,const struct min_heap_callbacks * func,void * args)30*92a8b224SKuan-Wei Chiu void __min_heap_sift_up(min_heap_char *heap, size_t elem_size, size_t idx,
31*92a8b224SKuan-Wei Chiu 			const struct min_heap_callbacks *func, void *args)
32*92a8b224SKuan-Wei Chiu {
33*92a8b224SKuan-Wei Chiu 	__min_heap_sift_up_inline(heap, elem_size, idx, func, args);
34*92a8b224SKuan-Wei Chiu }
35*92a8b224SKuan-Wei Chiu EXPORT_SYMBOL(__min_heap_sift_up);
36*92a8b224SKuan-Wei Chiu 
__min_heapify_all(min_heap_char * heap,size_t elem_size,const struct min_heap_callbacks * func,void * args)37*92a8b224SKuan-Wei Chiu void __min_heapify_all(min_heap_char *heap, size_t elem_size,
38*92a8b224SKuan-Wei Chiu 		       const struct min_heap_callbacks *func, void *args)
39*92a8b224SKuan-Wei Chiu {
40*92a8b224SKuan-Wei Chiu 	__min_heapify_all_inline(heap, elem_size, func, args);
41*92a8b224SKuan-Wei Chiu }
42*92a8b224SKuan-Wei Chiu EXPORT_SYMBOL(__min_heapify_all);
43*92a8b224SKuan-Wei Chiu 
__min_heap_pop(min_heap_char * heap,size_t elem_size,const struct min_heap_callbacks * func,void * args)44*92a8b224SKuan-Wei Chiu bool __min_heap_pop(min_heap_char *heap, size_t elem_size,
45*92a8b224SKuan-Wei Chiu 		    const struct min_heap_callbacks *func, void *args)
46*92a8b224SKuan-Wei Chiu {
47*92a8b224SKuan-Wei Chiu 	return __min_heap_pop_inline(heap, elem_size, func, args);
48*92a8b224SKuan-Wei Chiu }
49*92a8b224SKuan-Wei Chiu EXPORT_SYMBOL(__min_heap_pop);
50*92a8b224SKuan-Wei Chiu 
__min_heap_pop_push(min_heap_char * heap,const void * element,size_t elem_size,const struct min_heap_callbacks * func,void * args)51*92a8b224SKuan-Wei Chiu void __min_heap_pop_push(min_heap_char *heap, const void *element, size_t elem_size,
52*92a8b224SKuan-Wei Chiu 			 const struct min_heap_callbacks *func, void *args)
53*92a8b224SKuan-Wei Chiu {
54*92a8b224SKuan-Wei Chiu 	__min_heap_pop_push_inline(heap, element, elem_size, func, args);
55*92a8b224SKuan-Wei Chiu }
56*92a8b224SKuan-Wei Chiu EXPORT_SYMBOL(__min_heap_pop_push);
57*92a8b224SKuan-Wei Chiu 
__min_heap_push(min_heap_char * heap,const void * element,size_t elem_size,const struct min_heap_callbacks * func,void * args)58*92a8b224SKuan-Wei Chiu bool __min_heap_push(min_heap_char *heap, const void *element, size_t elem_size,
59*92a8b224SKuan-Wei Chiu 		     const struct min_heap_callbacks *func, void *args)
60*92a8b224SKuan-Wei Chiu {
61*92a8b224SKuan-Wei Chiu 	return __min_heap_push_inline(heap, element, elem_size, func, args);
62*92a8b224SKuan-Wei Chiu }
63*92a8b224SKuan-Wei Chiu EXPORT_SYMBOL(__min_heap_push);
64*92a8b224SKuan-Wei Chiu 
__min_heap_del(min_heap_char * heap,size_t elem_size,size_t idx,const struct min_heap_callbacks * func,void * args)65*92a8b224SKuan-Wei Chiu bool __min_heap_del(min_heap_char *heap, size_t elem_size, size_t idx,
66*92a8b224SKuan-Wei Chiu 		    const struct min_heap_callbacks *func, void *args)
67*92a8b224SKuan-Wei Chiu {
68*92a8b224SKuan-Wei Chiu 	return __min_heap_del_inline(heap, elem_size, idx, func, args);
69*92a8b224SKuan-Wei Chiu }
70*92a8b224SKuan-Wei Chiu EXPORT_SYMBOL(__min_heap_del);
71