libxmp/libxmpf in Omni Compiler  1.3.4
xmpco_get_stmt.c File Reference
#include <assert.h>
#include "xmpco_internal.h"
#include "_xmpco_putget.h"
Include dependency graph for xmpco_get_stmt.c:

Macros

#define SCHEME_DirectGetsub   10
 
#define SCHEME_BufferGetsub   11
 
#define SCHEME_ExtraDirectGetsub   12
 
#define SCHEME_ExtraBufferGetsub   13
 

Functions

void _XMPCO_coarrayInit_getsub ()
 
void XMPCO_GET_arrayStmt (CoarrayInfo_t *descPtr, char *baseAddr, int element, int coindex, char *localAddr, int rank, int skip[], int skip_local[], int count[])
 

Variables

void * _localBuf_desc
 
size_t _localBuf_offset
 
char * _localBuf_baseAddr
 
int _localBuf_size
 
char * _localBuf_name
 
void * _remote_desc
 
char * _remote_baseAddr
 
int _remote_coindex
 

Macro Definition Documentation

◆ SCHEME_BufferGetsub

#define SCHEME_BufferGetsub   11

◆ SCHEME_DirectGetsub

#define SCHEME_DirectGetsub   10

◆ SCHEME_ExtraBufferGetsub

#define SCHEME_ExtraBufferGetsub   13

◆ SCHEME_ExtraDirectGetsub

#define SCHEME_ExtraDirectGetsub   12

Function Documentation

◆ _XMPCO_coarrayInit_getsub()

void _XMPCO_coarrayInit_getsub ( )
Here is the call graph for this function:

◆ XMPCO_GET_arrayStmt()

void XMPCO_GET_arrayStmt ( CoarrayInfo_t descPtr,
char *  baseAddr,
int  element,
int  coindex,
char *  localAddr,
int  rank,
int  skip[],
int  skip_local[],
int  count[] 
)
94 {
95  int coindex0 = _XMPCO_get_initial_image_withDescPtr(coindex, descPtr);
96 
97  if (element % COMM_UNIT != 0) {
98  _XMPCO_fatal("violation of boundary writing to a coindexed variable\n"
99  " xmpf_coarray_getsub_array_, " __FILE__);
100  return;
101  }
102 
103  /*--------------------------------------*\
104  * Check whether the local address local *
105  * is already registered for DMA and, *
106  * if so, get the descriptor, etc. *
107  \*--------------------------------------*/
108  void *descDMA;
109  size_t offsetDMA;
110  char *orgAddrDMA;
111  char *nameDMA;
112  BOOL avail_DMA;
113 
114  descDMA = _XMPCO_get_isEagerCommMode() ? NULL :
115  _XMPCO_get_desc_fromLocalAddr(localAddr, &orgAddrDMA, &offsetDMA, &nameDMA);
116  avail_DMA = descDMA ? TRUE : FALSE;
117 
118  /*--------------------------------------*\
119  * select scheme *
120  \*--------------------------------------*/
121  int scheme = _select_scheme_getsub_array(avail_DMA);
122 
123  /*--------------------------------------*\
124  * action *
125  \*--------------------------------------*/
126  switch (scheme) {
127  case SCHEME_DirectGetsub:
128  _XMPCO_debugPrint("SCHEME_DirectGetsub/array selected\n");
129  _getsubCoarray_DMA(descPtr, baseAddr, coindex0, localAddr,
130  element, rank, skip, skip_local, count,
131  descDMA, offsetDMA, nameDMA);
132  break;
133 
134  case SCHEME_BufferGetsub:
135  _XMPCO_debugPrint("SCHEME_BufferGetsub/array selected\n");
136  _getsubCoarray_buffer(descPtr, baseAddr, coindex0, localAddr,
137  element, rank, skip, skip_local, count);
138  break;
139 
140  default:
141  _XMPCO_fatal("unexpected scheme number in " __FILE__);
142  }
143 }
Here is the call graph for this function:

Variable Documentation

◆ _localBuf_baseAddr

char* _localBuf_baseAddr

◆ _localBuf_desc

void* _localBuf_desc

◆ _localBuf_name

char* _localBuf_name

◆ _localBuf_offset

size_t _localBuf_offset

◆ _localBuf_size

int _localBuf_size

◆ _remote_baseAddr

char* _remote_baseAddr

◆ _remote_coindex

int _remote_coindex

◆ _remote_desc

void* _remote_desc
_XMPCO_get_desc_fromLocalAddr
void * _XMPCO_get_desc_fromLocalAddr(char *localAddr, char **orgAddr, size_t *offset, char **name)
Definition: xmpco_alloc.c:784
FALSE
#define FALSE
Definition: xmpco_internal.h:16
_XMPCO_debugPrint
void _XMPCO_debugPrint(char *format,...)
Definition: xmpco_msg.c:20
_localBuf_name
char * _localBuf_name
Definition: xmpco_get_stmt.c:69
_localBuf_desc
void * _localBuf_desc
Definition: xmpco_get_stmt.c:65
_XMPCO_get_initial_image_withDescPtr
int _XMPCO_get_initial_image_withDescPtr(int image, CoarrayInfo_t *descPtr)
Definition: xmpco_lib.c:246
SCHEME_DirectGetsub
#define SCHEME_DirectGetsub
Definition: xmpco_get_stmt.c:11
_XMPCO_get_isEagerCommMode
BOOL _XMPCO_get_isEagerCommMode(void)
Definition: xmpco_params.c:89
_XMPCO_get_infoOfLocalBuf
void * _XMPCO_get_infoOfLocalBuf(char **baseAddr, size_t *offset, char **name)
Definition: xmpco_alloc.c:770
_localBuf_offset
size_t _localBuf_offset
Definition: xmpco_get_stmt.c:66
BOOL
#define BOOL
Definition: xmpco_internal.h:14
_XMPCO_fatal
void _XMPCO_fatal(char *format,...)
Definition: xmpco_msg.c:4
TRUE
#define TRUE
Definition: xmpco_internal.h:15
_localBuf_size
int _localBuf_size
Definition: xmpco_get_stmt.c:68
SCHEME_BufferGetsub
#define SCHEME_BufferGetsub
Definition: xmpco_get_stmt.c:12
_XMPCO_get_localBufSize
size_t _XMPCO_get_localBufSize(void)
Definition: xmpco_params.c:84
COMM_UNIT
#define COMM_UNIT
COMM_UNIT : minimum unit of size for PUT/GET communication MALLOC_UNIT : minimum unit of size for mem...
Definition: xmpco_params.h:37
_localBuf_baseAddr
char * _localBuf_baseAddr
Definition: xmpco_get_stmt.c:67