ucs_status_t uct_rc_mlx5_ep_atomic_fadd64(uct_ep_h tl_ep, uint64_t add, uint64_t remote_addr, uct_rkey_t rkey, uint64_t *result, uct_completion_t *comp) { return uct_rc_mlx5_ep_atomic(ucs_derived_of(tl_ep, uct_rc_mlx5_ep_t), MLX5_OPCODE_ATOMIC_FA, result, 0, sizeof(uint64_t), remote_addr, rkey, 0, 0, htonll(add), comp); }
ucs_status_t uct_rc_mlx5_ep_atomic_swap32(uct_ep_h tl_ep, uint32_t swap, uint64_t remote_addr, uct_rkey_t rkey, uint32_t *result, uct_completion_t *comp) { return uct_rc_mlx5_ep_atomic(ucs_derived_of(tl_ep, uct_rc_mlx5_ep_t), MLX5_OPCODE_ATOMIC_MASKED_CS, result, sizeof(uint32_t), uct_rc_ep_atomic_handler_32_be1, remote_addr, rkey, 0, 0, htonl(swap), comp); }
ucs_status_t uct_rc_mlx5_ep_atomic_cswap64(uct_ep_h tl_ep, uint64_t compare, uint64_t swap, uint64_t remote_addr, uct_rkey_t rkey, uint64_t *result, uct_completion_t *comp) { return uct_rc_mlx5_ep_atomic(ucs_derived_of(tl_ep, uct_rc_mlx5_ep_t), MLX5_OPCODE_ATOMIC_CS, result, sizeof(uint64_t), uct_rc_ep_atomic_handler_64_be1, remote_addr, rkey, 0, htonll(compare), htonll(swap), comp); }
ucs_status_t uct_rc_mlx5_ep_atomic_cswap32(uct_ep_h tl_ep, uint32_t compare, uint32_t swap, uint64_t remote_addr, uct_rkey_t rkey, uint32_t *result, uct_completion_t *comp) { return uct_rc_mlx5_ep_atomic(ucs_derived_of(tl_ep, uct_rc_mlx5_ep_t), MLX5_OPCODE_ATOMIC_MASKED_CS, result, 1, sizeof(uint32_t), remote_addr, rkey, UCS_MASK(32), htonl(compare), htonl(swap), comp); }