4beaf1eb42b4b21c0204da477c082598f2eb7482
[charm.git] / src / conv-core / cmidirectmanytomany.h
1
2 #ifndef   __CMID_MANY_TO_MANY_H__
3 #define   __CMID_MANY_TO_MANY_H__
4
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8
9   typedef  void (* CmiDirectM2mHandler) (void *context);
10   void * CmiDirect_manytomany_allocate_handle ();
11   
12   void   CmiDirect_manytomany_initialize_recvbase ( void                 * handle,
13                                                     unsigned               tag,
14                                                     char                 * rcvbuf,
15                                                     CmiDirectM2mHandler    donecb,
16                                                     void                 * context,
17                                                     unsigned               nranks,
18                                                     unsigned               myIdx );
19   
20   void   CmiDirect_manytomany_initialize_recv ( void          * handle,
21                                                 unsigned        tag,
22                                                 unsigned        index,
23                                                 unsigned        displ,
24                                                 unsigned        bytes,
25                                                 unsigned        rank );
26   
27   void   CmiDirect_manytomany_initialize_sendbase  ( void                 * handle,
28                                                      unsigned               tag,
29                                                      CmiDirectM2mHandler    donecb,
30                                                      void                 * context,
31                                                      char                 * sndbuf,
32                                                      unsigned               nranks,
33                                                      unsigned               myIdx );
34   
35   void   CmiDirect_manytomany_initialize_send ( void        * handle,
36                                                 unsigned      tag, 
37                                                 unsigned      idx,
38                                                 unsigned      displ,
39                                                 unsigned      bytes,
40                                                 unsigned      rank );
41   
42   void   CmiDirect_manytomany_start ( void       * handle,
43                                       unsigned     tag );
44   
45 #ifdef __cplusplus
46 }
47 #endif
48
49 #endif