xref: /freebsd/lib/libc/string/ffs.3 (revision 948ec60d362386263573974d691123b39f675c71)
158f0484fSRodney W. Grimes.\" Copyright (c) 1990, 1991, 1993
258f0484fSRodney W. Grimes.\"	The Regents of the University of California.  All rights reserved.
358f0484fSRodney W. Grimes.\"
458f0484fSRodney W. Grimes.\" This code is derived from software contributed to Berkeley by
558f0484fSRodney W. Grimes.\" Chris Torek.
658f0484fSRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without
758f0484fSRodney W. Grimes.\" modification, are permitted provided that the following conditions
858f0484fSRodney W. Grimes.\" are met:
958f0484fSRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright
1058f0484fSRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer.
1158f0484fSRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright
1258f0484fSRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer in the
1358f0484fSRodney W. Grimes.\"    documentation and/or other materials provided with the distribution.
1458f0484fSRodney W. Grimes.\" 3. All advertising materials mentioning features or use of this software
1558f0484fSRodney W. Grimes.\"    must display the following acknowledgement:
1658f0484fSRodney W. Grimes.\"	This product includes software developed by the University of
1758f0484fSRodney W. Grimes.\"	California, Berkeley and its contributors.
1858f0484fSRodney W. Grimes.\" 4. Neither the name of the University nor the names of its contributors
1958f0484fSRodney W. Grimes.\"    may be used to endorse or promote products derived from this software
2058f0484fSRodney W. Grimes.\"    without specific prior written permission.
2158f0484fSRodney W. Grimes.\"
2258f0484fSRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2358f0484fSRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2458f0484fSRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2558f0484fSRodney W. Grimes.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2658f0484fSRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2758f0484fSRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2858f0484fSRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2958f0484fSRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
3058f0484fSRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3158f0484fSRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3258f0484fSRodney W. Grimes.\" SUCH DAMAGE.
3358f0484fSRodney W. Grimes.\"
3458f0484fSRodney W. Grimes.\"     @(#)ffs.3	8.2 (Berkeley) 4/19/94
357f3dea24SPeter Wemm.\" $FreeBSD$
3658f0484fSRodney W. Grimes.\"
37948ec60dSRuslan Ermilov.Dd October 12, 2006
3858f0484fSRodney W. Grimes.Dt FFS 3
3958f0484fSRodney W. Grimes.Os
4058f0484fSRodney W. Grimes.Sh NAME
41f434fe12SDag-Erling Smørgrav.Nm ffs ,
42f434fe12SDag-Erling Smørgrav.Nm ffsl ,
43f434fe12SDag-Erling Smørgrav.Nm fls ,
44f434fe12SDag-Erling Smørgrav.Nm flsl
45f434fe12SDag-Erling Smørgrav.Nd find first or last bit set in a bit string
4625bb73e0SAlexey Zelkin.Sh LIBRARY
4725bb73e0SAlexey Zelkin.Lb libc
4858f0484fSRodney W. Grimes.Sh SYNOPSIS
49554331bbSRobert Drehmel.In strings.h
5058f0484fSRodney W. Grimes.Ft int
5158f0484fSRodney W. Grimes.Fn ffs "int value"
52f434fe12SDag-Erling Smørgrav.Ft int
53f434fe12SDag-Erling Smørgrav.Fn ffsl "long value"
54f434fe12SDag-Erling Smørgrav.Ft int
55f434fe12SDag-Erling Smørgrav.Fn fls "int value"
56f434fe12SDag-Erling Smørgrav.Ft int
57f434fe12SDag-Erling Smørgrav.Fn flsl "long value"
5858f0484fSRodney W. Grimes.Sh DESCRIPTION
5958f0484fSRodney W. GrimesThe
6058f0484fSRodney W. Grimes.Fn ffs
61f434fe12SDag-Erling Smørgravand
62f434fe12SDag-Erling Smørgrav.Fn ffsl
63948ec60dSRuslan Ermilovfunctions find the first bit set
64948ec60dSRuslan Ermilov(beginning with the least significant bit)
65948ec60dSRuslan Ermilovin
6658f0484fSRodney W. Grimes.Fa value
67f434fe12SDag-Erling Smørgravand return the index of that bit.
68f434fe12SDag-Erling Smørgrav.Pp
69f434fe12SDag-Erling SmørgravThe
70f434fe12SDag-Erling Smørgrav.Fn fls
71f434fe12SDag-Erling Smørgravand
72f434fe12SDag-Erling Smørgrav.Fn flsl
73f434fe12SDag-Erling Smørgravfunctions find the last bit set in
74f434fe12SDag-Erling Smørgrav.Fa value
75f434fe12SDag-Erling Smørgravand return the index of that bit.
76f434fe12SDag-Erling Smørgrav.Pp
77948ec60dSRuslan ErmilovBits are numbered starting at 1 (the least significant bit).
78f434fe12SDag-Erling SmørgravA return value of zero from any of these functions means that the
79f434fe12SDag-Erling Smørgravargument was zero.
8058f0484fSRodney W. Grimes.Sh SEE ALSO
8158f0484fSRodney W. Grimes.Xr bitstring 3
8258f0484fSRodney W. Grimes.Sh HISTORY
8358f0484fSRodney W. GrimesThe
8458f0484fSRodney W. Grimes.Fn ffs
8558f0484fSRodney W. Grimesfunction appeared in
8658f0484fSRodney W. Grimes.Bx 4.3 .
87554331bbSRobert DrehmelIts prototype existed previously in
88fe08efe6SRuslan Ermilov.In string.h
89554331bbSRobert Drehmelbefore it was moved to
90fe08efe6SRuslan Ermilov.In strings.h
91554331bbSRobert Drehmelfor
92554331bbSRobert Drehmel.St -p1003.1-2001
93554331bbSRobert Drehmelcompliance.
94f434fe12SDag-Erling Smørgrav.Pp
95f434fe12SDag-Erling SmørgravThe
96f434fe12SDag-Erling Smørgrav.Fn ffsl ,
97f434fe12SDag-Erling Smørgrav.Fn fls
98f434fe12SDag-Erling Smørgravand
99f434fe12SDag-Erling Smørgrav.Fn flsl
100f434fe12SDag-Erling Smørgravfunctions appeared in
101f434fe12SDag-Erling Smørgrav.Fx 5.3 .
102