Esempio n. 1
0
static uintptr_t uct_ugni_safe_swap_pointers(void *address, uintptr_t new_value)
{
    if (sizeof(void*) == 4) {
        return ucs_atomic_swap32(address, new_value);
    } else {
        return ucs_atomic_swap64(address, new_value);
    }
}
Esempio n. 2
0
File: mm_ep.c Progetto: biddisco/ucx
ucs_status_t uct_mm_ep_atomic_swap64(uct_ep_h tl_ep, uint64_t swap,
                                     uint64_t remote_addr, uct_rkey_t rkey,
                                     uint64_t *result, uct_completion_t *comp)
{
    uint64_t *ptr = (uint64_t *)(rkey + remote_addr);
    *result = ucs_atomic_swap64(ptr, swap);
    uct_mm_trace_data(remote_addr, rkey,
                      "ATOMIC_SWAP64 [swap %"PRIu64" result %"PRIu64"]",
                      swap, *result);
    return UCS_OK;
}