File Index
Files and directories
Sign in
FILE

bsearch.h

File preview with syntax highlighting.

linux-6.19.14/include/linux/bsearch.h C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef _LINUX_BSEARCH_H
 3#define _LINUX_BSEARCH_H
 4
 5#include <linux/types.h>
 6
 7static __always_inline
 8void *__inline_bsearch(const void *key, const void *base, size_t num, size_t size, cmp_func_t cmp)
 9{
10	const char *pivot;
11	int result;
12
13	while (num > 0) {
14		pivot = base + (num >> 1) * size;
15		result = cmp(key, pivot);
16
17		if (result == 0)
18			return (void *)pivot;
19
20		if (result > 0) {
21			base = pivot + size;
22			num--;
23		}
24		num >>= 1;
25	}
26
27	return NULL;
28}
29
30extern void *bsearch(const void *key, const void *base, size_t num, size_t size, cmp_func_t cmp);
31
32#endif /* _LINUX_BSEARCH_H */
~/ Read-only file preview.