00001 #ifndef _CONV_RDMA_H
00002 #define _CONV_RDMA_H
00003
00004 #include "cmirdmautils.h"
00005
00006 typedef void (*RdmaEMAckCallerFn)(int destPe, void *token);
00007 typedef void (*RdmaAckCallerFn)(void *token);
00008
00009
00010 void CmiSetRdmaCommonInfo(void *info, const void *ptr, int size);
00011 int CmiGetRdmaCommonInfoSize(void);
00012
00013 void CmiSetRdmaBufferInfo(void *info, const void *ptr, int size, unsigned short int mode);
00014
00015
00016 void CmiSetDirectNcpyAckHandler(RdmaAckCallerFn fn);
00017
00018
00019 void CmiSetEMNcpyAckHandler(RdmaEMAckCallerFn fn, RdmaAckCallerFn bcastFn, RdmaAckCallerFn bcastArrayFn);
00020
00021
00022
00023
00024
00025
00026 void CmiIssueRget(NcpyOperationInfo *ncpyOpInfo);
00027
00028
00029
00030
00031
00032
00033
00034 void CmiIssueRput(NcpyOperationInfo *ncpyOpInfo);
00035
00036 void CmiDeregisterMem(const void *ptr, void *info, int pe, unsigned short int mode);
00037
00038 #if CMK_USE_CMA
00039 void CmiIssueRgetUsingCMA(
00040 const void* srcAddr,
00041 void *srcInfo,
00042 int srcPe,
00043 const void* destAddr,
00044 void *destInfo,
00045 int destPe,
00046 int size);
00047
00048 void CmiIssueRputUsingCMA(
00049 const void* destAddr,
00050 void *destInfo,
00051 int destPe,
00052 const void* srcAddr,
00053 void *srcInfo,
00054 int srcPe,
00055 int size);
00056 #endif
00057
00058
00059 void *CmiRdmaAlloc(int size);
00060
00061 int CmiDoesCMAWork(void);
00062
00063
00064 void CmiInvokeRemoteAckHandler(int pe, void *ref);
00065
00066
00067 void CmiInvokeBcastAckHandler(int pe, void *ref);
00068
00069 void CmiInvokeBcastPostAckHandler(int pe, void *ref);
00070
00071
00072 void CmiOnesidedDirectInit(void);
00073
00074
00075 void CmiForwardProcBcastMsg(int size, char *msg);
00076 void CmiForwardNodeBcastMsg(int size, char *msg);
00077
00078 void CmiForwardMsgToPeers(int size, char *msg);
00079
00080 #if CMK_REG_REQUIRED
00081 void CmiInvokeRemoteDeregAckHandler(int pe, NcpyOperationInfo *info);
00082 #endif
00083
00084 #endif