modified the registration of the converse handlers for propagate and propagate_frag.
[charm.git] / src / conv-com / comlib.h
1
2 #ifndef COMLIB_H
3 #define COMLIB_H
4
5 #include <converse.h>
6 #include <stdlib.h>
7 #include "charm++.h"
8
9 #if CMK_BLUEGENE_CHARM
10 #define CmiReservedHeaderSize   CmiBlueGeneMsgHeaderSizeBytes
11 #else
12 #define CmiReservedHeaderSize   CmiExtHeaderSizeBytes
13 #endif
14
15 extern int comm_debug;
16 #if CMK_OPTIMIZE
17 inline void ComlibPrintf(...) {}
18 #else
19 #define ComlibPrintf if(comm_debug) CmiPrintf
20 #endif
21
22 enum{BCAST=0,TREE, GRID, HCUBE};  
23
24 #define USE_TREE 1            //Organizes the all to all as a tree
25 #define USE_MESH 2            //Virtual topology is a mesh here
26 #define USE_HYPERCUBE 3       //Virtual topology is a hypercube
27 #define USE_DIRECT 4          //A dummy strategy that directly forwards 
28                               //messages without any processing.
29 #define USE_GRID 5            //Virtual topology is a 3d grid
30 #define USE_LINEAR 6          //Virtual topology is a linear array
31
32 #define IS_MULTICAST -1
33
34 #define MAXNUMMSGS 1000
35 //#define MAXNUMSTRATEGY 10
36 #define MSGSIZETHRESHOLD 5000000
37 #define MAXBUFSIZE 65536
38 #define PERSISTENT_BUFSIZE 131072
39
40 typedef struct {
41     //int srcpe;
42     //short ImplType;
43     //short ImplIndex;
44     //int callbackHandler;
45     //short SwitchVal;
46     //int NumMembers;
47     //CmiGroup grp;
48
49     int refno;
50     int instanceID;  
51     char isAllToAll;
52 } comID;
53
54
55 typedef struct {
56   int msgsize;
57   void *msg;
58 } msgstruct ;
59
60 typedef struct { 
61     char core[CmiReservedHeaderSize];
62     comID id;
63     int magic;
64     int refno;
65 } DummyMsg ;
66
67 //The handler to invoke the RecvManyMsg method of router
68 CkpvExtern(int, RecvHandle);
69 //The handler to invoke the ProcManyMsg method of router
70 CkpvExtern(int, ProcHandle);
71 //The handler to invoke the DoneEP method of router
72 CkpvExtern(int, DummyHandle);
73
74 //Dummy msg handle.
75 //Just deletes and ignores the message
76 CkpvExtern(int, RecvdummyHandle);
77
78
79 #include "router.h"
80
81 #endif
82         
83