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