On 25 May 2011 04:45, Nicolas Pitre nicolas.pitre@linaro.org wrote:
FWIW, here's what the kernel part might look like, i.e. for compatibility with pre ARMv6k systems (beware, only compile tested):
OK, so that makes a eglibc part for that pretty easy. For things like fetch_and_add (which I can see membase needs) would you expect implementation using this cmpxchg so it has a fall back or just to use ldrexd directly which I assume would be somewhat more efficient.
(Question holds for both eglibc and gcc's __sync_*)
- Notes:
- - This routine already includes memory barriers as needed.
Hmm I wonder whether something like the atomic add primitives from user space need that or not; it depends whether people are using them to build larger data structures or just trying to keep a consistent count somewhere.
Dave