Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 362 → Rev 363

/shark/trunk/tracer/include/tracer.h
121,23 → 121,23
 
// Adjust FirstTracerBuffer
if (FirstTracerBuffer != StartTracerBuffer) {
while ((CurrentTracerBuffer + size - 1) > FirstTracerBuffer) {
while ((CurrentTracerBuffer + size - 1) >= FirstTracerBuffer &&
FirstTracerBuffer != StartTracerBuffer) {
FirstTracerBuffer += *(BYTE *)(FirstTracerBuffer + 9);
if (FirstTracerBuffer > LastBeforeEndTracerBuffer) FirstTracerBuffer = StartTracerBuffer;
if (FirstTracerBuffer >= LastBeforeEndTracerBuffer) FirstTracerBuffer = StartTracerBuffer;
}
}
 
// Check if we overcome EndTracerBuffer
if ((CurrentTracerBuffer + size - 1) > EndTracerBuffer) {
int i;
//Clear remain memory
for (i=0;i<(EndTracerBuffer-CurrentTracerBuffer+1);i++)
*(BYTE *)(CurrentTracerBuffer + i) = 0;
//Cyclical Buffer implementation
LastBeforeEndTracerBuffer = CurrentTracerBuffer;
CurrentTracerBuffer = StartTracerBuffer;
//Set the First Event
FirstTracerBuffer = StartTracerBuffer + *(BYTE *)(StartTracerBuffer + 9);
while ((CurrentTracerBuffer + size - 1) >= FirstTracerBuffer) {
FirstTracerBuffer += *(BYTE *)(FirstTracerBuffer + 9);
if (FirstTracerBuffer >= LastBeforeEndTracerBuffer) FirstTracerBuffer = StartTracerBuffer;
}
}
 
// Add the new event
/shark/trunk/tracer/newtrace/tracer.c
70,11 → 70,11
 
SYS_FLAGS f;
void *p;
int i,t;
int i,t,s;
f = ll_fsave();
 
cprintf("Start Tracer Buffer: %08x\n",(int)StartTracerBuffer);
cprintf("\nStart Tracer Buffer: %08x\n",(int)StartTracerBuffer);
cprintf("End Tracer Buffer: %08x\n",(int)EndTracerBuffer);
cprintf("Current Tracer Buffer: %08x\n",(int)CurrentTracerBuffer);
cprintf("First Tracer Buffer: %08x\n",(int)FirstTracerBuffer);
85,19 → 85,19
for (i=0; i<0xFF; i++) {
p = FirstTracerBuffer;
t = 0;
while(p != CurrentTracerBuffer) {
s = 0;
while((p == CurrentTracerBuffer && s == 0) || p != CurrentTracerBuffer) {
s++;
if (*(BYTE *)p == i) t++;
if (*(BYTE *)p != 0) {
p += *(BYTE *)(p + 9);
if (p >= LastBeforeEndTracerBuffer) p = StartTracerBuffer;
} else {
p = StartTracerBuffer;
}
p += *(BYTE *)(p + 9);
if (p >= LastBeforeEndTracerBuffer) p = StartTracerBuffer;
}
if (t != 0)
cprintf("Event type %02x => %d\n",i,t);
}
 
cprintf("Total Saved Events: %d\n",s);
 
ll_frestore(f);
 
}