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