ENV lgevnt(trace_data,id,typ,data) register struct zz_trace_struct *trace_data; int id,typ,data; { register int i; LOCK(trace_data->zz_lock) i = trace_data->next_entry; trace_data->trace_table[i].id = id; trace_data->trace_table[i].typ = typ; trace_data->trace_table[i].data = data; if ((trace_data->next_entry++) >= 399) trace_data->next_entry = 0; UNLOCK(trace_data->zz_lock) return; } dtrc(trace_data) register struct zz_trace_struct *trace_data; { FILE *fp; register int i,j; LOCK(trace_data->zz_lock) if ((fp = fopen("tracefile","w")) == NULL) printf("*** failed to open tracefile\n"); else { j = trace_data->next_entry; for (i=0; i < 400; i++) { if (trace_data->trace_table[j].id != -1) { fprintf(fp,"%d %d %d\n", trace_data->trace_table[j].id, trace_data->trace_table[j].typ, trace_data->trace_table[j].data); } if (++j > 399) j = 0; } } fclose(fp); UNLOCK(trace_data->zz_lock) return; }