xref: /src/lib/libc/tests/stdbit/stdc_bit_width_test.c (revision 2fb8cbc6ef1b3cc6cd60e5db07f8305623f9b044)
12fb8cbc6SRobert Clausecker /*
22fb8cbc6SRobert Clausecker  * Copyright (c) 2025 Robert Clausecker <fuz@FreeBSD.org>
32fb8cbc6SRobert Clausecker  *
42fb8cbc6SRobert Clausecker  * SPDX-License-Identifier: BSD-2-Clause
52fb8cbc6SRobert Clausecker  */
62fb8cbc6SRobert Clausecker 
72fb8cbc6SRobert Clausecker #define FUNCSTEM stdc_bit_width
82fb8cbc6SRobert Clausecker #define MKREFFUNC(name, type)						\
92fb8cbc6SRobert Clausecker 	static unsigned							\
102fb8cbc6SRobert Clausecker 	name(type value) 						\
112fb8cbc6SRobert Clausecker 	{ 								\
122fb8cbc6SRobert Clausecker 		unsigned width = 0;					\
132fb8cbc6SRobert Clausecker 									\
142fb8cbc6SRobert Clausecker 		while (value != 0) {					\
152fb8cbc6SRobert Clausecker 			value >>= 1;					\
162fb8cbc6SRobert Clausecker 			width++;					\
172fb8cbc6SRobert Clausecker 		}							\
182fb8cbc6SRobert Clausecker 									\
192fb8cbc6SRobert Clausecker 		return (width);						\
202fb8cbc6SRobert Clausecker 	}
212fb8cbc6SRobert Clausecker 
222fb8cbc6SRobert Clausecker #include "stdbit-test-framework.c"
23