Date: Wed, 28 Jun 2006 13:21:01 +0300 From: Alex Lyashkov <shadow@psoft.net> To: "M. Warner Losh" <imp@bsdimp.com> Cc: arch@freebsd.org Subject: Re: SET, CLR, ISSET in types.h for _KERNEL builds Message-ID: <1151490061.3525.9.camel@berloga.shadowland> 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
=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 _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? >=20 > Here's my proposed diff, inline, for your consideration: >=20 >=20 > NOTE: That /* !_KERNEL */ should have the '!' removed, but I didn't > want to confuse things by doing that too. >=20 > Comments? >=20 > Warner > _______________________________________________ Who not create abstract framework for work with bitmask more then 64bits size?=20 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); } --=20 Alex Lyashkov <shadow@psoft.net> Positive Software
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1151490061.3525.9.camel>