00001
00038 #ifndef _VCOM_H_
00039 #define _VCOM_H_
00040
00041 #include <maloc/maloc_base.h>
00042
00043 #include <maloc/vsys.h>
00044
00046 #define VCOM_MPI_TAG 111
00047
00048
00049
00050
00051
00052
00053
00060 struct sVcom {
00061
00063 int mpi_rank;
00065 int mpi_size;
00066
00071 int type;
00073 int error;
00075 void *core;
00076
00077 };
00078
00085 typedef struct sVcom Vcom;
00086
00087
00088
00089
00090
00091
00092
00093 #if !defined(VINLINE_MALOC)
00094 #else
00095 #endif
00096
00097
00107 int Vcom_init(int *argc, char ***argv);
00108
00116 int Vcom_finalize(void);
00117
00127 Vcom* Vcom_ctor(int commtype);
00128
00140 int Vcom_ctor2(Vcom* thee, int commtype);
00141
00150 void Vcom_dtor(Vcom **thee);
00151
00161 void Vcom_dtor2(Vcom *thee);
00162
00177 int Vcom_send(Vcom *thee, int des, void *buf, int len, int type,
00178 int block);
00179
00197 int Vcom_recv(Vcom *thee, int src, void *buf, int len, int type,
00198 int block);
00199
00214 int Vcom_getCount(Vcom *thee, int src, int *length, int type);
00215
00237 int Vcom_reduce(Vcom *thee, void *sendbuf, void *recvbuf, int length,
00238 int type, int op);
00239
00248 int Vcom_size(Vcom *thee);
00249
00261 int Vcom_resize(Vcom *thee, int newsize);
00262
00271 int Vcom_rank(Vcom *thee);
00272
00281 int Vcom_barr(Vcom *thee);
00282
00283 #endif
00284
00285