00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 #ifndef _PVM3_H_
00042
00043 #define _PVM3_H_
00044
00045
00046
00047
00048
00049 #define PVM_VER "3.4.2"
00050 #define PVM_MAJOR_VERSION 3
00051 #define PVM_MINOR_VERSION 4
00052 #define PVM_PATCH_VERSION 2
00053
00054 #ifndef WIN32
00055 #include <sys/time.h>
00056 #else
00057 #include "pvmwin.h"
00058 #include <sys/timeb.h>
00059 #include <time.h>
00060 #endif
00061
00062
00063
00064
00065
00066 #define PvmDataDefault 0
00067 #define PvmDataRaw 1
00068 #define PvmDataInPlace 2
00069 #define PvmDataFoo PvmDataDefault
00070 #define PvmDataTrace 4
00071
00072
00073
00074
00075
00076 #define PvmTaskDefault 0
00077 #define PvmTaskHost 1
00078 #define PvmTaskArch 2
00079 #define PvmTaskDebug 4
00080 #define PvmTaskTrace 8
00081
00082 #define PvmMppFront 16
00083 #define PvmHostCompl 32
00084
00085 #define PvmNoSpawnParent 64
00086
00087
00088
00089
00090
00091 #define PvmTaskExit 1
00092 #define PvmHostDelete 2
00093 #define PvmHostAdd 3
00094 #define PvmRouteAdd 4
00095 #define PvmRouteDelete 5
00096
00097
00098
00099 #define PvmNotifyCancel 256
00100
00101
00102
00103
00104
00105 #define PvmRoute 1
00106 #define PvmDontRoute 1
00107 #define PvmAllowDirect 2
00108 #define PvmRouteDirect 3
00109 #define PvmDebugMask 2
00110 #define PvmAutoErr 3
00111 #define PvmOutputTid 4
00112 #define PvmOutputCode 5
00113 #define PvmTraceTid 6
00114 #define PvmTraceCode 7
00115 #define PvmTraceBuffer 8
00116 #define PvmTraceOptions 9
00117 #define PvmTraceFull 1
00118 #define PvmTraceTime 2
00119 #define PvmTraceCount 3
00120 #define PvmFragSize 10
00121 #define PvmResvTids 11
00122 #define PvmSelfOutputTid 12
00123 #define PvmSelfOutputCode 13
00124 #define PvmSelfTraceTid 14
00125 #define PvmSelfTraceCode 15
00126 #define PvmSelfTraceBuffer 16
00127 #define PvmSelfTraceOptions 17
00128 #define PvmShowTids 18
00129 #define PvmPollType 19
00130 #define PvmPollConstant 1
00131 #define PvmPollSleep 2
00132 #define PvmPollTime 20
00133 #define PvmOutputContext 21
00134 #define PvmTraceContext 22
00135 #define PvmSelfOutputContext 23
00136 #define PvmSelfTraceContext 24
00137 #define PvmNoReset 25
00138
00139
00140
00141
00142
00143 #define PvmTaskSelf 0
00144 #define PvmTaskChild 1
00145
00146
00147
00148
00149
00150 #define PvmBaseContext 0
00151
00152
00153
00154
00155
00156 #define PvmMboxDefault 0
00157
00158
00159 #define PvmMboxPersistent 1
00160 #define PvmMboxMultiInstance 2
00161 #define PvmMboxOverWritable 4
00162 #define PvmMboxFirstAvail 8
00163 #define PvmMboxReadAndDelete 16
00164
00165 #define PvmMboxWaitForInfo 32
00166
00167
00168 #define PVMNORESETCLASS "###_PVM_NO_RESET_###"
00169
00170 #define PVMHOSTERCLASS "###_PVM_HOSTER_###"
00171
00172 #define PVMTASKERCLASS "###_PVM_TASKER_###"
00173
00174 #define PVMTRACERCLASS "###_PVM_TRACER_###"
00175
00176 #define PVMRMCLASS "###_PVM_RM_###"
00177
00178
00179
00180
00181
00182 #define PvmOk 0
00183 #define PvmBadParam -2
00184 #define PvmMismatch -3
00185 #define PvmOverflow -4
00186 #define PvmNoData -5
00187 #define PvmNoHost -6
00188 #define PvmNoFile -7
00189 #define PvmDenied -8
00190 #define PvmNoMem -10
00191 #define PvmBadMsg -12
00192 #define PvmSysErr -14
00193 #define PvmNoBuf -15
00194 #define PvmNoSuchBuf -16
00195 #define PvmNullGroup -17
00196 #define PvmDupGroup -18
00197 #define PvmNoGroup -19
00198 #define PvmNotInGroup -20
00199 #define PvmNoInst -21
00200 #define PvmHostFail -22
00201 #define PvmNoParent -23
00202 #define PvmNotImpl -24
00203 #define PvmDSysErr -25
00204 #define PvmBadVersion -26
00205 #define PvmOutOfRes -27
00206 #define PvmDupHost -28
00207 #define PvmCantStart -29
00208 #define PvmAlready -30
00209 #define PvmNoTask -31
00210 #define PvmNotFound -32
00211 #define PvmExists -33
00212 #define PvmHostrNMstr -34
00213 #define PvmParentNotSet -35
00214
00215
00216
00217
00218 #define PvmNoEntry PvmNotFound
00219 #define PvmDupEntry PvmDenied
00220
00221
00222
00223
00224
00225 #define PVM_STR 0
00226 #define PVM_BYTE 1
00227 #define PVM_SHORT 2
00228 #define PVM_INT 3
00229 #define PVM_FLOAT 4
00230 #define PVM_CPLX 5
00231 #define PVM_DOUBLE 6
00232 #define PVM_DCPLX 7
00233 #define PVM_LONG 8
00234 #define PVM_USHORT 9
00235 #define PVM_UINT 10
00236 #define PVM_ULONG 11
00237
00238
00239
00240
00241
00242 struct pvmhostinfo {
00243 int hi_tid;
00244 char *hi_name;
00245 char *hi_arch;
00246 int hi_speed;
00247 int hi_dsig;
00248 };
00249
00250
00251
00252
00253
00254 struct pvmtaskinfo {
00255 int ti_tid;
00256 int ti_ptid;
00257 int ti_host;
00258 int ti_flag;
00259 char *ti_a_out;
00260 int ti_pid;
00261 };
00262
00263
00264
00265
00266
00267 struct pvmminfo {
00268 int len;
00269 int ctx;
00270 int tag;
00271 int wid;
00272 int enc;
00273 int crc;
00274 int src;
00275 int dst;
00276 };
00277
00278
00279
00280
00281
00282 struct pvmmboxinfo {
00283 char *mi_name;
00284 int mi_nentries;
00285 int *mi_indices;
00286 int *mi_owners;
00287 int *mi_flags;
00288 };
00289
00290 #ifdef __ProtoGlarp__
00291 #undef __ProtoGlarp__
00292 #endif
00293 #if defined(__STDC__) || defined(__cplusplus)
00294 #define __ProtoGlarp__(x) x
00295 #else
00296 #define __ProtoGlarp__(x) ()
00297 #endif
00298
00299 #ifdef __cplusplus
00300 extern "C" {
00301 #endif
00302
00303 int pvm_addhosts __ProtoGlarp__((char **, int, int *));
00304 int pvm_addmhf __ProtoGlarp__((int, int, int, int (*)(int)));
00305 int pvm_archcode __ProtoGlarp__((char *));
00306 int pvm_barrier __ProtoGlarp__((char *, int));
00307 int pvm_bcast __ProtoGlarp__((char *, int));
00308 int pvm_bufinfo __ProtoGlarp__((int, int *, int *, int *));
00309 #if defined(EOF)
00310 int pvm_catchout __ProtoGlarp__((FILE *));
00311 #endif
00312 int pvm_config __ProtoGlarp__((int *, int *, struct pvmhostinfo **));
00313 int pvm_delhosts __ProtoGlarp__((char **, int, int *));
00314 int pvm_delinfo __ProtoGlarp__((char *, int, int));
00315 int pvm_delmhf __ProtoGlarp__((int));
00316 int pvm_exit __ProtoGlarp__((void));
00317 int pvm_export __ProtoGlarp__((char *));
00318 int pvm_freebuf __ProtoGlarp__((int));
00319 int pvm_freecontext __ProtoGlarp__((int));
00320 int pvm_gather __ProtoGlarp__((void *, void *, int, int, int, char *, int));
00321 int pvm_getcontext __ProtoGlarp__((void));
00322 int pvm_getfds __ProtoGlarp__((int **));
00323 int pvm_getinst __ProtoGlarp__((char *, int));
00324 int pvm_getminfo __ProtoGlarp__((int, struct pvmminfo *));
00325 int pvm_getnoresets __ProtoGlarp__((int **, int *));
00326 int pvm_getopt __ProtoGlarp__((int));
00327 int pvm_getrbuf __ProtoGlarp__((void));
00328 int pvm_getsbuf __ProtoGlarp__((void));
00329 int pvm_gettid __ProtoGlarp__((char *, int));
00330 int pvm_gsize __ProtoGlarp__((char *));
00331 int pvm_halt __ProtoGlarp__((void));
00332 int pvm_hostsync __ProtoGlarp__((int, struct timeval *, struct timeval *));
00333 int pvm_initsend __ProtoGlarp__((int));
00334 int pvm_joingroup __ProtoGlarp__((char *));
00335 int pvm_kill __ProtoGlarp__((int));
00336 int pvm_lvgroup __ProtoGlarp__((char *));
00337 int pvm_getmboxinfo __ProtoGlarp__((char *, int *, struct pvmmboxinfo **));
00338 int pvm_mcast __ProtoGlarp__((int *, int, int));
00339 int pvm_mkbuf __ProtoGlarp__((int));
00340 int pvm_mstat __ProtoGlarp__((char *));
00341 int pvm_mytid __ProtoGlarp__((void));
00342 int pvm_newcontext __ProtoGlarp__((void));
00343 int pvm_notify __ProtoGlarp__((int, int, int, int *));
00344 int pvm_nrecv __ProtoGlarp__((int, int));
00345 int pvm_packf __ProtoGlarp__((const char *, ...));
00346 int pvm_parent __ProtoGlarp__((void));
00347 int pvm_perror __ProtoGlarp__((char *));
00348 int pvm_pkbyte __ProtoGlarp__((char *, int, int));
00349 int pvm_pkcplx __ProtoGlarp__((float *, int, int));
00350 int pvm_pkdcplx __ProtoGlarp__((double *, int, int));
00351 int pvm_pkdouble __ProtoGlarp__((double *, int, int));
00352 int pvm_pkfloat __ProtoGlarp__((float *, int, int));
00353 int pvm_pkint __ProtoGlarp__((int *, int, int));
00354 int pvm_pklong __ProtoGlarp__((long *, int, int));
00355 int pvm_pkshort __ProtoGlarp__((short *, int, int));
00356 int pvm_pkstr __ProtoGlarp__((char *));
00357 int pvm_pkuint __ProtoGlarp__((unsigned int *, int, int));
00358 int pvm_pkulong __ProtoGlarp__((unsigned long *, int, int));
00359 int pvm_pkushort __ProtoGlarp__((unsigned short *, int, int));
00360 int pvm_precv __ProtoGlarp__((int, int, void *, int, int, int *, int *, int *));
00361 int pvm_probe __ProtoGlarp__((int, int));
00362 int pvm_psend __ProtoGlarp__((int, int, void *, int, int));
00363 int pvm_pstat __ProtoGlarp__((int));
00364 int pvm_putinfo __ProtoGlarp__((char *, int, int));
00365 int pvm_recv __ProtoGlarp__((int, int));
00366 int (*pvm_recvf __ProtoGlarp__((int (*)(int, int, int)))) ();
00367 int pvm_recvinfo __ProtoGlarp__((char *, int, int));
00368 int pvm_reduce __ProtoGlarp__((void (*)(int *, void *, void *, int *, int *),
00369 void *, int, int, int, char *, int));
00370
00371
00372
00373
00374 void PvmMax __ProtoGlarp__((int *, void *, void *, int *, int *));
00375 void PvmMin __ProtoGlarp__((int *, void *, void *, int *, int *));
00376 void PvmSum __ProtoGlarp__((int *, void *, void *, int *, int *));
00377 void PvmProduct __ProtoGlarp__((int *, void *, void *, int *, int *));
00378
00379 int pvm_reg_hoster __ProtoGlarp__((void));
00380 int pvm_reg_rm __ProtoGlarp__((struct pvmhostinfo **));
00381 int pvm_reg_tasker __ProtoGlarp__((void));
00382 int pvm_reg_tracer __ProtoGlarp__((int, int, int, int, char *, int, int));
00383 int pvm_scatter __ProtoGlarp__((void *, void *, int, int, int, char *, int));
00384 int pvm_send __ProtoGlarp__((int, int));
00385 int pvm_sendsig __ProtoGlarp__((int, int));
00386 int pvm_setcontext __ProtoGlarp__((int));
00387 int pvm_setminfo __ProtoGlarp__((int, struct pvmminfo *));
00388 int pvm_setopt __ProtoGlarp__((int, int));
00389 int pvm_setrbuf __ProtoGlarp__((int));
00390 int pvm_setsbuf __ProtoGlarp__((int));
00391 int pvm_siblings __ProtoGlarp__((int **));
00392 int pvm_spawn __ProtoGlarp__((char *, char **, int, char *, int, int *));
00393 int pvm_start_pvmd __ProtoGlarp__((int, char **, int));
00394 int pvm_tasks __ProtoGlarp__((int, int *, struct pvmtaskinfo **));
00395 int pvm_tickle __ProtoGlarp__((int, int *, int *, int *));
00396 int pvm_tidtohost __ProtoGlarp__((int));
00397 int pvm_trecv __ProtoGlarp__((int, int, struct timeval *));
00398 int pvm_unexport __ProtoGlarp__((char *));
00399 int pvm_unpackf __ProtoGlarp__((const char *, ...));
00400 int pvm_upkbyte __ProtoGlarp__((char *, int, int));
00401 int pvm_upkcplx __ProtoGlarp__((float *, int, int));
00402 int pvm_upkdcplx __ProtoGlarp__((double *, int, int));
00403 int pvm_upkdouble __ProtoGlarp__((double *, int, int));
00404 int pvm_upkfloat __ProtoGlarp__((float *, int, int));
00405 int pvm_upkint __ProtoGlarp__((int *, int, int));
00406 int pvm_upklong __ProtoGlarp__((long *, int, int));
00407 int pvm_upkshort __ProtoGlarp__((short *, int, int));
00408 int pvm_upkstr __ProtoGlarp__((char *));
00409 int pvm_upkuint __ProtoGlarp__((unsigned int *, int, int));
00410 int pvm_upkulong __ProtoGlarp__((unsigned long *, int, int));
00411 int pvm_upkushort __ProtoGlarp__((unsigned short *, int, int));
00412 char *pvm_version __ProtoGlarp__((void));
00413
00414
00415
00416
00417
00418
00419 #ifdef PVM33COMPAT
00420 int pvm_getmwid __ProtoGlarp__((int));
00421 int pvm_setmwid __ProtoGlarp__((int, int));
00422 #endif
00423
00424
00425 int pvm_delete __ProtoGlarp__((char *, int));
00426 int pvm_insert __ProtoGlarp__((char *, int, int));
00427 int pvm_lookup __ProtoGlarp__((char *, int, int *));
00428
00429 #ifdef __cplusplus
00430 }
00431 #endif
00432 #endif