Provides implementations for atomic memory update operations
on a number of architectures. This allows direct use of these
in reasonably portable code. Unlike earlier similar packages,
this one explicitly considers memory barrier semantics, and
allows the construction of code that involves minimum overhead
across a variety of architectures.