View | Details | Raw Unified | Return to bug 42806
Collapse All | Expand All

(-)apr/atomic/unix/solaris.c (-9 / +13 lines)
Lines 25-72 APR_DECLARE(apr_status_t) apr_atomic_ini Link Here
25
    return APR_SUCCESS;
25
    return APR_SUCCESS;
26
}
26
}
27
27
28
APR_DECLARE(apr_uint32_t) apr_atomic_read32(volatile apr_uint32_t *mem)
28
APR_DECLARE(apr_uint32_t) apr_atomic_read32(apr_uint32_t *mem)
29
{
29
{
30
    membar_consumer();
31
30
    return *mem;
32
    return *mem;
31
}
33
}
32
34
33
APR_DECLARE(void) apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
35
APR_DECLARE(void) apr_atomic_set32(apr_uint32_t *mem, apr_uint32_t val)
34
{
36
{
35
    *mem = val;
37
    *mem = val;
38
39
    membar_producer();
36
}
40
}
37
41
38
APR_DECLARE(apr_uint32_t) apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
42
APR_DECLARE(apr_uint32_t) apr_atomic_add32(apr_uint32_t *mem, apr_uint32_t val)
39
{
43
{
40
    return atomic_add_32_nv(mem, val) - val;
44
    return atomic_add_32_nv(mem, val) - val;
41
}
45
}
42
46
43
APR_DECLARE(void) apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
47
APR_DECLARE(void) apr_atomic_sub32(apr_uint32_t *mem, apr_uint32_t val)
44
{
48
{
45
    atomic_add_32(mem, -val);
49
    atomic_add_32(mem, -val);
46
}
50
}
47
51
48
APR_DECLARE(apr_uint32_t) apr_atomic_inc32(volatile apr_uint32_t *mem)
52
APR_DECLARE(apr_uint32_t) apr_atomic_inc32(apr_uint32_t *mem)
49
{
53
{
50
    return atomic_inc_32_nv(mem) - 1;
54
    return atomic_inc_32_nv(mem) - 1;
51
}
55
}
52
56
53
APR_DECLARE(int) apr_atomic_dec32(volatile apr_uint32_t *mem)
57
APR_DECLARE(int) apr_atomic_dec32(apr_uint32_t *mem)
54
{
58
{
55
    return atomic_dec_32_nv(mem);
59
    return atomic_dec_32_nv(mem);
56
}
60
}
57
61
58
APR_DECLARE(apr_uint32_t) apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint32_t with,
62
APR_DECLARE(apr_uint32_t) apr_atomic_cas32(apr_uint32_t *mem, apr_uint32_t with,
59
                                           apr_uint32_t cmp)
63
                                           apr_uint32_t cmp)
60
{
64
{
61
    return atomic_cas_32(mem, cmp, with);
65
    return atomic_cas_32(mem, cmp, with);
62
}
66
}
63
67
64
APR_DECLARE(apr_uint32_t) apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint32_t val)
68
APR_DECLARE(apr_uint32_t) apr_atomic_xchg32(apr_uint32_t *mem, apr_uint32_t val)
65
{
69
{
66
    return atomic_swap_32(mem, val);
70
    return atomic_swap_32(mem, val);
67
}
71
}
68
72
69
APR_DECLARE(void*) apr_atomic_casptr(volatile void **mem, void *with, const void *cmp)
73
APR_DECLARE(void*) apr_atomic_casptr(void **mem, void *with, void *cmp)
70
{
74
{
71
    return atomic_cas_ptr(mem, cmp, with);
75
    return atomic_cas_ptr(mem, cmp, with);
72
}
76
}

Return to bug 42806