One Level Up
Top Level
src/os/unix/ngx_sunpro_atomic_sparc64.h - nginx-1.7.10
Functions defined
Macros defined
Source code
- #if (NGX_PTR_SIZE == 4)
- #define NGX_CASA ngx_casa
- #else
- #define NGX_CASA ngx_casxa
- #endif
- ngx_atomic_uint_t
- ngx_casa(ngx_atomic_uint_t set, ngx_atomic_uint_t old, ngx_atomic_t *lock);
- ngx_atomic_uint_t
- ngx_casxa(ngx_atomic_uint_t set, ngx_atomic_uint_t old, ngx_atomic_t *lock);
- static ngx_inline ngx_atomic_uint_t
- ngx_atomic_cmp_set(ngx_atomic_t *lock, ngx_atomic_uint_t old,
- ngx_atomic_uint_t set)
- {
- set = NGX_CASA(set, old, lock);
- return (set == old);
- }
- static ngx_inline ngx_atomic_int_t
- ngx_atomic_fetch_add(ngx_atomic_t *value, ngx_atomic_int_t add)
- {
- ngx_atomic_uint_t old, res;
- old = *value;
- for ( ;; ) {
- res = old + add;
- res = NGX_CASA(res, old, value);
- if (res == old) {
- return res;
- }
- old = res;
- }
- }
- #define ngx_memory_barrier() \
- __asm (".volatile"); \
- __asm ("membar #LoadLoad | #LoadStore | #StoreStore | #StoreLoad"); \
- __asm (".nonvolatile")
- #define ngx_cpu_pause()
One Level Up
Top Level