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