root/oshmem/mca/atomic/ucx/atomic_ucx.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * Copyright (c) 2015      Mellanox Technologies, Inc.
   3  *                         All rights reserved. 
   4  * $COPYRIGHT$
   5  * 
   6  * Additional copyrights may follow
   7  * 
   8  * $HEADER$
   9  */
  10 
  11 #ifndef MCA_ATOMIC_UCX_H
  12 #define MCA_ATOMIC_UCX_H
  13 
  14 #include "oshmem_config.h"
  15 
  16 #include "opal/mca/common/ucx/common_ucx.h"
  17 #include "opal/mca/mca.h"
  18 #include "oshmem/mca/atomic/atomic.h"
  19 #include "oshmem/util/oshmem_util.h"
  20 
  21 /* This component does uses SPML:UCX */
  22 #include "oshmem/mca/spml/ucx/spml_ucx.h"
  23 
  24 
  25 BEGIN_C_DECLS
  26 
  27 /* Globally exported variables */
  28 
  29 OSHMEM_MODULE_DECLSPEC extern mca_atomic_base_component_1_0_0_t
  30 mca_atomic_ucx_component;
  31 
  32 /* this component works with spml:ucx only */
  33 extern mca_spml_ucx_t *mca_spml_self;
  34 
  35 OSHMEM_DECLSPEC void atomic_ucx_lock(int pe);
  36 OSHMEM_DECLSPEC void atomic_ucx_unlock(int pe);
  37 
  38 /* API functions */
  39 
  40 int mca_atomic_ucx_startup(bool enable_progress_threads, bool enable_threads);
  41 int mca_atomic_ucx_finalize(void);
  42 mca_atomic_base_module_t*
  43 mca_atomic_ucx_query(int *priority);
  44 
  45 int mca_atomic_ucx_cswap(shmem_ctx_t ctx,
  46                          void *target,
  47                          uint64_t *prev,
  48                          uint64_t cond,
  49                          uint64_t value,
  50                          size_t size,
  51                          int pe);
  52 
  53 struct mca_atomic_ucx_module_t {
  54     mca_atomic_base_module_t super;
  55 };
  56 typedef struct mca_atomic_ucx_module_t mca_atomic_ucx_module_t;
  57 OBJ_CLASS_DECLARATION(mca_atomic_ucx_module_t);
  58 
  59 END_C_DECLS
  60 
  61 #endif /* MCA_ATOMIC_UCX_H */

/* [<][>][^][v][top][bottom][index][help] */