home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / adaptor / dalib / pvm3 / pvm3.h < prev    next >
C/C++ Source or Header  |  1993-08-29  |  9KB  |  245 lines

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