Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jun 2006 09:55:27 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        shadow@psoft.net
Cc:        arch@freebsd.org
Subject:   Re: SET, CLR, ISSET in types.h for _KERNEL builds
Message-ID:  <20060628.095527.-432838142.imp@bsdimp.com>
In-Reply-To: <1151490061.3525.9.camel@berloga.shadowland>
References:  <20060627.135817.-490997979.imp@bsdimp.com> <1151490061.3525.9.camel@berloga.shadowland>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <1151490061.3525.9.camel@berloga.shadowland>
            Alex Lyashkov <shadow@psoft.net> writes:
: =F7 =F7=D4=D2, 27.06.2006, =D7 22:58, M. Warner Losh =D0=C9=DB=C5=D4:=

: > NetBSD recently added SET, CLR, ISSET to sys/types.h (only if _KERN=
EL
: > is defined).  I'd like to do something similar in FreeBSD.  I see n=
o
: > reason to needless deviate from NetBSD here.  One could make an
: > argument for lots of different files, but at the end of the day doe=
s
: > it really matter enough to justify having it be different than NetB=
SD?
: > =

: > Here's my proposed diff, inline, for your consideration:
: > =

: =

: > =

: > NOTE: That /* !_KERNEL */ should have the '!' removed, but I didn't=

: > want to confuse things by doing that too.
: > =

: > Comments?
: > =

: > Warner
: > _______________________________________________
: Who not create abstract framework for work with bitmask more then 64b=
its
: size? =

: similar this:
: =

: #define_bitmask(name,size)	char name[(size/8)+1];
: #define set_bit(bimask,no)	{ bitmask[(no/8)] |=3D 1<<(no%8); }
: #define clr_bit(bitmask,no)		{ bitmask[(no/8)] &=3D ~(1<<(no%8)); }
: static inline isset_bit(char *bitmask, no) {
: 	return bitmask[(no/8)] & 1<<(no%8);
: }

This isn't about 'frameworks' but rather a simple set of macros to aid
in the porting of code from other systems.

Warner



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