1 /* 2 * Copyright (C) Advanced Micro Devices, Inc. 2019. ALL RIGHTS RESERVED. 3 * See file LICENSE for terms. 4 */ 5 6 #ifndef UCT_ROCM_COPY_EP_H 7 #define UCT_ROCM_COPY_EP_H 8 9 #include <uct/api/uct.h> 10 #include <uct/base/uct_iface.h> 11 #include <ucs/type/class.h> 12 13 14 typedef struct uct_rocm_copy_ep_addr { 15 int ep_id; 16 } uct_rocm_copy_ep_addr_t; 17 18 typedef struct uct_rocm_copy_ep { 19 uct_base_ep_t super; 20 struct uct_rocm_copy_ep *next; 21 } uct_rocm_copy_ep_t; 22 23 UCS_CLASS_DECLARE_NEW_FUNC(uct_rocm_copy_ep_t, uct_ep_t, const uct_ep_params_t *); 24 UCS_CLASS_DECLARE_DELETE_FUNC(uct_rocm_copy_ep_t, uct_ep_t); 25 26 ucs_status_t uct_rocm_copy_ep_get_zcopy(uct_ep_h tl_ep, 27 const uct_iov_t *iov, size_t iovcnt, 28 uint64_t remote_addr, uct_rkey_t rkey, 29 uct_completion_t *comp); 30 31 ucs_status_t uct_rocm_copy_ep_put_zcopy(uct_ep_h tl_ep, 32 const uct_iov_t *iov, size_t iovcnt, 33 uint64_t remote_addr, uct_rkey_t rkey, 34 uct_completion_t *comp); 35 36 ucs_status_t uct_rocm_copy_ep_put_short(uct_ep_h tl_ep, const void *buffer, 37 unsigned length, uint64_t remote_addr, 38 uct_rkey_t rkey); 39 40 ucs_status_t uct_rocm_copy_ep_get_short(uct_ep_h tl_ep, void *buffer, 41 unsigned length, uint64_t remote_addr, 42 uct_rkey_t rkey); 43 44 #endif 45