27extern "C" void ____error_compare_and_swap_does_not_support_3_bytes____();
28extern "C" void ____error_compare_and_swap_does_not_support_more_than_4_bytes____();
32 template<
typename X >
33 inline int compare_and_swap(X
volatile *dst, X old_val, X new_val)
41 case 3: ____error_compare_and_swap_does_not_support_3_bytes____();
45 ____error_compare_and_swap_does_not_support_more_than_4_bytes____();
unsigned char l4_uint8_t
Unsigned 8bit value.
unsigned int l4_uint32_t
Unsigned 32bit value.
unsigned short int l4_uint16_t
Unsigned 16bit value.
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_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_cmpxchg32(volatile l4_uint32_t *dest, l4_uint32_t cmp_val, l4_uint32_t new_val)
Atomic compare and exchange (32 bit version)
atomic operations header and generic implementations
L4 low-level kernel interface.