SET, CLR, ISSET in types.h for _KERNEL builds
M. Warner Losh
imp at bsdimp.com
Tue Jun 27 20:57:10 UTC 2006
NetBSD recently added SET, CLR, ISSET to sys/types.h (only if _KERNEL
is defined). I'd like to do something similar in FreeBSD. I see no
reason to needless deviate from NetBSD here. One could make an
argument for lots of different files, but at the end of the day does
it really matter enough to justify having it be different than NetBSD?
Here's my proposed diff, inline, for your consideration:
Index: types.h
===================================================================
RCS file: /home/ncvs/src/sys/sys/types.h,v
retrieving revision 1.95
diff -u -r1.95 types.h
--- types.h 26 Nov 2005 12:42:35 -0000 1.95
+++ types.h 27 Jun 2006 19:57:23 -0000
@@ -294,6 +294,11 @@
#define offsetof(type, field) __offsetof(type, field)
+/* Macros to clear/set/test flags. */
+#define SET(t, f) (t) |= (f)
+#define CLR(t, f) (t) &= ~(f)
+#define ISSET(t, f) ((t) & (f))
+
#endif /* !_KERNEL */
/*
NOTE: That /* !_KERNEL */ should have the '!' removed, but I didn't
want to confuse things by doing that too.
Comments?
Warner
More information about the freebsd-arch
mailing list