xref: /src/lib/libc/stdbit/stdc_first_trailing_zero.3 (revision d790b16bbf0c3055ef00200d01659dfb3c0e5e5e)
1d790b16bSRobert Clausecker.\"
2d790b16bSRobert Clausecker.\" Copyright (c) 2025 Robert Clausecker <fuz@FreeBSD.org>
3d790b16bSRobert Clausecker.\"
4d790b16bSRobert Clausecker.\" SPDX-License-Identifier: BSD-2-Clause
5d790b16bSRobert Clausecker.\"
6d790b16bSRobert Clausecker.Dd November 9, 2025
7d790b16bSRobert Clausecker.Dt STDC_FIRST_TRAILING_ZERO 3
8d790b16bSRobert Clausecker.Os
9d790b16bSRobert Clausecker.Sh NAME
10d790b16bSRobert Clausecker.Nm stdc_first_trailing_zero
11d790b16bSRobert Clausecker.Nd find the first trailing zero in an integer
12d790b16bSRobert Clausecker.Sh SYNOPSIS
13d790b16bSRobert Clausecker.Lb libc
14d790b16bSRobert Clausecker.In stdbit.h
15d790b16bSRobert Clausecker.Ft unsigned int
16d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero_uc "unsigned char value"
17d790b16bSRobert Clausecker.Ft unsigned int
18d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero_us "unsigned short value"
19d790b16bSRobert Clausecker.Ft unsigned int
20d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero_ui "unsigned int value"
21d790b16bSRobert Clausecker.Ft unsigned int
22d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero_ul "unsigned long value"
23d790b16bSRobert Clausecker.Ft unsigned int
24d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero_ull "unsigned long long value"
25d790b16bSRobert Clausecker.Ft unsigned int
26d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero "value"
27d790b16bSRobert Clausecker.Sh DESCRIPTION
28d790b16bSRobert ClauseckerThe
29d790b16bSRobert Clausecker.Nm stdc_first_trailing_zero_ Ns Em type Ns ()
30d790b16bSRobert Clauseckerfamily of functions returns the index of the least significant clear bit in
31d790b16bSRobert Clausecker.Fa value ,
32d790b16bSRobert Clauseckerwhere
33d790b16bSRobert Clausecker.Fa value
34d790b16bSRobert Clauseckeris of type
35d790b16bSRobert Clausecker.Va unsigned char ,
36d790b16bSRobert Clausecker.Va unsigned short ,
37d790b16bSRobert Clausecker.Va unsigned int ,
38d790b16bSRobert Clausecker.Va unsigned long ,
39d790b16bSRobert Clauseckeror
40d790b16bSRobert Clausecker.Va unsigned long long
41d790b16bSRobert Clauseckerfor
42d790b16bSRobert Clausecker.Em type
43d790b16bSRobert Clauseckerbeing
44d790b16bSRobert Clausecker.Sy uc ,
45d790b16bSRobert Clausecker.Sy us ,
46d790b16bSRobert Clausecker.Sy ui ,
47d790b16bSRobert Clausecker.Sy ul ,
48d790b16bSRobert Clauseckeror
49d790b16bSRobert Clausecker.Sy ull
50d790b16bSRobert Clauseckerrespectively.
51d790b16bSRobert ClauseckerThe
52d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero "value"
53d790b16bSRobert Clauseckertype-generic macro picks the appropriate
54d790b16bSRobert Clausecker.Nm stdc_first_trailing_zero_ Ns Em type Ns ()
55d790b16bSRobert Clauseckerfunction based on the type of
56d790b16bSRobert Clausecker.Fa value .
57d790b16bSRobert Clausecker.Sh RETURN VALUES
58d790b16bSRobert ClauseckerReturns the index of the least significant clear bit in
59d790b16bSRobert Clausecker.Fa value .
60d790b16bSRobert ClauseckerThe bits are numbered such that the least significant bit has number\~1,
61d790b16bSRobert Clauseckerand the most significant bit has number
62d790b16bSRobert Clausecker.Ms w
63d790b16bSRobert Clauseckerwhere
64d790b16bSRobert Clausecker.Ms w
65d790b16bSRobert Clauseckeris the number of bits in the type of
66d790b16bSRobert Clausecker.Fa value .
67d790b16bSRobert ClauseckerIf no bits are clear in
68d790b16bSRobert Clausecker.Fa value
69d790b16bSRobert Clausecker(i.\^e.\&
70d790b16bSRobert Clausecker.Fa value
71d790b16bSRobert Clauseckeris the bitwise complement of zero), zero is returned.
72d790b16bSRobert Clausecker.Sh SEE ALSO
73d790b16bSRobert Clausecker.Xr bit_ffc 3 ,
74d790b16bSRobert Clausecker.Xr stdbit 3 ,
75d790b16bSRobert Clausecker.Xr stdc_trailing_ones 3 ,
76d790b16bSRobert Clausecker.Xr stdc_first_trailing_ones 3 ,
77d790b16bSRobert Clausecker.Xr stdc_first_leading_zero 3
78d790b16bSRobert Clausecker.Sh STANDARDS
79d790b16bSRobert ClauseckerThe
80d790b16bSRobert Clausecker.Nm stdc_first_trailing_zero_ Ns Em type Ns ()
81d790b16bSRobert Clauseckerfamily of functions and the
82d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero
83d790b16bSRobert Clauseckertype-generic macro conform to
84d790b16bSRobert Clausecker.St -isoC-2023 .
85d790b16bSRobert Clausecker.Sh HISTORY
86d790b16bSRobert ClauseckerThe
87d790b16bSRobert Clausecker.Nm stdc_first_trailing_zero_ Ns Em type Ns ()
88d790b16bSRobert Clauseckerfamily of functions and the
89d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero
90d790b16bSRobert Clauseckertype-generic macro were added in
91d790b16bSRobert Clausecker.Fx 15.1.
92d790b16bSRobert Clausecker.Sh AUTHOR
93d790b16bSRobert Clausecker.An Robert Clausecker Aq Mt fuz@FreeBSD.org
94