text: /**
   * Copyright (C) Mellanox Technologies Ltd. 2017.  ALL RIGHTS RESERVED.
   * See file LICENSE for terms.
   */
  
  #ifndef UCT_RDMACM_MD_H_
  #define UCT_RDMACM_MD_H_
  
  #include "rdmacm_def.h"
  #include <uct/base/uct_md.h>
  #include <ucs/sys/sock.h>
  #include <ucs/time/time.h>
  #include <rdma/rdma_cma.h>
  
  /**
   * RDMACM memory domain.
   */
  typedef struct uct_rdmacm_md {
      uct_md_t                 super;
      double                   addr_resolve_timeout;
  } uct_rdmacm_md_t;
  
  /**
   * RDMACM memory domain configuration.
   */
  typedef struct uct_rdmacm_md_config {
      uct_md_config_t          super;
      double                   addr_resolve_timeout;
  } uct_rdmacm_md_config_t;
  
  extern uct_component_t uct_rdmacm_component;
  
  ucs_status_t uct_rdmacm_md_query(uct_md_h md, uct_md_attr_t *md_attr);
  
  int uct_rdmacm_is_sockaddr_accessible(uct_md_h md, const ucs_sock_addr_t *sockaddr,
                                        uct_sockaddr_accessibility_t mode);
  
  #endif
  