19#ifdef USE_ATOMICS_S390
23#if defined(USE_ATOMICS_GENERIC64)
44 asm volatile (
"loop_%=:\n"
49 :
"+d" (prev),
"+d" (
temp),
"=Q" (*mem)
70 asm volatile (
"loop_%=:\n"
75 :
"+d" (prev),
"+d" (
temp),
"=Q" (*mem)
95 asm volatile (
" cs %0,%2,%1\n"
107 asm volatile (
"loop_%=:\n"
110 :
"+d" (prev),
"=Q" (*
mem)
119 void *prev = (
void *)
cmp;
120#if APR_SIZEOF_VOIDP == 4
121 asm volatile (
" cs %0,%2,%1\n"
122 :
"+d" (prev),
"=Q" (*
mem)
125#elif APR_SIZEOF_VOIDP == 8
126 asm volatile (
" csg %0,%2,%1\n"
127 :
"+d" (prev),
"=Q" (*
mem)
131#error APR_SIZEOF_VOIDP value not supported
138 void *prev = (
void *) *
mem;
139#if APR_SIZEOF_VOIDP == 4
140 asm volatile (
"loop_%=:\n"
143 :
"+d" (prev),
"=Q" (*
mem)
146#elif APR_SIZEOF_VOIDP == 8
147 asm volatile (
"loop_%=:\n"
150 :
"+d" (prev),
"=Q" (*
mem)
154#error APR_SIZEOF_VOIDP value not supported
apr_status_t apr__atomic_generic64_init(apr_pool_t *p)
apr_uint32_t apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
void apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
apr_uint32_t apr_atomic_inc32(volatile apr_uint32_t *mem)
apr_uint32_t apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint32_t val)
int apr_atomic_dec32(volatile apr_uint32_t *mem)
apr_status_t apr_atomic_init(apr_pool_t *p)
void apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
apr_uint32_t apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint32_t swap, apr_uint32_t cmp)
apr_uint32_t apr_atomic_read32(volatile apr_uint32_t *mem)
const void apr_status_t(*) apr_status_t(* APR_DECLARE)(void) apr_pool_pre_cleanup_register(apr_pool_t *p
apr_uint32_t apr_uint32_t cmp