| true | 3141 | | pvm_spawn(file, argv, flags, where, count, tids) | | | 3142 | | char *file; | | | 3143 | | char **argv; | | | 3144 | | int flags; | | | 3145 | | char *where; | | | 3146 | | int count; | | | 3147 | | int *tids; | | | 3148 | | { | | | 3149 | | int sbf, rbf; | | | 3150 | | int ictx; | | | 3151 | | int cc; | | | 3152 | | int i, n; | | | 3153 | | char **ep; | | | 3154 | | int *tidlist = 0; | | | 3155 | | char *p; | | | 3156 | | char buf[TEV_MASK_LENGTH + 20];
| | | 3157 | | TEV_DECLS
| | | 3158 | | | | | 3159 | | if (p = getenv("PVMTASK")) | | | 3160 | | i = pvmstrtoi(p) | flags; | | | 3161 | | else | | | 3162 | | i = flags; | | | 3163 | | | | | 3164 | | if (TEV_EXCLUSIVE) {
| | | 3165 | | if (TEV_DO_TRACE(TEV_SPAWN,TEV_EVENT_ENTRY)) {
| | | 3166 | | TEV_PACK_STRING( TEV_DID_SE, TEV_DATA_SCALAR,
| | | 3167 | | file ? file : "", 1, 1 ); | | | 3168 | | TEV_PACK_STRING( TEV_DID_SW, TEV_DATA_SCALAR,
| | | 3169 | | where ? where : "", 1, 1 ); | | | 3170 | | TEV_PACK_INT( TEV_DID_SF, TEV_DATA_SCALAR, &i, 1, 1 );
| | | 3171 | | TEV_PACK_INT( TEV_DID_SC, TEV_DATA_SCALAR, &count, 1, 1 );
| | | 3172 | | TEV_FIN;
| | | 3173 | | } | | | 3174 | | } | | | 3175 | | | | | 3176 | | if (!(cc = BEATASK)) {
| | | 3177 | | if (count < 1) | | | 3178 | | cc = PvmBadParam;
| | | 3179 | | | | | 3180 | | else { | | | 3181 | | sbf = pvm_setsbuf(pvm_mkbuf(PvmDataFoo));
| | | 3182 | | rbf = pvm_setrbuf(0); | | | 3183 | | | | | 3184 | | pvm_pkstr(file); | | | 3185 | | pvm_pkint(&i, 1, 1); | | | 3186 | | pvm_pkstr(where ? where : ""); | | | 3187 | | pvm_pkint(&count, 1, 1); | | | 3188 | | if (argv) | | | 3189 | | for (n = 0; argv[n]; n++); | | | 3190 | | else | | | 3191 | | n = 0; | | | 3192 | | pvm_pkint(&n, 1, 1); | | | 3193 | | for (i = 0; i < n; i++) | | | 3194 | | pvm_pkstr(argv[i]); | | | 3195 | | | | | 3196 | | pvm_pkint( &(pvmctrc.outtid), 1, 1 ); | | | 3197 | | pvm_pkint( &(pvmctrc.outctx), 1, 1 ); | | | 3198 | | pvm_pkint( &(pvmctrc.outtag), 1, 1 ); | | | 3199 | | pvm_pkint( &(pvmctrc.trctid), 1, 1 ); | | | 3200 | | pvm_pkint( &(pvmctrc.trcctx), 1, 1 ); | | | 3201 | | pvm_pkint( &(pvmctrc.trctag), 1, 1 ); | | | 3202 | | |
| | 3204 | | pvm_pkint(&n, 1, 1); | | | 3205 | | n -= 4; | | | 3206 | | sprintf(buf, "PVMTMASK=%s", pvmctrc.tmask); | | | 3207 | | pvm_pkstr(buf); | | | 3208 | | sprintf(buf, "PVMTRCBUF=%d", pvmctrc.trcbuf); | | | 3209 | | pvm_pkstr(buf); | | | 3210 | | sprintf(buf, "PVMTRCOPT=%d", pvmctrc.trcopt); | | | 3211 | | pvm_pkstr(buf); | | | 3212 | | sprintf(buf, "PVMCTX=0x%x", pvmmyctx); | | | 3213 | | pvm_pkstr(buf); | | | 3214 | | if (n > 0) { | | | 3215 | | for (i = 0; i < n; i++) | | ep is uninitialized | 3216 | | pvm_pkstr(ep[i]); |
|