#include "config.h"
#include "Atomic-mutex.h"
#include "Mutex.h"
Go to the source code of this file.
Namespaces | |
namespace | oasys |
Functions | |
Mutex * | oasys::atomic_mutex () |
Global accessor to the singleton atomic mutex. | |
static u_int32_t | oasys::atomic_cmpxchg32 (volatile atomic_t *v, u_int32_t o, u_int32_t n) |
Atomic compare and set. | |
static u_int32_t | oasys::atomic_add_ret (volatile atomic_t *v, u_int32_t i) |
Atomic addition function. | |
static void | oasys::atomic_add (volatile atomic_t *v, u_int32_t i) |
Wrapper variants around the basic add/sub functions above. | |
static void | oasys::atomic_sub (volatile atomic_t *v, u_int32_t i) |
Atomic subtraction function. | |
static void | oasys::atomic_incr (volatile atomic_t *v) |
Atomic increment. | |
static void | oasys::atomic_decr (volatile atomic_t *v) |
Atomic decrement. | |
static bool | oasys::atomic_decr_test (volatile atomic_t *v) |
Atomic decrement and test. | |
static u_int32_t | oasys::atomic_incr_ret (volatile atomic_t *v) |
Atomic increment function that returns the new value. | |
Variables | |
Mutex | oasys::g_atomic_mutex ("/XXX/ATOMIC_MUTEX_UNUSED_LOGGER", Mutex::TYPE_FAST, true) |
To implement atomic operations without assembly support at userland, we rely on a single global mutex. |