Lines Matching refs:cp

214 	register Systrace_t*	cp;
224 for (cp = sys_trace; cp < &sys_trace[elementsof(sys_trace)]; cp++)
225 if (!(cp->func = (Sysfunc_t)dlsym(dll, cp->name)) && (*cp->name != '_' || !(cp->func = (Sysfunc_t)dlsym(dll, cp->name + 1)) || !*cp->name++))
226 cp->func = (Sysfunc_t)nosys;
243 register Systrace_t* cp;
253 for (cp = sys_trace; cp < &sys_trace[elementsof(sys_trace)]; cp++)
255 bprintf(b, e, " %03d%s %03d %12s", cp - sys_trace, (cp - sys_trace) == cp->index ? " " : "*", cp->call, cp->name);
257 if (MSG_MASK(cp->call) & state.trap.intercept[m].mask)
259 bprintf(b, e, " %p\n", cp->func);
305 register Systrace_t* cp;
327 cp = sys_trace + call;
329 n = cp->args;
334 switch (cp->args)
344 if (state.kernel || state.trace.pid <= 1 || (on = fsfd(&state.fs[FS_option])) <= 0 || !(state.test & 0100) && !(MSG_MASK(cp->call) & (state.trace.call & ~MSG_MASK(error_info.trace ? 0 : MSG_nop))))
354 bprintf(&b, e, "%s (", cp->name);
371 for (ac = 1; ac <= cp->args && (n = cp->type[ac]) >= a; ac++)
411 else if (MSG_MASK(cp->call) & C_EXIT)
422 if (MSG_MASK(cp->call) & C_EXIT)
450 cp->count++;
454 if (MSG_MASK(cp->call) & state.trap.intercept[m].mask)
460 r = (*state.trap.intercept[m].call)(&state.trap.intercept[m], cp->call, call, arg[1].pointer, arg[2].pointer, arg[3].pointer, arg[4].pointer, arg[5].pointer, arg[6].pointer);
467 if (dll && cp->func)
469 if (dll && cp->func && cp->index < 0)
472 switch (cp->active++)
475 func = cp->func;
478 if (!(func = cp->last))
480 if (!(cp->last = (Sysfunc_t)dlsym(dll, cp->name)) && (*cp->name != '_' || !(cp->last = (Sysfunc_t)dlsym(dll, cp->name + 1)) || !*cp->name++))
481 cp->last = (Sysfunc_t)nosys;
482 func = cp->last;
483 if (func == cp->func)
489 cp->active = 3;
491 else if (cp->func != (Sysfunc_t)nosys && func == (Sysfunc_t)nosys)
493 cp->active = 10;
495 bprintf(&b, e, "3d: %s: system call loop -- cannot determine the real system call\n", cp->name);
502 cp->active = 3;
503 func = cp->func;
506 cp->active = 10;
511 cp->active--;
516 if (cp->index >= 0)
517 r = syscall(cp->index, arg[1].pointer, arg[2].pointer, arg[3].pointer, arg[4].pointer, arg[5].pointer, arg[6].pointer);
518 else if (cp->nov >= 0)
519 r = syscall(cp->nov, arg[2].pointer, arg[3].pointer, arg[4].pointer, arg[5].pointer, arg[6].pointer, 0);
531 if (r > 0 && (MSG_MASK(cp->call) & C_ZERO))
541 for (; ac <= cp->args; ac++)
544 switch (n = cp->type[ac])
613 if (n == A_OUTPUT && cp->type[n = 0] == A_SIZE || ac < (elementsof(cp->type) - 1) && cp->type[n = ac + 1] == A_SIZE)
702 else if (r >= 0 && (MSG_MASK(cp->call) & C_IO) && (cp->units += r) >= (1<<20))
704 cp->megs += cp->units >> 20;
705 cp->units &= ((1<<20)-1);