8,9 → 8,7 |
void *FirstTracerBuffer; //The First Valid Event |
|
int TracerActive = 0; |
int TracerOutputType = TRACER_NO_OUTPUT; |
unsigned long long TracerEventsRecorded; |
unsigned int TracerEventsSaved; |
extern unsigned int clk_per_msec; |
|
/* Initialize the tracer |
38,10 → 36,7 |
|
TracerActive = 0; |
TracerEventsRecorded = 0; |
TracerEventsSaved = 0; |
|
TracerOutputType = OutputType; |
|
ll_frestore(f); |
return 0; |
|
71,60 → 66,6 |
|
} |
|
int send_udp_event(void *p, int size); |
|
/* Send NumberOfEvents out of the system |
* If NumberOfEvents = -1 all the events will be sent */ |
int send_logged_data(unsigned int NumberOfEvents) { |
|
void *p; |
int s,err; |
|
SYS_FLAGS f; |
|
f = ll_fsave(); |
|
if (NumberOfEvents == 0 || TracerEventsSaved == 0) { |
ll_frestore(f); |
return 0; |
} |
|
p = FirstTracerBuffer; |
s = 0; |
while(((p == CurrentTracerBuffer && s == 0) || p != CurrentTracerBuffer) && s != NumberOfEvents) { |
|
switch (TracerOutputType) { |
case TRACER_NO_OUTPUT: |
break; |
case TRACER_UDP_OUTPUT: |
err = send_udp_event(p,*(BYTE *)(p + 9)); |
if (err != 0) { |
ll_frestore(f); |
return s; |
} |
break; |
default: |
cprintf("Error: Tracer Output Not Defined\n"); |
ll_frestore(f); |
return -1; |
break; |
} |
|
p += *(BYTE *)(p + 9); |
if (p >= LastBeforeEndTracerBuffer) p = StartTracerBuffer; |
|
FirstTracerBuffer = p; |
TracerEventsSaved--; |
|
s++; |
|
} |
|
ll_frestore(f); |
return s; |
|
} |
|
void tracer_print_statistics() { |
|
SYS_FLAGS f; |
140,7 → 81,6 |
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); |
|
for (i=0; i<0xFF; i++) { |
p = FirstTracerBuffer; |
156,6 → 96,8 |
cprintf("Event type %02x => %d\n",i,t); |
} |
|
cprintf("Total Saved Events: %d\n",s); |
|
ll_frestore(f); |
|
} |