Struct ucp_dt_local_sgl_t

struct ucp_dt_local_sgl_t

Local SGL descriptor for multi-element operations.

This structure describes per-element local buffers, lengths, and memory handles. Element i describes a local buffer at buffers[i] of lengths[i] bytes with memory handle memhs[i].

The descriptor ucp_dt_local_sgl_t itself is copied by the library, so the caller may release it after the call returns. However, the arrays buffers, lengths, and memhs are not copied and must remain valid until the data transfer request is completed.

Pass as the buffer parameter to ucp_put_nbx with ucp_request_param_t::datatype set to ucp_dt_make_sgl().

Note

Currently only N->N mapping is supported: both sides must use the SGL datatype with equal counts and matching lengths.

Note

All buffers in the descriptor must share the same memory type (see ucs_memory_type_t), otherwise UCS_ERR_INVALID_PARAM is returned.

Public Members

uint64_t field_mask

Valid fields, using bits from ucp_dt_local_sgl_field

void *const *buffers

Array of local buffer pointers

const size_t *lengths

Array of transfer lengths in bytes

ucp_mem_h const *memhs

Array of local memory handles