00001 #ifndef _CKRDMAUTILS_H
00002 #define _CKRDMAUTILS_H
00003 
00004 #include "conv-header.h"
00005 
00006 
00007 typedef struct ncpystruct{
00008 
00009   
00010 #if CMK_CONVERSE_MPI
00011   char core[CmiMsgHeaderSizeBytes];
00012   int tag;
00013 #endif
00014 
00015   const void *srcPtr;
00016   int srcPe;
00017   char *srcLayerInfo;
00018   int srcLayerSize;
00019   char *srcAck;
00020   int srcAckSize;
00021   int srcSize;
00022   unsigned short int srcRegMode;
00023   unsigned short int srcDeregMode;
00024   unsigned short int isSrcRegistered;
00025   const void *srcRef;
00026 
00027   const void *destPtr;
00028   int destPe;
00029   char *destLayerInfo;
00030   int destLayerSize;
00031   char *destAck;
00032   int destAckSize;
00033   int destSize;
00034   unsigned short int destRegMode;
00035   unsigned short int destDeregMode;
00036   unsigned short int isDestRegistered;
00037   const void *destRef;
00038 
00039   unsigned char opMode; 
00040                         
00041                         
00042                         
00043 
00044   
00045   unsigned char ackMode; 
00046                          
00047                          
00048 
00049   unsigned char freeMe;  
00050                          
00051 
00052   void *refPtr;
00053 
00054   int ncpyOpInfoSize;
00055 
00056 }NcpyOperationInfo;
00057 
00058 #ifdef __cplusplus
00059 extern "C" {
00060 #endif
00061 
00062 int getNcpyOpInfoTotalSize(
00063   int srcLayerSize,
00064   int srcAckSize,
00065   int destLayerSize,
00066   int destAckSize);
00067 
00068 void setNcpyOpInfo(
00069   const void *srcPtr,
00070   char *srcLayerInfo,
00071   int srcLayerSize,
00072   char *srcAck,
00073   int srcAckSize,
00074   int srcSize,
00075   unsigned short int srcRegMode,
00076   unsigned short int srcDeregMode,
00077   unsigned short int isSrcRegistered,
00078   int srcPe,
00079   const void *srcRef,
00080   const void *destPtr,
00081   char *destLayerInfo,
00082   int destLayerSize,
00083   char *destAck,
00084   int destAckSize,
00085   int destSize,
00086   unsigned short int destRegMode,
00087   unsigned short int destDeregMode,
00088   unsigned short int isdestRegistered,
00089   int destPe,
00090   const void *destRef,
00091   NcpyOperationInfo *ncpyOpInfo);
00092 
00093 void resetNcpyOpInfoPointers(NcpyOperationInfo *ncpyOpInfo);
00094 
00095 void setReverseModeForNcpyOpInfo(NcpyOperationInfo *ncpyOpInfo);
00096 
00097 #ifdef __cplusplus
00098 }
00099 #endif
00100 
00101 #endif