ucs_status_t uct_mm_ep_atomic_add32(uct_ep_h tl_ep, uint32_t add, uint64_t remote_addr, uct_rkey_t rkey) { uint32_t *ptr = (uint32_t *)(rkey + remote_addr); ucs_atomic_add32(ptr, add); uct_mm_trace_data(remote_addr, rkey, "ATOMIC_ADD32 [add %"PRIu32"]", add); return UCS_OK; }
ucs_status_t uct_sm_ep_atomic_add32(uct_ep_h tl_ep, uint32_t add, uint64_t remote_addr, uct_rkey_t rkey) { uint32_t *ptr = (uint32_t *)(rkey + remote_addr); ucs_atomic_add32(ptr, add); uct_sm_ep_trace_data(remote_addr, rkey, "ATOMIC_ADD32 [add %"PRIu32"]", add); UCT_TL_EP_STAT_ATOMIC(ucs_derived_of(tl_ep, uct_base_ep_t)); return UCS_OK; }
static void ucs_async_handler_hold(ucs_async_handler_t *handler) { ucs_atomic_add32(&handler->refcount, 1); }