svn commit: r320940 - stable/10/sys/sys

Konstantin Belousov kib at FreeBSD.org
Thu Jul 13 08:33:04 UTC 2017


Author: kib
Date: Thu Jul 13 08:33:02 2017
New Revision: 320940
URL: https://svnweb.freebsd.org/changeset/base/320940

Log:
  MFC r320755,r320762,r320893:
  BIT_FLS(9).

Modified:
  stable/10/sys/sys/bitset.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/sys/bitset.h
==============================================================================
--- stable/10/sys/sys/bitset.h	Thu Jul 13 08:29:01 2017	(r320939)
+++ stable/10/sys/sys/bitset.h	Thu Jul 13 08:33:02 2017	(r320940)
@@ -206,6 +206,21 @@
 	__bit;								\
 })
 
+#define	BIT_FLS(_s, p) __extension__ ({					\
+	__size_t __i;							\
+	int __bit;							\
+									\
+	__bit = 0;							\
+	for (__i = __bitset_words((_s)); __i > 0; __i--) {		\
+		if ((p)->__bits[__i - 1] != 0) {			\
+			__bit = flsl((p)->__bits[__i - 1]);		\
+			__bit += (__i - 1) * _BITSET_BITS;		\
+			break;						\
+		}							\
+	}								\
+	__bit;								\
+})
+
 #define	BIT_COUNT(_s, p) __extension__ ({				\
 	__size_t __i;							\
 	int __count;							\


More information about the svn-src-all mailing list