1 #ifndef __ORO_ARCH_INTERFACE__ 2 #define __ORO_ARCH_INTERFACE__ 25 struct oro_atomic_t_interface;
95 int oro_cmpxchg(
void volatile* ptr,
unsigned long o,
unsigned long n);
98 #endif // __ORO_ARCH_INTERFACE__ int oro_atomic_inc_and_test(oro_atomic_t *a)
Increment a atomically and test for zero.
int oro_atomic_read(oro_atomic_t *a)
Returns the current counter value of the atomic structure a.
void oro_atomic_inc(oro_atomic_t *a)
Increment a atomically.
void ORO_ATOMIC_SETUP(oro_atomic_t *a, int n)
Initializes the uninitialized atomic structure a with a counter value of 'n'.
void ORO_ATOMIC_CLEANUP(oro_atomic_t *a)
Cleans up all resources allocated durint the setup of atomic structure a.
int oro_cmpxchg(void volatile *ptr, unsigned long o, unsigned long n)
Compare o with *ptr and swap with n if equal.
void oro_atomic_sub(int n, oro_atomic_t *a, int n)
Substract n from a.
int oro_atomic_dec_and_test(oro_atomic_t *a)
Decrement a atomically and test for zero.
int oro_atomic_sub_and_test(oro_atomic_t *a, int n)
Substract n from a and test for zero.
void oro_atomic_set(oro_atomic_t *a, int n)
Sets the current counter value of the atomic structure a to n.
void oro_atomic_dec(oro_atomic_t *a)
Decrement a atomically.
Structure that contains an int for atomic operations.
void oro_atomic_add(oro_atomic_t *a, int n)
Add n to a.