1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 #ifndef MCA_ATOMIC_BASE_H
  13 #define MCA_ATOMIC_BASE_H
  14 
  15 #include "oshmem_config.h"
  16 
  17 #include "oshmem/mca/atomic/atomic.h"
  18 #include "opal/class/opal_list.h"
  19 
  20 
  21 
  22 
  23 
  24 BEGIN_C_DECLS
  25 
  26 int mca_atomic_base_find_available(bool enable_progress_threads,
  27                                    bool enable_threads);
  28 
  29 int mca_atomic_base_select(void);
  30 
  31 
  32 
  33 
  34 OSHMEM_DECLSPEC extern mca_base_framework_t oshmem_atomic_base_framework;
  35 
  36 
  37 #ifdef __BASE_FILE__
  38 #define __ATOMIC_FILE__ __BASE_FILE__
  39 #else
  40 #define __ATOMIC_FILE__ __FILE__
  41 #endif
  42 
  43 #ifdef OPAL_ENABLE_DEBUG
  44 #define ATOMIC_VERBOSE(level, ...) \
  45     oshmem_output_verbose(level, oshmem_atomic_base_framework.framework_output, \
  46         "%s:%d - %s()", __ATOMIC_FILE__, __LINE__, __func__, __VA_ARGS__)
  47 #else
  48 #define ATOMIC_VERBOSE(level, ...)
  49 #endif
  50 
  51 #define ATOMIC_ERROR(...) \
  52     oshmem_output(oshmem_atomic_base_framework.framework_output, \
  53         "Error %s:%d - %s()", __ATOMIC_FILE__, __LINE__, __func__, __VA_ARGS__)
  54 
  55 END_C_DECLS
  56 
  57 #endif