00001
00002 #ifndef __CMID_MANY_TO_MANY_H__
00003 #define __CMID_MANY_TO_MANY_H__
00004
00005 #ifndef CMI_DIRECT_MANY_TO_MANY_DEFINED
00006 #define CmiDirect_manytomany_allocate_handle() NULL
00007
00008 #define CmiDirect_manytomany_initialize_recvbase(a, b, c, d, e, f, g)
00009
00010 #define CmiDirect_manytomany_initialize_recv(a, b, c, d, e, f)
00011
00012 #define CmiDirect_manytomany_initialize_sendbase(a, b, c, d, e, f, g)
00013
00014 #define CmiDirect_manytomany_initialize_send(a, b, c, d, e, f)
00015
00016 #define CmiDirect_manytomany_start(a, b)
00017 #else
00018
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022
00023 typedef void (* CmiDirectM2mHandler) (void *context);
00024 void * CmiDirect_manytomany_allocate_handle ();
00025
00026 void CmiDirect_manytomany_initialize_recvbase ( void * handle,
00027 unsigned tag,
00028 CmiDirectM2mHandler donecb,
00029 void * context,
00030 char * rcvbuf,
00031 unsigned nranks,
00032 unsigned myIdx );
00033
00034 void CmiDirect_manytomany_initialize_recv ( void * handle,
00035 unsigned tag,
00036 unsigned index,
00037 unsigned displ,
00038 unsigned bytes,
00039 unsigned rank );
00040
00041 void CmiDirect_manytomany_initialize_sendbase ( void * handle,
00042 unsigned tag,
00043 CmiDirectM2mHandler donecb,
00044 void * context,
00045 char * sndbuf,
00046 unsigned nranks,
00047 unsigned myIdx );
00048
00049 void CmiDirect_manytomany_initialize_send ( void * handle,
00050 unsigned tag,
00051 unsigned idx,
00052 unsigned displ,
00053 unsigned bytes,
00054 unsigned rank );
00055
00056 void CmiDirect_manytomany_start ( void * handle,
00057 unsigned tag );
00058
00059 #ifdef __cplusplus
00060 }
00061 #endif
00062
00063 #endif //end CMI_DIRECT_MANY_TO_MANY_DEFINED
00064
00065 #endif //end __CMID_MANY_TO_MANY_H__