| true | 121 | | trc_store_old_trace_event( ID, tsec, tusec, tid, eid ) | | | 122 | | TRC_ID ID; | | | 123 | | int tsec; | | | 124 | | int tusec; | | | 125 | | int tid; | | | 126 | | int eid; | | | 127 | | { | | | 128 | | static int *tids = (int *) NULL;
| | | 129 | | static int ntids = 0; | | | 130 | | | | | 131 | | TRC_TEVTASK TT; | | | | | ... | | | 148 | | int stid; | | | 149 | | int omit; | | | 150 | | int len; | | | 151 | | int buf; | | | 152 | | int num; | | | 153 | | int cc; | | | 154 | | int i; | | | 155 | | | | | 156 | | | | | 157 | | | | | 158 | | TT = trc_get_tevtask_tid( ID, tid ); | | | 159 | | | | | 160 | | omit = ( ID->trace_out == NULL
| | | 161 | | || ( TT != NULL && TRC_TASK_OMIT( TT ) ) )
| | | 162 | | ? TRC_TRUE : TRC_FALSE;
| | | 163 | | | | | 164 | | | | | 165 | | | | | 166 | | ecnt = 0; | | | 167 | | | | | 168 | | if ( !omit ) | | | 169 | | { | | | 170 | | | | | 171 | | | | | 172 | | if ( !( TRC_OLD_TEV_TRACE[ eid ] ) ) | | | 173 | | { | | | 174 | | fprintf( ID->trace_out, "\n" ); | | | 175 | | | | | 176 | | if ( ID->event_dump_hdr ) | | | 177 | | (ID->event_dump_hdr)( ID, tid ); | | | 178 | | | | | 179 | | fprintf( ID->trace_out, "#%d: %s\n", eid + 1, | | | 180 | | TRC_OLD_TRACE_DESCRIPTORS[ eid ] ); | | | 181 | | | | | 182 | | (TRC_OLD_TEV_TRACE[ eid ])++; | | | 183 | | } | | | 184 | | | | | 185 | | | | | 186 | | | | | 187 | | trc_update_trace_time( tsec, tusec ); | | | 188 | | | | | 189 | | | | | 190 | | | | | 191 | | if ( ID->event_dump_hdr ) | | | 192 | | (ID->event_dump_hdr)( ID, tid ); | | | 193 | | | | | 194 | | fprintf( ID->trace_out, "\"%s\" { %d, %d, %d", | | | 195 | | TRC_OLD_TEV_TRACE_NAMES[ eid ], tsec, tusec, tid ); | | | 196 | | } | | | 197 | | | | | 198 | | | | | 199 | | | | | 200 | | switch ( eid ) | | | 201 | | { | | | 202 | | case TRC_OLD_TEV_NEWTASK:
| | | 203 | | { | | | 204 | | if ( omit ) | | | 205 | | break; | | | 206 | | | | | 207 | | pvm_upkint( &ptid, 1, 1 ); | | | 208 | | pvm_upkint( &flags, 1, 1 ); | | | 209 | | pvm_upkstr( name ); | | | 210 | | | | | | | ... | | | 340 | | if ( omit ) | | | 341 | | break; | | | 342 | | | | | 343 | | pvm_upkint( &cc, 1, 1 ); | | | 344 | | | | | 345 | | fprintf( ID->trace_out, ", %d", cc ); | | | 346 | | | | | 347 | | break; | | | 348 | | } | | | 349 | | | | | 350 | | case TRC_OLD_TEV_SPAWN0:
| | | 351 | | { | | | 352 | | if ( omit ) | | | 353 | | break; | | | 354 | | | | | 355 | | pvm_upkstr( name ); | | | 356 | | pvm_upkint( &flags, 1, 1 ); | | | 357 | | pvm_upkstr( where ); |
| | 3047 | | | | | | | | | 3048 | | | | | | TEV_EXCLUSIVE;
| | | 3049 | | | | | | | | | 3050 | | | | | | authfn[0] = 0; | | | 3051 | | | | | | | | | 3052 | | | | | | #ifndef WIN32 | | | 3053 | | | | | | pvmmyupid = getpid(); | | | 3054 | | | | | | #else | | | 3055 | | | | | | pvmmyupid = _getpid(); | | | 3056 | | | | | | #endif | | | 3057 | | | | | | | | | 3058 | | | | | | | | | 3059 | | | | | | | | | 3060 | | | | | | | | | 3061 | | | | | | | | | 3062 | | | | | | | | | 3063 | | | | | | if (p = getenv("PVMEPID")) | | | 3064 | | | | | | cookie = atoi(p); | | | 3065 | | | | | | else | | | 3066 | | | | | | cookie = 0; | | | 3067 | | | | | | | | | 3068 | | | | | | | | | 3069 | | | | | | | | | 3070 | | | | | | #ifndef WIN32 | | | 3071 | | | | | | if ((pvm_useruid = geteuid()) == -1) { | | | 3072 | | | | | | pvmlogerror("can't getuid()\n"); | | | 3073 | | | | | | cc = PvmSysErr;
| | | 3074 | | | | | | goto bail2; | | | 3075 | | | | | | } | | | 3076 | | | | | | pvmchkuid( pvm_useruid ); | | | 3077 | | | | | | #else | | | 3078 | | | | | | if (!username) | | | 3079 | | | | | | username = MyGetUserName(); | | | 3080 | | | | | | #endif | | | 3081 | | | | | | | | | 3082 | | | | | | if (p = getenv("PVMTASKDEBUG")) { | | | 3083 | | | | | | pvmdebmask = pvmstrtoi(p); | | | 3084 | | | | | | if (pvmdebmask) { | | | 3085 | | | | | | pvmlogprintf("task debug mask is 0x%x (%s)\n", | | | 3086 | | | | | | pvmdebmask, debug_flags(pvmdebmask)); | | | 3087 | | | | | | } | | | 3088 | | | | | | } | | | 3089 | | | | | | | | | 3090 | | | | | | #ifndef IMA_MPP | | | 3091 | | | | | | if (cc = mksocs()) | | | 3092 | | | | | | goto bail2; | | | 3093 | | | | | | #endif | | | 3094 | | | | | | | | | 3095 | | | | | | | | | 3096 | | | | | | | | | 3097 | | | | | | | | | 3098 | | | | | | | | | 3099 | | | | | | pvmrxlist = pmsg_new(1); | | | 3100 | | | | | | BZERO((char*)pvmrxlist, sizeof(struct pmsg));
| | | 3101 | | | | | | pvmrxlist->m_link = pvmrxlist->m_rlink = pvmrxlist; | | | 3102 | | | | | | | | | 3103 | | | | | | ttlist = TALLOC(1, struct ttpcb, "tpcb");
| | | 3104 | | | | | | BZERO((char*)ttlist, sizeof(struct ttpcb));
| | | 3105 | | | | | | ttlist->tt_link = ttlist->tt_rlink = ttlist; | | | 3106 | | | | | | | | | 3107 | | | | | | sbf = pvm_setsbuf(pvm_mkbuf(PvmDataFoo));
| | | 3108 | | | | | | rbf = pvm_setrbuf(0); | | | 3109 | | | | | | | | | 3110 | | | | | | | | | 3111 | | | | | | | | | 3112 | | | | | | | | | 3113 | | | | | | | | | 3114 | | | | | | #ifndef IMA_MPP | | | 3115 | | | | | | #ifndef NOPROT | | | 3116 | | | | | | (void)PVMTMPNAMFUN(authfn);
| | | 3117 | | | | | | #ifdef IMA_OS2 | | | 3118 | | | | | | if ((authfd = open(authfn, O_RDWR|O_CREAT|O_EXCL|O_TRUNC, 0600)) == -1) | | | 3119 | | | | | | #else | | | 3120 | | | | | | if ((authfd = open(authfn, O_RDONLY|O_CREAT|O_EXCL|O_TRUNC, 0600)) == -1)
| | | 3121 | | | | | | #endif | | | 3122 | | | | | | { | | | 3123 | | | | | | pvmlogperror(authfn); | | | 3124 | | | | | | pvmlogerror("pvmbeatask() can't creat t-auth file\n"); | | | 3125 | | | | | | cc = PvmSysErr;
| | | 3126 | | | | | | goto bail2; | | | 3127 | | | | | | } | | | 3128 | | | | | | #endif | | | 3129 | | | | | | | | | 3130 | | | | | | | | | 3131 | | | | | | | | | 3132 | | | | | | | | | 3133 | | | | | | | | | 3134 | | | | | | mxfersingle = 1; | | | 3135 | | | | | | prver = TDPROTOCOL;
| | | 3136 | | | | | | pvm_pkint(&prver, 1, 1); | | | 3137 | | | | | | pvm_pkstr(authfn); | | | 3138 | | | | | | if ((cc = msendrecv(TIDPVMD, TM_CONNECT, SYSCTX_TM)) <= 0)
| | | 3139 | | | | | | goto bail; | | | 3140 | | | | | | pvm_upkint(&prver, 1, 1); | | | 3141 | | | | | | if (prver != TDPROTOCOL) {
| | | 3142 | | | | | | pvmlogprintf("pvmbeatask() t-d protocol mismatch (%d/%d)\n", | | | 3143 | | | | | | TDPROTOCOL, prver);
| | | 3144 | | | | | | cc = PvmSysErr;
| | | 3145 | | | | | | goto bail; | | | 3146 | | | | | | } | | | 3147 | | | | | | pvm_upkint(&cc, 1, 1); | | | 3148 | | | | | | if (!cc) { | | | 3149 | | | | | | pvmlogerror("pvmbeatask() pvmd refuses connection\n"); | | | | | | | | | ... | | | 3408 | | | | | | pvm_setrbuf(rbf); | | | 3409 | | | | | | } | | | 3410 | | | | | | | | | 3411 | | | | | | tev_init(); | | | 3412 | | | | | | | | | 3413 | | | | | | if (TEV_AMEXCL) {
| | | 3414 | | | | | | TEV_ENDEXCL;
| | | 3415 | | | | | | } | | | 3416 | | | | | | return 0; | | | 3417 | | | | | | | | | 3418 | | | | | | bail: | | | 3419 | | | | | | if (pvm_getrbuf() > 0) | | | 3420 | | | | | | pvm_freebuf(pvm_getrbuf()); | | | 3421 | | | | | | if (pvm_getsbuf() > 0) | | | 3422 | | | | | | pvm_freebuf(pvm_getsbuf()); | | | 3423 | | | | | | pvm_setrbuf(rbf); | | | 3424 | | | | | | pvm_setsbuf(sbf); | | | 3425 | | | | | | | | | 3426 | | | | | | #ifndef IMA_MPP | | | 3427 | | | | | | if (authfd != -1) | | | 3428 | | | | | | (void)close(authfd); | | | 3429 | | | | | | if (authfn[0]) | | | 3430 | | | | | | (void)unlink(authfn); | | | 3431 | | | | | | unmksocs(); | | | 3432 | | | | | | #endif | | | 3433 | | | | | | | | | 3434 | | | | | | bail2: | | | 3435 | | | | | | if (TEV_AMEXCL) {
| | | 3436 | | | | | | TEV_ENDEXCL;
| | | 3437 | | | | | | } | | | 3438 | | | | | | return cc; | | count is uninitialized | 3439 | | | | | | } |
| | 1266 | | | | ad = (long)np; | | | 1267 | | | | TEV_PACK_LONG( TEV_DID_PDA, TEV_DATA_SCALAR, &ad, 1, 1 );
| | | 1268 | | | | TEV_PACK_INT( TEV_DID_PC, TEV_DATA_SCALAR, &cnt, 1, 1 );
| | | 1269 | | | | TEV_PACK_INT( TEV_DID_PSD, TEV_DATA_SCALAR, &std, 1, 1 );
| | | 1270 | | | | TEV_FIN;
| | | 1271 | | | | } | | | 1272 | | | | } | | | 1273 | | | | | | | 1274 | | | | if (cnt < 0) | | | 1275 | | | | cc = PvmBadParam;
| | | 1276 | | | | else if (!pvmrbuf) | | | 1277 | | | | cc = PvmNoBuf;
| | | 1278 | | | | else | | | 1279 | | | | cc = (pvmrbuf->m_codef->dec_int) (pvmrbuf, (void*)np, cnt, std, sizeof(int)); | | | 1280 | | | | | | | 1281 | | | | if (TEV_AMEXCL) {
| | | 1282 | | | | if (TEV_DO_TRACE(TEV_UPKINT,TEV_EVENT_EXIT)) {
| | | 1283 | | | | TEV_PACK_INT( TEV_DID_CC, TEV_DATA_SCALAR, &cc, 1, 1 );
| | | 1284 | | | | TEV_FIN;
| | | 1285 | | | | } | | | 1286 | | | | TEV_ENDEXCL;
| | | 1287 | | | | } | | | 1288 | | | | return (cc < 0 ? lpvmerr("pvm_upkint", cc) : PvmOk);
| | count is uninitialized | 1289 | | | | } |
| | 359 | | | | | 360 | | trc_dump_trace_str( ID, name, TRC_TRUE );
| | | 361 | | | | | 362 | | fprintf( ID->trace_out, ", %d", flags ); | | | 363 | | | | | 364 | | trc_dump_trace_str( ID, where, TRC_TRUE );
| | | 365 | | | | count is uninitialized | 366 | | fprintf( ID->trace_out, ", %d", count ); |
|