Go to the documentation of this file.00001
00031 #ifndef _VCOM_H_
00032 #define _VCOM_H_
00033
00034 #include <maloc/maloc_base.h>
00035
00036 #include <maloc/vsys.h>
00037
00039 #define VCOM_MPI_TAG 111
00040
00041
00042
00043
00044
00045
00046
00050 typedef struct Vcom {
00051
00052 int mpi_rank;
00053 int mpi_size;
00055 int type;
00059 int error;
00061 void *core;
00063 } Vcom;
00064
00065
00066
00067
00068
00069
00070
00071 #if !defined(VINLINE_MALOC)
00072 #else
00073 #endif
00074
00075
00077 VEXTERNC int Vcom_init(int *argc, char ***argv);
00079 VEXTERNC int Vcom_finalize(void);
00080
00082 VEXTERNC Vcom* Vcom_ctor(int commtype);
00084 VEXTERNC int Vcom_ctor2(Vcom* thee, int commtype);
00086 VEXTERNC void Vcom_dtor(Vcom **thee);
00088 VEXTERNC void Vcom_dtor2(Vcom *thee);
00089
00091 VEXTERNC int Vcom_send(Vcom *thee, int des, void *buf, int len, int type,
00092 int block);
00094 VEXTERNC int Vcom_recv(Vcom *thee, int src, void *buf, int len, int type,
00095 int block);
00097 VEXTERNC int Vcom_getCount(Vcom *thee, int src, int *length, int type);
00099 VEXTERNC int Vcom_reduce(Vcom *thee, void *sendbuf, void *recvbuf, int length,
00100 int type, int op);
00102 VEXTERNC int Vcom_size(Vcom *thee);
00104 VEXTERNC int Vcom_resize(Vcom *thee, int newsize);
00106 VEXTERNC int Vcom_rank(Vcom *thee);
00108 VEXTERNC int Vcom_barr(Vcom *thee);
00109
00110 #endif
00111