DDI_FFS(9F) |
Kernel Functions for Drivers |
DDI_FFS(9F) |
NAME
ddi_ffs, ddi_ffsll, ddi_fls, ddi_flsll — find first (last) bit set in a long (long) integer
SYNOPSIS
#include <sys/conf.h>
#include <sys/ddi.h>
#include <sys/sunddi.h>
int
ddi_ffs(
long mask);
int
ddi_fls(
long mask);
int
ddi_ffs(
long long mask);
int
ddi_fls(
long long mask);
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI).
PARAMETERS
-
mask
-
A 32-bit or 64-bit argument value to search through.
DESCRIPTION
The functions ddi_ffs() and ddi_ffsll() take their argument and return the shift count that the first (least significant) bit set in the argument corresponds to. The functions ddi_fls() and ddi_flsll() do the same, only they returns the shift count for the last (most significant) bit set in the argument. ddi_ffs() and ddi_fls() operate on 32-bit values, while ddi_ffsll() and ddi_flsll() operate on 64-bit values.
CONTEXT
These functions can be called from user, interrupt, or kernel context.
RETURN VALUES
-
0
-
No bits are set in mask.
-
N
-
Bit N is the least significant (ddi_ffs(), ddi_ffsll()) or most significant (ddi_fls(), ddi_flsll()) bit set in mask. Bits are numbered from 1 to 32 or 64, with bit 1 being the least significant bit position and bit 32 or 64 the most significant position, depending on the variant of the functions used.
SEE ALSO
Writing Device Drivers