static ucs_status_t ucp_tag_eager_contig_zcopy_multi(uct_pending_req_t *self) { ucp_request_t *req = ucs_container_of(self, ucp_request_t, send.uct); ucp_eager_first_hdr_t first_hdr; first_hdr.super.super.tag = req->send.tag; first_hdr.total_len = req->send.length; return ucp_do_am_zcopy_multi(self, UCP_AM_ID_EAGER_FIRST, UCP_AM_ID_EAGER_MIDDLE, UCP_AM_ID_EAGER_LAST, &first_hdr, sizeof(first_hdr), &first_hdr.super, sizeof(first_hdr.super), ucp_tag_eager_contig_zcopy_req_complete); }
static ucs_status_t ucp_tag_eager_sync_zcopy_multi(uct_pending_req_t *self) { ucp_request_t *req = ucs_container_of(self, ucp_request_t, send.uct); ucp_eager_sync_first_hdr_t first_hdr; first_hdr.super.super.super.tag = req->send.tag; first_hdr.super.total_len = req->send.length; first_hdr.req.sender_uuid = req->send.ep->worker->uuid; first_hdr.req.reqptr = (uintptr_t)req; return ucp_do_am_zcopy_multi(self, UCP_AM_ID_EAGER_SYNC_FIRST, UCP_AM_ID_EAGER_MIDDLE, UCP_AM_ID_EAGER_LAST, &first_hdr, sizeof(first_hdr), &first_hdr.super.super, sizeof(first_hdr.super.super), ucp_tag_eager_sync_zcopy_req_complete); }
static ucs_status_t ucp_tag_eager_zcopy_multi(uct_pending_req_t *self) { ucp_request_t *req = ucs_container_of(self, ucp_request_t, send.uct); ucp_eager_first_hdr_t first_hdr; ucp_eager_middle_hdr_t middle_hdr; first_hdr.super.super.tag = req->send.tag.tag; first_hdr.total_len = req->send.length; first_hdr.msg_id = req->send.tag.message_id; middle_hdr.msg_id = req->send.tag.message_id; middle_hdr.offset = req->send.state.dt.offset; return ucp_do_am_zcopy_multi(self, UCP_AM_ID_EAGER_FIRST, UCP_AM_ID_EAGER_MIDDLE, UCP_AM_ID_EAGER_MIDDLE, &first_hdr, sizeof(first_hdr), &middle_hdr, sizeof(middle_hdr), ucp_proto_am_zcopy_req_complete, 1); }