Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 368 → Rev 369

/shark/trunk/tracer/newtrace/tracer.c
10,9 → 10,11
int TracerActive = 0;
int TracerOutputType = TRACER_NO_OUTPUT;
unsigned long long TracerEventsRecorded;
unsigned int TracerEventsSaved;
unsigned int TracerEventsPresent;
extern unsigned int clk_per_msec;
 
#define TRACER_DEBUG
 
/* Initialize the tracer
*
* Return 0 => Success
38,7 → 40,7
 
TracerActive = 0;
TracerEventsRecorded = 0;
TracerEventsSaved = 0;
TracerEventsPresent = 0;
 
ll_frestore(f);
return 0;
70,6 → 72,7
}
 
int send_udp_event(void *p, int size);
void send_remaining_udp_buffer();
 
/* Send NumberOfEvents out of the system
* If NumberOfEvents = -1 all the events will be sent */
82,7 → 85,7
 
f = ll_fsave();
 
if (NumberOfEvents == 0 || TracerEventsSaved == 0) {
if (NumberOfEvents == 0 || TracerEventsPresent == 0) {
ll_frestore(f);
return 0;
}
93,7 → 96,9
 
switch (TracerOutputType) {
case TRACER_NO_OUTPUT:
cprintf("Event Type %02x Sent To NULL\n",*(BYTE *)(p));
#ifdef TRACER_DEBUG
cprintf("Event Type %02x Sent To NULL\n",*(BYTE *)(p));
#endif
break;
case TRACER_UDP_OUTPUT:
err = send_udp_event(p,*(BYTE *)(p + 9));
103,8 → 108,10
}
break;
default:
cprintf("Error: Tracer Output Not Defined\n");
ll_frestore(f);
#ifdef TRACER_DEBUG
cprintf("Error: Tracer Output Not Defined\n");
#endif
ll_frestore(f);
return -1;
break;
}
113,7 → 120,7
if (p >= LastBeforeEndTracerBuffer) p = StartTracerBuffer;
 
FirstTracerBuffer = p;
TracerEventsSaved--;
TracerEventsPresent--;
 
s++;
 
124,6 → 131,17
 
}
 
//Flush the events that are ready to send
void tracer_flush_sent_events() {
 
switch (TracerOutputType) {
case TRACER_UDP_OUTPUT:
send_remaining_udp_buffer();
break;
}
 
}
 
void tracer_print_statistics() {
 
SYS_FLAGS f;
138,10 → 156,13
cprintf("First Tracer Buffer: %08x\n",(int)FirstTracerBuffer);
cprintf("Last Before End Tracer Buffer: %08x\n\n",(int)LastBeforeEndTracerBuffer);
 
cprintf("Total Events: %d\n",(int)TracerEventsRecorded);
cprintf("Total Saved Events: %d\n",TracerEventsSaved);
cprintf("Events Logged: %d\n",(int)TracerEventsRecorded);
cprintf("Events Present: %d\n",TracerEventsPresent);
 
if (TracerEventsSaved == 0) return;
if (TracerEventsPresent == 0) {
ll_frestore(f);
return;
}
 
for (i=0; i<0xFF; i++) {
p = FirstTracerBuffer;