diff options
author | marha <marha@users.sourceforge.net> | 2011-09-26 17:08:48 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-09-26 17:08:48 +0200 |
commit | 95acf9816e008fa46a6c2fa2f35500deb358bb69 (patch) | |
tree | ad86feed38d780515cf9da608c5ea21eed04e17d /mesalib/src/gallium/auxiliary/util/u_math.h | |
parent | 4f67039e9191d5251c39069bd791a05c5cf22022 (diff) | |
parent | 873965b49f283ad028dd4e0e5b7e93a758c84993 (diff) | |
download | vcxsrv-95acf9816e008fa46a6c2fa2f35500deb358bb69.tar.gz vcxsrv-95acf9816e008fa46a6c2fa2f35500deb358bb69.tar.bz2 vcxsrv-95acf9816e008fa46a6c2fa2f35500deb358bb69.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
libXmu/src/CmapAlloc.c
Diffstat (limited to 'mesalib/src/gallium/auxiliary/util/u_math.h')
-rw-r--r-- | mesalib/src/gallium/auxiliary/util/u_math.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/mesalib/src/gallium/auxiliary/util/u_math.h b/mesalib/src/gallium/auxiliary/util/u_math.h index 46d932293..c74c1da76 100644 --- a/mesalib/src/gallium/auxiliary/util/u_math.h +++ b/mesalib/src/gallium/auxiliary/util/u_math.h @@ -424,6 +424,22 @@ unsigned ffs( unsigned u ) #endif +/* Destructively loop over all of the bits in a mask as in: + * + * while (mymask) { + * int i = u_bit_scan(&mymask); + * ... process element i + * } + * + */ +static INLINE int u_bit_scan(unsigned *mask) +{ + int i = ffs(*mask) - 1; + *mask &= ~(1 << i); + return i; +} + + /** * Return float bits. */ |