/** * Copyright (C) Mellanox Technologies Ltd. 2019. ALL RIGHTS RESERVED. * * See file LICENSE for terms. */ #ifndef UCP_PROTO_AM_H_ #define UCP_PROTO_AM_H_ #include #include /** * Header segment for a transaction */ typedef struct { uintptr_t ep_ptr; uintptr_t reqptr; } UCS_S_PACKED ucp_request_hdr_t; /** * Header for transaction acknowledgment */ typedef struct { uint64_t reqptr; ucs_status_t status; } UCS_S_PACKED ucp_reply_hdr_t; ucs_status_t ucp_do_am_single(uct_pending_req_t *self, uint8_t am_id, uct_pack_callback_t pack_cb, ssize_t max_packed_size); ucs_status_t ucp_proto_progress_am_single(uct_pending_req_t *self); void ucp_proto_am_zcopy_completion(uct_completion_t *self, ucs_status_t status); void ucp_proto_am_zcopy_req_complete(ucp_request_t *req, ucs_status_t status); #endif