Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Jun 2006 13:58:17 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        arch@freebsd.org
Subject:   SET, CLR, ISSET in types.h for _KERNEL builds
Message-ID:  <20060627.135817.-490997979.imp@bsdimp.com>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060627.135817.-490997979.imp>