svn commit: r299184 - head/sys/sys

Roger Pau Monné royger at FreeBSD.org
Fri May 6 16:41:25 UTC 2016


Author: royger
Date: Fri May  6 16:41:23 2016
New Revision: 299184
URL: https://svnweb.freebsd.org/changeset/base/299184

Log:
  bitset: introduce helpers to allocate a bitset at runtime
  
  Introduce some new helpers to declare and allocate a dynamic bitset, whose
  size is not a constant.
  
  Sponsored by:		Citrix Systems R&D
  Reviewed by:		kib jhb
  Differential revision:	https://reviews.freebsd.org/D6226

Modified:
  head/sys/sys/_bitset.h
  head/sys/sys/bitset.h

Modified: head/sys/sys/_bitset.h
==============================================================================
--- head/sys/sys/_bitset.h	Fri May  6 16:03:40 2016	(r299183)
+++ head/sys/sys/_bitset.h	Fri May  6 16:41:23 2016	(r299184)
@@ -47,4 +47,12 @@ struct t {								\
         long    __bits[__bitset_words((_s))];				\
 }
 
+/*
+ * Helper to declare a bitset without it's size being a constant.
+ *
+ * Sadly we cannot declare a bitset struct with '__bits[]', because it's
+ * the only member of the struct and the compiler complains.
+ */
+#define BITSET_DEFINE_VAR(t)	BITSET_DEFINE(t, 1)
+
 #endif /* !_SYS__BITSET_H_ */

Modified: head/sys/sys/bitset.h
==============================================================================
--- head/sys/sys/bitset.h	Fri May  6 16:03:40 2016	(r299183)
+++ head/sys/sys/bitset.h	Fri May  6 16:41:23 2016	(r299184)
@@ -199,4 +199,10 @@
 #define	BITSET_FSET(n)							\
 	[ 0 ... ((n) - 1) ] = (-1L)
 
+/*
+ * Dynamically allocate a bitset.
+ */
+#define BITSET_ALLOC(_s, mt, mf)					\
+	malloc(__bitset_words(_s) * sizeof(long), mt, (mf))
+
 #endif /* !_SYS_BITSET_H_ */


More information about the svn-src-head mailing list