Files | |
file | ARCH-amd64/atomic_arch.h |
i386 atomic operations | |
file | ARCH-x86/atomic_arch.h |
i386 atomic operations | |
file | atomic.h |
atomic operations header and generic implementations | |
Atomic compare and exchange with result | |
l4_uint8_t | l4util_cmpxchg8_res (volatile l4_uint8_t *dest, l4_uint8_t cmp_val, l4_uint8_t new_val) |
l4_uint16_t | l4util_cmpxchg16_res (volatile l4_uint16_t *dest, l4_uint16_t cmp_val, l4_uint16_t new_val) |
l4_uint32_t | l4util_cmpxchg32_res (volatile l4_uint32_t *dest, l4_uint32_t cmp_val, l4_uint32_t new_val) |
l4_umword_t | l4util_cmpxchg_res (volatile l4_umword_t *dest, l4_umword_t cmp_val, l4_umword_t new_val) |
Atomic add/sub/and/or (8,16,32 bit version) without result | |
void | l4util_add8 (volatile l4_uint8_t *dest, l4_uint8_t val) |
void | l4util_add16 (volatile l4_uint16_t *dest, l4_uint16_t val) |
void | l4util_add32 (volatile l4_uint32_t *dest, l4_uint32_t val) |
void | l4util_sub8 (volatile l4_uint8_t *dest, l4_uint8_t val) |
void | l4util_sub16 (volatile l4_uint16_t *dest, l4_uint16_t val) |
void | l4util_sub32 (volatile l4_uint32_t *dest, l4_uint32_t val) |
void | l4util_and8 (volatile l4_uint8_t *dest, l4_uint8_t val) |
void | l4util_and16 (volatile l4_uint16_t *dest, l4_uint16_t val) |
void | l4util_and32 (volatile l4_uint32_t *dest, l4_uint32_t val) |
void | l4util_or8 (volatile l4_uint8_t *dest, l4_uint8_t val) |
void | l4util_or16 (volatile l4_uint16_t *dest, l4_uint16_t val) |
void | l4util_or32 (volatile l4_uint32_t *dest, l4_uint32_t val) |
Atomic add/sub/and/or operations (8,16,32 bit) with result | |
l4_uint8_t | l4util_add8_res (volatile l4_uint8_t *dest, l4_uint8_t val) |
l4_uint16_t | l4util_add16_res (volatile l4_uint16_t *dest, l4_uint16_t val) |
l4_uint32_t | l4util_add32_res (volatile l4_uint32_t *dest, l4_uint32_t val) |
l4_uint8_t | l4util_sub8_res (volatile l4_uint8_t *dest, l4_uint8_t val) |
l4_uint16_t | l4util_sub16_res (volatile l4_uint16_t *dest, l4_uint16_t val) |
l4_uint32_t | l4util_sub32_res (volatile l4_uint32_t *dest, l4_uint32_t val) |
l4_uint8_t | l4util_and8_res (volatile l4_uint8_t *dest, l4_uint8_t val) |
l4_uint16_t | l4util_and16_res (volatile l4_uint16_t *dest, l4_uint16_t val) |
l4_uint32_t | l4util_and32_res (volatile l4_uint32_t *dest, l4_uint32_t val) |
l4_uint8_t | l4util_or8_res (volatile l4_uint8_t *dest, l4_uint8_t val) |
l4_uint16_t | l4util_or16_res (volatile l4_uint16_t *dest, l4_uint16_t val) |
l4_uint32_t | l4util_or32_res (volatile l4_uint32_t *dest, l4_uint32_t val) |
Atomic inc/dec (8,16,32 bit) without result | |
void | l4util_inc8 (volatile l4_uint8_t *dest) |
void | l4util_inc16 (volatile l4_uint16_t *dest) |
void | l4util_inc32 (volatile l4_uint32_t *dest) |
void | l4util_dec8 (volatile l4_uint8_t *dest) |
void | l4util_dec16 (volatile l4_uint16_t *dest) |
void | l4util_dec32 (volatile l4_uint32_t *dest) |
Atomic inc/dec (8,16,32 bit) with result | |
l4_uint8_t | l4util_inc8_res (volatile l4_uint8_t *dest) |
l4_uint16_t | l4util_inc16_res (volatile l4_uint16_t *dest) |
l4_uint32_t | l4util_inc32_res (volatile l4_uint32_t *dest) |
l4_uint8_t | l4util_dec8_res (volatile l4_uint8_t *dest) |
l4_uint16_t | l4util_dec16_res (volatile l4_uint16_t *dest) |
l4_uint32_t | l4util_dec32_res (volatile l4_uint32_t *dest) |
Functions | |
int | l4util_cmpxchg64 (volatile l4_uint64_t *dest, l4_uint64_t cmp_val, l4_uint64_t new_val) |
Atomic compare and exchange (64 bit version). | |
int | l4util_cmpxchg32 (volatile l4_uint32_t *dest, l4_uint32_t cmp_val, l4_uint32_t new_val) |
Atomic compare and exchange (32 bit version). | |
int | l4util_cmpxchg16 (volatile l4_uint16_t *dest, l4_uint16_t cmp_val, l4_uint16_t new_val) |
Atomic compare and exchange (16 bit version). | |
int | l4util_cmpxchg8 (volatile l4_uint8_t *dest, l4_uint8_t cmp_val, l4_uint8_t new_val) |
Atomic compare and exchange (8 bit version). | |
int | l4util_cmpxchg (volatile l4_umword_t *dest, l4_umword_t cmp_val, l4_umword_t new_val) |
Atomic compare and exchange (machine wide fields). | |
l4_uint32_t | l4util_xchg32 (volatile l4_uint32_t *dest, l4_uint32_t val) |
Atomic exchange (32 bit version). | |
l4_uint16_t | l4util_xchg16 (volatile l4_uint16_t *dest, l4_uint16_t val) |
Atomic exchange (16 bit version). | |
l4_uint8_t | l4util_xchg8 (volatile l4_uint8_t *dest, l4_uint8_t val) |
Atomic exchange (8 bit version). | |
l4_umword_t | l4util_xchg (volatile l4_umword_t *dest, l4_umword_t val) |
Atomic exchange (machine wide fields). | |
void | l4util_atomic_add (volatile long *dest, long val) |
Atomic add. | |
void | l4util_atomic_inc (volatile long *dest) |
Atomic increment. |
int l4util_cmpxchg64 | ( | volatile l4_uint64_t * | dest, | |
l4_uint64_t | cmp_val, | |||
l4_uint64_t | new_val | |||
) | [inline] |
Atomic compare and exchange (64 bit version).
dest | destination operand | |
cmp_val | compare value | |
new_val | new value for dest |
Definition at line 77 of file ARCH-amd64/atomic_arch.h.
Referenced by l4util_cmpxchg().
int l4util_cmpxchg32 | ( | volatile l4_uint32_t * | dest, | |
l4_uint32_t | cmp_val, | |||
l4_uint32_t | new_val | |||
) | [inline] |
Atomic compare and exchange (32 bit version).
dest | destination operand | |
cmp_val | compare value | |
new_val | new value for dest |
Definition at line 101 of file ARCH-amd64/atomic_arch.h.
Referenced by l4util_cmpxchg().
int l4util_cmpxchg16 | ( | volatile l4_uint16_t * | dest, | |
l4_uint16_t | cmp_val, | |||
l4_uint16_t | new_val | |||
) | [inline] |
Atomic compare and exchange (16 bit version).
dest | destination operand | |
cmp_val | compare value | |
new_val | new value for dest |
Definition at line 125 of file ARCH-amd64/atomic_arch.h.
int l4util_cmpxchg8 | ( | volatile l4_uint8_t * | dest, | |
l4_uint8_t | cmp_val, | |||
l4_uint8_t | new_val | |||
) | [inline] |
Atomic compare and exchange (8 bit version).
dest | destination operand | |
cmp_val | compare value | |
new_val | new value for dest |
Definition at line 149 of file ARCH-amd64/atomic_arch.h.
int l4util_cmpxchg | ( | volatile l4_umword_t * | dest, | |
l4_umword_t | cmp_val, | |||
l4_umword_t | new_val | |||
) | [inline] |
Atomic compare and exchange (machine wide fields).
dest | destination operand | |
cmp_val | compare value | |
new_val | new value for dest |
Definition at line 172 of file ARCH-amd64/atomic_arch.h.
References l4util_cmpxchg32(), and l4util_cmpxchg64().
l4_uint32_t l4util_xchg32 | ( | volatile l4_uint32_t * | dest, | |
l4_uint32_t | val | |||
) | [inline] |
Atomic exchange (32 bit version).
dest | destination operand | |
val | new value for dest |
Definition at line 201 of file ARCH-amd64/atomic_arch.h.
Referenced by l4util_xchg().
l4_uint16_t l4util_xchg16 | ( | volatile l4_uint16_t * | dest, | |
l4_uint16_t | val | |||
) | [inline] |
Atomic exchange (16 bit version).
dest | destination operand | |
val | new value for dest |
Definition at line 220 of file ARCH-amd64/atomic_arch.h.
l4_uint8_t l4util_xchg8 | ( | volatile l4_uint8_t * | dest, | |
l4_uint8_t | val | |||
) | [inline] |
Atomic exchange (8 bit version).
dest | destination operand | |
val | new value for dest |
Definition at line 239 of file ARCH-amd64/atomic_arch.h.
l4_umword_t l4util_xchg | ( | volatile l4_umword_t * | dest, | |
l4_umword_t | val | |||
) | [inline] |
Atomic exchange (machine wide fields).
dest | destination operand | |
val | new value for dest |
Definition at line 258 of file ARCH-amd64/atomic_arch.h.
References l4util_xchg32().
l4_uint8_t l4util_cmpxchg8_res | ( | volatile l4_uint8_t * | dest, | |
l4_uint8_t | cmp_val, | |||
l4_uint8_t | new_val | |||
) | [inline] |
dest | destination operand | |
cmp_val | compare value | |
new_val | new value for dest |
Definition at line 294 of file ARCH-amd64/atomic_arch.h.
void l4util_add8 | ( | volatile l4_uint8_t * | dest, | |
l4_uint8_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 290 of file ARCH-x86/atomic_arch.h.
l4_uint8_t l4util_add8_res | ( | volatile l4_uint8_t * | dest, | |
l4_uint8_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 325 of file ARCH-x86/atomic_arch.h.
void l4util_inc8 | ( | volatile l4_uint8_t * | dest | ) | [inline] |
l4_uint8_t l4util_inc8_res | ( | volatile l4_uint8_t * | dest | ) | [inline] |
dest | destination operand |
Definition at line 378 of file ARCH-x86/atomic_arch.h.
void l4util_atomic_add | ( | volatile long * | dest, | |
long | val | |||
) | [inline] |
Atomic add.
dest | destination operand | |
val | value to add |
Definition at line 387 of file ARCH-x86/atomic_arch.h.
void l4util_atomic_inc | ( | volatile long * | dest | ) | [inline] |
Atomic increment.
dest | destination operand |
Definition at line 396 of file ARCH-x86/atomic_arch.h.
l4_uint16_t l4util_cmpxchg16_res | ( | volatile l4_uint16_t * | dest, | |
l4_uint16_t | cmp_val, | |||
l4_uint16_t | new_val | |||
) | [inline] |
dest | destination operand | |
cmp_val | compare value | |
new_val | new value for dest |
l4_uint32_t l4util_cmpxchg32_res | ( | volatile l4_uint32_t * | dest, | |
l4_uint32_t | cmp_val, | |||
l4_uint32_t | new_val | |||
) | [inline] |
dest | destination operand | |
cmp_val | compare value | |
new_val | new value for dest |
Referenced by l4util_cmpxchg_res().
l4_umword_t l4util_cmpxchg_res | ( | volatile l4_umword_t * | dest, | |
l4_umword_t | cmp_val, | |||
l4_umword_t | new_val | |||
) | [inline] |
dest | destination operand | |
cmp_val | compare value | |
new_val | new value for dest |
Definition at line 255 of file ARCH-x86/atomic_arch.h.
References l4util_cmpxchg32_res().
void l4util_add16 | ( | volatile l4_uint16_t * | dest, | |
l4_uint16_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 290 of file ARCH-x86/atomic_arch.h.
void l4util_add32 | ( | volatile l4_uint32_t * | dest, | |
l4_uint32_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 290 of file ARCH-x86/atomic_arch.h.
void l4util_sub8 | ( | volatile l4_uint8_t * | dest, | |
l4_uint8_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 291 of file ARCH-x86/atomic_arch.h.
void l4util_sub16 | ( | volatile l4_uint16_t * | dest, | |
l4_uint16_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 291 of file ARCH-x86/atomic_arch.h.
void l4util_sub32 | ( | volatile l4_uint32_t * | dest, | |
l4_uint32_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 291 of file ARCH-x86/atomic_arch.h.
void l4util_and8 | ( | volatile l4_uint8_t * | dest, | |
l4_uint8_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 292 of file ARCH-x86/atomic_arch.h.
void l4util_and16 | ( | volatile l4_uint16_t * | dest, | |
l4_uint16_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 292 of file ARCH-x86/atomic_arch.h.
void l4util_and32 | ( | volatile l4_uint32_t * | dest, | |
l4_uint32_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 292 of file ARCH-x86/atomic_arch.h.
void l4util_or8 | ( | volatile l4_uint8_t * | dest, | |
l4_uint8_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 293 of file ARCH-x86/atomic_arch.h.
void l4util_or16 | ( | volatile l4_uint16_t * | dest, | |
l4_uint16_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 293 of file ARCH-x86/atomic_arch.h.
void l4util_or32 | ( | volatile l4_uint32_t * | dest, | |
l4_uint32_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 293 of file ARCH-x86/atomic_arch.h.
l4_uint16_t l4util_add16_res | ( | volatile l4_uint16_t * | dest, | |
l4_uint16_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 325 of file ARCH-x86/atomic_arch.h.
l4_uint32_t l4util_add32_res | ( | volatile l4_uint32_t * | dest, | |
l4_uint32_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 325 of file ARCH-x86/atomic_arch.h.
l4_uint8_t l4util_sub8_res | ( | volatile l4_uint8_t * | dest, | |
l4_uint8_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 326 of file ARCH-x86/atomic_arch.h.
l4_uint16_t l4util_sub16_res | ( | volatile l4_uint16_t * | dest, | |
l4_uint16_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 326 of file ARCH-x86/atomic_arch.h.
l4_uint32_t l4util_sub32_res | ( | volatile l4_uint32_t * | dest, | |
l4_uint32_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 326 of file ARCH-x86/atomic_arch.h.
l4_uint8_t l4util_and8_res | ( | volatile l4_uint8_t * | dest, | |
l4_uint8_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 327 of file ARCH-x86/atomic_arch.h.
l4_uint16_t l4util_and16_res | ( | volatile l4_uint16_t * | dest, | |
l4_uint16_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 327 of file ARCH-x86/atomic_arch.h.
l4_uint32_t l4util_and32_res | ( | volatile l4_uint32_t * | dest, | |
l4_uint32_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 327 of file ARCH-x86/atomic_arch.h.
l4_uint8_t l4util_or8_res | ( | volatile l4_uint8_t * | dest, | |
l4_uint8_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 328 of file ARCH-x86/atomic_arch.h.
l4_uint16_t l4util_or16_res | ( | volatile l4_uint16_t * | dest, | |
l4_uint16_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 328 of file ARCH-x86/atomic_arch.h.
l4_uint32_t l4util_or32_res | ( | volatile l4_uint32_t * | dest, | |
l4_uint32_t | val | |||
) | [inline] |
dest | destination operand | |
val | value to add/sub/and/or |
Definition at line 328 of file ARCH-x86/atomic_arch.h.
void l4util_inc16 | ( | volatile l4_uint16_t * | dest | ) | [inline] |
void l4util_inc32 | ( | volatile l4_uint32_t * | dest | ) | [inline] |
void l4util_dec8 | ( | volatile l4_uint8_t * | dest | ) | [inline] |
void l4util_dec16 | ( | volatile l4_uint16_t * | dest | ) | [inline] |
void l4util_dec32 | ( | volatile l4_uint32_t * | dest | ) | [inline] |
l4_uint16_t l4util_inc16_res | ( | volatile l4_uint16_t * | dest | ) | [inline] |
dest | destination operand |
Definition at line 378 of file ARCH-x86/atomic_arch.h.
l4_uint32_t l4util_inc32_res | ( | volatile l4_uint32_t * | dest | ) | [inline] |
dest | destination operand |
Definition at line 378 of file ARCH-x86/atomic_arch.h.
l4_uint8_t l4util_dec8_res | ( | volatile l4_uint8_t * | dest | ) | [inline] |
dest | destination operand |
Definition at line 379 of file ARCH-x86/atomic_arch.h.
l4_uint16_t l4util_dec16_res | ( | volatile l4_uint16_t * | dest | ) | [inline] |
dest | destination operand |
Definition at line 379 of file ARCH-x86/atomic_arch.h.
l4_uint32_t l4util_dec32_res | ( | volatile l4_uint32_t * | dest | ) | [inline] |
dest | destination operand |
Definition at line 379 of file ARCH-x86/atomic_arch.h.