> On 31-Jan-01 Matthew Emmerton wrote:
> > Hi all,
> >
> > I've taken a look around for an implementation of atomic bit operations
in
> > FreeBSD (similar to Linux' asm/bitopt.h, which include clear_bit() and
> > test_and_set_bit()) but haven't found any.  The only thing I've found
are
> > the atomic clear/set/add/sub routines in machine/atomic.h.
> >
> > Do we have an implementation of atomic bit operations, and if we don't,
> > would we like some?
>
> Erm, atomic_set() sets's bits, and atomic_clear() clear's bits.  Anything
else
> you might need can be done with atomic_cmpset() anyways.

Where are these functions implemented?  /usr/include/machine/atomic.h just
has atomic_set_XXX and clear_XXX primitives, which work on char/short/longs,
but not individual bits.

I presume that I could wrap the char operations with something that takes
0x01 and bit-shifts it appropriately so that atomic_set/clear could be used.

However, certain other primitives are missing, such as an atomic
test-and-set operation.  Under the current scheme this would have to be done
by two independent operations, which is not useful when atomicitiy is
required.

--
Matt Emmerton



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to