This source file includes following definitions.
- _segment_ds_reset
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 #ifndef PMIX_PSHMEM_H
  13 #define PMIX_PSHMEM_H
  14 
  15 #include <src/include/pmix_config.h>
  16 
  17 #include <pmix_common.h>
  18 #include "src/mca/mca.h"
  19 #include "src/mca/base/pmix_mca_base_var.h"
  20 #include "src/mca/base/pmix_mca_base_framework.h"
  21 
  22 
  23 BEGIN_C_DECLS
  24 
  25 #if !defined(MAP_FAILED)
  26 #    define MAP_FAILED ((char*)-1)
  27 #endif 
  28 
  29 #define PMIX_SHMEM_DS_ID_INVALID -1
  30 
  31 typedef enum {
  32     PMIX_PSHMEM_RONLY,
  33     PMIX_PSHMEM_RW
  34 } pmix_pshmem_access_mode_t;
  35 
  36 typedef struct pmix_pshmem_seg_t {
  37     
  38     pid_t seg_cpid;
  39     
  40     int seg_id;
  41     
  42     size_t seg_size;
  43     
  44     unsigned char *seg_base_addr;
  45     char seg_name[PMIX_PATH_MAX];
  46 } pmix_pshmem_seg_t;
  47 
  48 
  49 static inline void _segment_ds_reset(pmix_pshmem_seg_t *sm_seg)
  50 {
  51     sm_seg->seg_cpid = 0;
  52     sm_seg->seg_id = PMIX_SHMEM_DS_ID_INVALID;
  53     sm_seg->seg_size = 0;
  54     memset(sm_seg->seg_name, '\0', PMIX_PATH_MAX);
  55     sm_seg->seg_base_addr = (unsigned char *)MAP_FAILED;
  56 }
  57 
  58 
  59 typedef pmix_status_t (*pmix_pshmem_base_module_init_fn_t)(void);
  60 
  61 
  62 typedef void (*pmix_pshmem_base_module_finalize_fn_t)(void);
  63 
  64 
  65 
  66 
  67 
  68 
  69 
  70 
  71 
  72 
  73 
  74 
  75 
  76 
  77 typedef int (*pmix_pshmem_base_module_segment_create_fn_t)(pmix_pshmem_seg_t *sm_seg,
  78                                                            const char *file_name, size_t size);
  79 
  80 
  81 
  82 
  83 
  84 
  85 
  86 
  87 
  88 
  89 typedef int (*pmix_pshmem_base_module_segment_attach_fn_t)(pmix_pshmem_seg_t *sm_seg,
  90                                                            pmix_pshmem_access_mode_t sm_mode);
  91 
  92 
  93 
  94 
  95 
  96 
  97 
  98 
  99 
 100 typedef int (*pmix_pshmem_base_module_segment_detach_fn_t)(pmix_pshmem_seg_t *sm_seg);
 101 
 102 
 103 
 104 
 105 
 106 
 107 
 108 
 109 
 110 typedef int (*pmix_pshmem_base_module_unlink_fn_t)(pmix_pshmem_seg_t *sm_seg);
 111 
 112 
 113 
 114 
 115 
 116 typedef struct {
 117     const char *name;
 118     pmix_pshmem_base_module_init_fn_t            init;
 119     pmix_pshmem_base_module_finalize_fn_t        finalize;
 120     pmix_pshmem_base_module_segment_create_fn_t  segment_create;
 121     pmix_pshmem_base_module_segment_attach_fn_t  segment_attach;
 122     pmix_pshmem_base_module_segment_detach_fn_t  segment_detach;
 123     pmix_pshmem_base_module_unlink_fn_t          segment_unlink;
 124 } pmix_pshmem_base_module_t;
 125 
 126 
 127 struct pmix_pshmem_base_component_t {
 128     pmix_mca_base_component_t                       base;
 129     pmix_mca_base_component_data_t                  data;
 130     int                                             priority;
 131 };
 132 
 133 typedef struct pmix_pshmem_base_component_t pmix_pshmem_base_component_t;
 134 
 135 PMIX_EXPORT extern pmix_pshmem_base_module_t pmix_pshmem;
 136 
 137 
 138 
 139 
 140 #define PMIX_PSHMEM_BASE_VERSION_1_0_0 \
 141     PMIX_MCA_BASE_VERSION_1_0_0("pshmem", 1, 0, 0)
 142 
 143 END_C_DECLS
 144 
 145 #endif