The __atomic primitives have been available since GCC 4.7 and provide a richer interface for describing memory ordering requirements. As a bonus by using the primitives instead of hand-rolled functions we can use tools such as the ThreadSanitizer which need the use of well defined APIs for its analysis. If we have __ATOMIC defines we exclusively use the __atomic primitives for all our atomic access. Otherwise we fall back to the mixture of __sync and hand-rolled barrier cases. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <1453976119-24372-4-git-send-email-alex.bennee@linaro.org> [Use __ATOMIC_SEQ_CST for atomic_mb_read/atomic_mb_set on !POWER. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
||
|---|---|---|
| .. | ||
| acl.h | ||
| atomic.h | ||
| base64.h | ||
| bitmap.h | ||
| bitops.h | ||
| bswap.h | ||
| buffer.h | ||
| compatfd.h | ||
| compiler.h | ||
| config-file.h | ||
| coroutine.h | ||
| coroutine_int.h | ||
| crc32c.h | ||
| envlist.h | ||
| error-report.h | ||
| event_notifier.h | ||
| fifo8.h | ||
| fprintf-fn.h | ||
| hbitmap.h | ||
| host-utils.h | ||
| int128.h | ||
| iov.h | ||
| log.h | ||
| main-loop.h | ||
| memfd.h | ||
| mmap-alloc.h | ||
| module.h | ||
| notify.h | ||
| option.h | ||
| option_int.h | ||
| osdep.h | ||
| queue.h | ||
| range.h | ||
| ratelimit.h | ||
| rcu.h | ||
| rcu_queue.h | ||
| readline.h | ||
| rfifolock.h | ||
| seqlock.h | ||
| sockets.h | ||
| thread-posix.h | ||
| thread-win32.h | ||
| thread.h | ||
| throttle.h | ||
| timed-average.h | ||
| timer.h | ||
| typedefs.h | ||
| uri.h | ||
| xattr.h | ||