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