This source file includes following definitions.
- mca_sshmem_segment_create
- mca_sshmem_segment_attach
- mca_sshmem_segment_detach
- mca_sshmem_unlink
- oshmem_get_unique_file_name
- shmem_ds_reset
1
2
3
4
5
6
7
8
9
10
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