Charj: Construct Range when a range is given.
[charm.git] / src / langs / simplemsg / sm.h
1 #ifndef _SM_H
2 #define _SM_H
3
4 #define SMWildCard CmmWildCard
5
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9
10 extern void
11 SMInit(char**);
12
13 extern void 
14 GeneralSend(int pe, int ntags, int *tags, void *buf, int buflen);
15
16 extern int 
17 GeneralBroadcast(int rootpe, int ntags, int *tags, 
18                  void *buf, int buflen, int *rtags);
19
20 extern int 
21 GeneralRecv(int ntags, int *tags, void *buf, int buflen, int *rtags);
22
23 #ifdef __cplusplus
24 }
25 #endif
26
27 static void send(int pe, int tag, int buflen, void *buf)
28
29   int tags[2];
30   tags[0] = CmiMyPe();
31   tags[1] = (tag); 
32   GeneralSend(pe, 2, tags, buf, buflen); 
33 }
34
35 static int broadcast(int rootpe, int tag, int buflen, void *buf, int *rtag)
36
37   int CsmTag=(tag); 
38   return GeneralBroadcast(rootpe, 1, &CsmTag, buf, buflen, rtag); 
39 }
40
41 static int recv(int pe, int tag, int buflen, void *buf)
42 {
43   int tags[2];
44   int rtag;
45   tags[0] = pe;
46   tags[1] = tag;
47   return GeneralRecv(2, tags, buf, buflen, &rtag); 
48 }
49
50 #endif