root/oshmem/mca/sshmem/base/sshmem_base_wrappers.c

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

DEFINITIONS

This source file includes following definitions.
  1. mca_sshmem_segment_create
  2. mca_sshmem_segment_attach
  3. mca_sshmem_segment_detach
  4. mca_sshmem_unlink
  5. oshmem_get_unique_file_name
  6. shmem_ds_reset

   1 /*
   2  * Copyright (c) 2014      Mellanox Technologies, Inc.
   3  *                         All rights reserved.
   4  * Copyright (c) 2019      Research Organization for Information Science
   5  *                         and Technology (RIST).  All rights reserved.
   6  * $COPYRIGHT$
   7  *
   8  * Additional copyrights may follow
   9  *
  10  * $HEADER$
  11  */
  12 
  13 #include "oshmem_config.h"
  14 
  15 #include "opal/constants.h"
  16 
  17 #include "oshmem/mca/sshmem/sshmem.h"
  18 #include "oshmem/mca/sshmem/base/base.h"
  19 
  20 int
  21 mca_sshmem_segment_create(map_segment_t *ds_buf,
  22                           const char *file_name,
  23                           size_t size, long hint)
  24 {
  25     if (!mca_sshmem_base_selected) {
  26         return OSHMEM_ERROR;
  27     }
  28 
  29     return mca_sshmem_base_module->segment_create(ds_buf, file_name, size, hint);
  30 }
  31 
  32 void *
  33 mca_sshmem_segment_attach(map_segment_t *ds_buf, sshmem_mkey_t *mkey)
  34 {
  35     if (!mca_sshmem_base_selected) {
  36         return NULL;
  37     }
  38 
  39     return mca_sshmem_base_module->segment_attach(ds_buf, mkey);
  40 }
  41 
  42 int
  43 mca_sshmem_segment_detach(map_segment_t *ds_buf, sshmem_mkey_t *mkey)
  44 {
  45     if (!mca_sshmem_base_selected) {
  46         return OSHMEM_ERROR;
  47     }
  48 
  49     return mca_sshmem_base_module->segment_detach(ds_buf, mkey);
  50 }
  51 
  52 int
  53 mca_sshmem_unlink(map_segment_t *ds_buf)
  54 {
  55     if (!mca_sshmem_base_selected) {
  56         return OSHMEM_ERROR;
  57     }
  58 
  59     return mca_sshmem_base_module->unlink(ds_buf);
  60 }
  61 
  62 
  63 char * oshmem_get_unique_file_name(uint64_t pe)
  64 {
  65     char *file_name = NULL;
  66 
  67     assert(mca_sshmem_base_backing_file_dir);
  68 
  69     if (NULL == (file_name = calloc(OPAL_PATH_MAX, sizeof(char)))) {
  70         return NULL;
  71     }
  72 
  73     snprintf(file_name, OPAL_PATH_MAX, "%s/shmem_job_%u_pe_%llu", mca_sshmem_base_backing_file_dir, OMPI_PROC_MY_NAME->jobid, (unsigned long long)pe);
  74 
  75     return file_name;
  76 }
  77 
  78 
  79 void
  80 shmem_ds_reset(map_segment_t *ds_buf)
  81 {
  82     MAP_SEGMENT_RESET_FLAGS(ds_buf);
  83     ds_buf->seg_id = MAP_SEGMENT_SHM_INVALID;
  84     ds_buf->super.va_base = 0;
  85     ds_buf->super.va_end = 0;
  86     ds_buf->seg_size = 0;
  87     ds_buf->type = MAP_SEGMENT_UNKNOWN;
  88 }
  89 

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