Date: Wed, 28 Jun 2006 18:24:10 +0200 From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-arch@freebsd.org Cc: arch@freebsd.org Subject: Re: SET, CLR, ISSET in types.h for _KERNEL builds Message-ID: <200606281824.13729.hselasky@c2i.net> In-Reply-To: <20060627.135817.-490997979.imp@bsdimp.com> References: <20060627.135817.-490997979.imp@bsdimp.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 27 June 2006 21:58, M. Warner Losh wrote: > 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 */ > I am currently expanding those macros in all the USB drivers I am rewriting. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200606281824.13729.hselasky>