-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpvm3.h
More file actions
244 lines (219 loc) · 9.04 KB
/
Copy pathpvm3.h
File metadata and controls
244 lines (219 loc) · 9.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
/*
* PVM 3.2: Parallel Virtual Machine System 3.2
* University of Tennessee, Knoxville TN.
* Oak Ridge National Laboratory, Oak Ridge TN.
* Emory University, Atlanta GA.
* Authors: A. L. Beguelin, J. J. Dongarra, G. A. Geist,
* W. C. Jiang, R. J. Manchek, B. K. Moore, and V. S. Sunderam
* (C) 1992 All Rights Reserved
*
* NOTICE
*
* Permission to use, copy, modify, and distribute this software and
* its documentation for any purpose and without fee is hereby granted
* provided that the above copyright notice appear in all copies and
* that both the copyright notice and this permission notice appear in
* supporting documentation.
*
* Neither the Institutions (Emory University, Oak Ridge National
* Laboratory, and University of Tennessee) nor the Authors make any
* representations about the suitability of this software for any
* purpose. This software is provided ``as is'' without express or
* implied warranty.
*
* PVM 3.2 was funded in part by the U.S. Department of Energy, the
* National Science Foundation and the State of Tennessee.
*/
/*
* pvm3.h
*
* Libpvm3 includes.
*
$Log$
*/
#ifndef _PVM3_H_
#define _PVM3_H_
/*
* Data packing styles for pvm_initsend()
*/
#define PvmDataDefault 0
#define PvmDataRaw 1
#define PvmDataInPlace 2
#define PvmDataFoo 3
/*
* pvm_spawn options
*/
#define PvmTaskDefault 0
#define PvmTaskHost 1 /* specify host */
#define PvmTaskArch 2 /* specify architecture */
#define PvmTaskDebug 4 /* start task in debugger */
#define PvmTaskTrace 8 /* process generates trace data */
/* for MPP ports */
#define PvmMppFront 16 /* spawn task on service node */
#define PvmHostCompl 32 /* complement host set */
/*
* pvm_notify types
*/
#define PvmTaskExit 1 /* on task exit */
#define PvmHostDelete 2 /* on host fail/delete */
#define PvmHostAdd 3 /* on host startup */
/*
* for pvm_setopt and pvm_getopt
*/
#define PvmRoute 1 /* routing policy */
#define PvmDontRoute 1 /* don't allow direct task-task links */
#define PvmAllowDirect 2 /* allow direct links, but don't request */
#define PvmRouteDirect 3 /* request direct links */
#define PvmDebugMask 2 /* debugmask */
#define PvmAutoErr 3 /* auto error reporting */
#define PvmOutputTid 4 /* stdout device for children */
#define PvmOutputCode 5
#define PvmTraceTid 6 /* trace device for children */
#define PvmTraceCode 7
#define PvmFragSize 8 /* message fragment size */
/*
* Libpvm error codes
*/
#define PvmOk 0 /* okay */
/* reserve -1 */
#define PvmBadParam -2 /* bad parameter (neg msg id, etc) */
#define PvmMismatch -3 /* barrier count mismatch */
#define PvmNoData -5 /* read past end of buffer */
#define PvmNoHost -6 /* no such host */
#define PvmNoFile -7 /* no such executable */
#define PvmNoMem -10 /* can't get memory */
#define PvmBadMsg -12 /* received msg can't be decoded */
#define PvmSysErr -14 /* can't contact our pvmd/some system error */
#define PvmNoBuf -15 /* no current buffer */
#define PvmNoSuchBuf -16 /* bad message id */
#define PvmNullGroup -17 /* null group name is illegal */
#define PvmDupGroup -18 /* already in group */
#define PvmNoGroup -19 /* no group with name */
#define PvmNotInGroup -20 /* task not in group */
#define PvmNoInst -21 /* no such instance in group */
#define PvmHostFail -22 /* host failed */
#define PvmNoParent -23 /* no parent task */
#define PvmNotImpl -24 /* function not implemented */
#define PvmDSysErr -25 /* pvmd system error */
#define PvmBadVersion -26 /* pvmd-pvmd protocol version mismatch */
#define PvmOutOfRes -27 /* out of resources */
#define PvmDupHost -28 /* host already configured */
#define PvmCantStart -29 /* failed to exec new slave pvmd */
#define PvmAlready -30 /* already doing operation */
#define PvmNoTask -31 /* no such task */
#define PvmNoEntry -32 /* no such name, index pair */
#define PvmDupEntry -33 /* name, index pair already exists */
/*
* returned by pvm_config()
*/
struct hostinfo {
int hi_tid; /* pvmd tid */
char *hi_name; /* host name */
char *hi_arch; /* host arch */
int hi_speed; /* cpu relative speed */
};
/*
* returned by pvm_tasks()
*/
struct taskinfo {
int ti_tid; /* task id */
int ti_ptid; /* parent tid */
int ti_host; /* pvmd tid */
int ti_flag; /* status flags */
char *ti_a_out; /* a.out name */
};
#ifdef __ProtoGlarp__
#undef __ProtoGlarp__
#endif
#if defined(__STDC__) || defined(__cplusplus)
#define __ProtoGlarp__(x) x
#else
#define __ProtoGlarp__(x) ()
#endif
#ifdef __cplusplus
extern "C" {
#endif
int pvm_advise __ProtoGlarp__(( int what )); /* TB REMOVED */
int pvm_addhosts __ProtoGlarp__(( char **names, int count, int *svp ));
int pvm_barrier __ProtoGlarp__(( char *group, int count ));
int pvm_bcast __ProtoGlarp__(( char *group, int code ));
int pvm_bufinfo __ProtoGlarp__(( int mid, int *len, int *code, int *tid ));
int pvm_config __ProtoGlarp__(( int *nhostp, int *narchp,
struct hostinfo **hostp ));
int pvm_delete __ProtoGlarp__(( char *name, int req ));
int pvm_delhosts __ProtoGlarp__(( char **names, int count, int *svp ));
int pvm_exit __ProtoGlarp__(( void ));
int pvm_freebuf __ProtoGlarp__(( int mid ));
int pvm_getfds __ProtoGlarp__(( int **fds ));
int pvm_getinst __ProtoGlarp__(( char *group, int tid ));
int pvm_getopt __ProtoGlarp__(( int what ));
int pvm_getrbuf __ProtoGlarp__(( void ));
int pvm_getsbuf __ProtoGlarp__(( void ));
int pvm_gettid __ProtoGlarp__(( char *group, int inst ));
int pvm_gsize __ProtoGlarp__(( char *group ));
int pvm_halt __ProtoGlarp__(( void ));
int pvm_initsend __ProtoGlarp__(( int encod ));
int pvm_insert __ProtoGlarp__(( char *name, int req, int data ));
int pvm_joingroup __ProtoGlarp__(( char *group ));
int pvm_kill __ProtoGlarp__(( int tid ));
int pvm_lookup __ProtoGlarp__(( char *name, int req, int *datap ));
int pvm_lvgroup __ProtoGlarp__(( char *group ));
int pvm_mcast __ProtoGlarp__(( int *tids, int count, int code ));
int pvm_mkbuf __ProtoGlarp__(( int encod ));
int pvm_mstat __ProtoGlarp__(( char *host ));
int pvm_mytid __ProtoGlarp__(( void ));
int pvm_notify __ProtoGlarp__(( int what, int code,
int count, int *vals ));
int pvm_nrecv __ProtoGlarp__(( int tid, int code ));
int pvm_packf __ProtoGlarp__(( const char *fmt, ... ));
int pvm_parent __ProtoGlarp__(( void ));
int pvm_perror __ProtoGlarp__(( char *msg ));
int pvm_pkbyte __ProtoGlarp__(( char *cp, int cnt, int std ));
int pvm_pkcplx __ProtoGlarp__(( float *xp, int cnt, int std ));
int pvm_pkdcplx __ProtoGlarp__(( double *zp, int cnt, int std ));
int pvm_pkdouble __ProtoGlarp__(( double *dp, int cnt, int std ));
int pvm_pkfloat __ProtoGlarp__(( float *fp, int cnt, int std ));
int pvm_pkint __ProtoGlarp__(( int *np, int cnt, int std ));
int pvm_pklong __ProtoGlarp__(( long *np, int cnt, int std ));
int pvm_pkshort __ProtoGlarp__(( short *np, int cnt, int std ));
int pvm_pkstr __ProtoGlarp__(( char *cp ));
int pvm_pkuint __ProtoGlarp__(( unsigned int *np, int cnt, int std ));
int pvm_pkulong __ProtoGlarp__(( unsigned long *np, int cnt, int std ));
int pvm_pkushort __ProtoGlarp__(( unsigned short *np, int cnt, int std ));
int pvm_probe __ProtoGlarp__(( int tid, int code ));
int pvm_pstat __ProtoGlarp__(( int tid ));
int pvm_recv __ProtoGlarp__(( int tid, int code ));
int (*pvm_recvf __ProtoGlarp__(( int (*newf)(int, int, int) )) )();
int pvm_send __ProtoGlarp__(( int tid, int code ));
int pvm_sendsig __ProtoGlarp__(( int tid, int signum ));
int pvm_serror __ProtoGlarp__(( int how )); /* TB REMOVED */
int pvm_setdebug __ProtoGlarp__(( int mask )); /* TB REMOVED */
int pvm_setopt __ProtoGlarp__(( int what, int val ));
int pvm_setrbuf __ProtoGlarp__(( int mid ));
int pvm_setsbuf __ProtoGlarp__(( int mid ));
int pvm_spawn __ProtoGlarp__(( char *file, char **argv, int flags,
char *where, int count, int *tids ));
int pvm_start_pvmd __ProtoGlarp__(( int argc, char **argv, int block ));
int pvm_tasks __ProtoGlarp__(( int where, int *ntaskp,
struct taskinfo **taskp ));
int pvm_tickle __ProtoGlarp__(( int narg, int *argp,
int *nresp, int *resp ));
int pvm_tidtohost __ProtoGlarp__(( int tid ));
int pvm_unpackf __ProtoGlarp__(( const char *fmt, ... ));
int pvm_upkbyte __ProtoGlarp__(( char *cp, int cnt, int std ));
int pvm_upkcplx __ProtoGlarp__(( float *xp, int cnt, int std ));
int pvm_upkdcplx __ProtoGlarp__(( double *zp, int cnt, int std ));
int pvm_upkdouble __ProtoGlarp__(( double *dp, int cnt, int std ));
int pvm_upkfloat __ProtoGlarp__(( float *fp, int cnt, int std ));
int pvm_upkint __ProtoGlarp__(( int *np, int cnt, int std ));
int pvm_upklong __ProtoGlarp__(( long *np, int cnt, int std ));
int pvm_upkshort __ProtoGlarp__(( short *np, int cnt, int std ));
int pvm_upkstr __ProtoGlarp__(( char *cp ));
int pvm_upkuint __ProtoGlarp__(( unsigned int *np, int cnt, int std ));
int pvm_upkulong __ProtoGlarp__(( unsigned long *np, int cnt, int std ));
int pvm_upkushort __ProtoGlarp__(( unsigned short *np, int cnt, int std ));
char *pvm_version __ProtoGlarp__(( void ));
#ifdef __cplusplus
}
#endif
#endif /*_PVM3_H_*/