Print this page
5042 stop using deprecated atomic functions
*** 693,703 ****
\
do { \
_p = node_tp; \
if ((_np = _p + 1) == &node_tv[NODE_TV_SZ]) \
_np = node_tv; \
! } while (casptr(&node_tp, _p, _np) != _p); \
_p->node = (p); \
_p->action = (a); \
_p->ref = (p) ? (p)->ref : 0; \
_p->cnt = (p) ? (p)->cnt : 0; \
_p->cpu = CPU->cpu_seqid; \
--- 693,703 ----
\
do { \
_p = node_tp; \
if ((_np = _p + 1) == &node_tv[NODE_TV_SZ]) \
_np = node_tv; \
! } while (atomic_cas_ptr(&node_tp, _p, _np) != _p); \
_p->node = (p); \
_p->action = (a); \
_p->ref = (p) ? (p)->ref : 0; \
_p->cnt = (p) ? (p)->cnt : 0; \
_p->cpu = CPU->cpu_seqid; \
*** 783,793 ****
\
do { \
_p = door_tp; \
if ((_np = _p + 1) == &door_tv[DOOR_TV_SZ]) \
_np = door_tv; \
! } while (casptr(&door_tp, _p, _np) != _p); \
_p->cp = _cp; \
_p->np = _req_np; \
_p->action = (a); \
_p->ref = _req_np ? _req_np->ref : 0; \
if ((io)) { \
--- 783,793 ----
\
do { \
_p = door_tp; \
if ((_np = _p + 1) == &door_tv[DOOR_TV_SZ]) \
_np = door_tv; \
! } while (atomic_cas_ptr(&door_tp, _p, _np) != _p); \
_p->cp = _cp; \
_p->np = _req_np; \
_p->action = (a); \
_p->ref = _req_np ? _req_np->ref : 0; \
if ((io)) { \
*** 985,995 ****
if (old & DCB_COUNT_USELOCK) { \
readers += old & DCB_COUNT_MASK; \
continue; \
} \
new = old | DCB_COUNT_USELOCK; \
! while (cas32(rp, old, new) != old) { \
old = *rp; \
new = old | DCB_COUNT_USELOCK; \
} \
readers += (new & DCB_COUNT_MASK); \
} \
--- 985,995 ----
if (old & DCB_COUNT_USELOCK) { \
readers += old & DCB_COUNT_MASK; \
continue; \
} \
new = old | DCB_COUNT_USELOCK; \
! while (atomic_cas_32(rp, old, new) != old) { \
old = *rp; \
new = old | DCB_COUNT_USELOCK; \
} \
readers += (new & DCB_COUNT_MASK); \
} \
*** 1008,1018 ****
int new; \
uint32_t *rp = &nca_gv[cpu].dcb_readers; \
int old = *rp; \
\
new = old & ~DCB_COUNT_USELOCK; \
! while (cas32(rp, old, new) != old) { \
old = *rp; \
new = old & ~DCB_COUNT_USELOCK; \
} \
} \
mutex_exit(&nca_dcb_lock); \
--- 1008,1018 ----
int new; \
uint32_t *rp = &nca_gv[cpu].dcb_readers; \
int old = *rp; \
\
new = old & ~DCB_COUNT_USELOCK; \
! while (atomic_cas_32(rp, old, new) != old) { \
old = *rp; \
new = old & ~DCB_COUNT_USELOCK; \
} \
} \
mutex_exit(&nca_dcb_lock); \
*** 1541,1551 ****
\
do { \
_p = conn_tp; \
if ((_np = _p + 1) == &con_tv[CON_TV_SZ]) \
_np = con_tv; \
! } while (casptr(&conn_tp, _p, _np) != _p); \
_p->conn = (p); \
_p->action = (a); \
_p->ref = (p)->ref; \
_p->cpu = CPU->cpu_seqid; \
NCA_CONN_T_TRACE_STK(); \
--- 1541,1551 ----
\
do { \
_p = conn_tp; \
if ((_np = _p + 1) == &con_tv[CON_TV_SZ]) \
_np = con_tv; \
! } while (atomic_cas_ptr(&conn_tp, _p, _np) != _p); \
_p->conn = (p); \
_p->action = (a); \
_p->ref = (p)->ref; \
_p->cpu = CPU->cpu_seqid; \
NCA_CONN_T_TRACE_STK(); \
*** 1763,1773 ****
do { \
_otp = nca_counter_tp; \
_ntp = _otp + 1; \
if (_ntp == &nca_counter_tv[NCA_COUNTER_TRACE_SZ]) \
_ntp = nca_counter_tv; \
! } while (casptr((void *)&nca_counter_tp, (void *)_otp, \
(void *)_ntp) != (void *)_otp); \
_ntp->t = gethrtime(); \
_ntp->p = p; \
_ntp->v = v; \
_ntp->nv = _nv; \
--- 1763,1773 ----
do { \
_otp = nca_counter_tp; \
_ntp = _otp + 1; \
if (_ntp == &nca_counter_tv[NCA_COUNTER_TRACE_SZ]) \
_ntp = nca_counter_tv; \
! } while (atomic_cas_ptr((void *)&nca_counter_tp, (void *)_otp, \
(void *)_ntp) != (void *)_otp); \
_ntp->t = gethrtime(); \
_ntp->p = p; \
_ntp->v = v; \
_ntp->nv = _nv; \