Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 361 → Rev 362

/shark/trunk/tracer/include/tracer.h
65,6 → 65,11
 
#define TRACER_LOGEVENT fast_logevent
 
int tracer_initialize(int OutputType, int MemorySize);
void tracer_enable();
void tracer_disable();
void tracer_print_statistics();
 
#define TRACER_SERIALIZE
 
/* Save bytes => 1(type) + 4(tsc_high) + 4(tsc_low) + 1(size)
79,7 → 84,10
 
extern void *StartTracerBuffer;
extern void *EndTracerBuffer;
extern void *LastBeforeEndTracerBuffer;
extern void *CurrentTracerBuffer;
extern void *FirstTracerBuffer;
 
extern int TracerActive;
extern unsigned long long TracerEventsRecorded;
 
111,6 → 119,15
if (flag & 1) size += 4;
if (flag & 3) size += 4;
 
// Adjust FirstTracerBuffer
if (FirstTracerBuffer != StartTracerBuffer) {
while ((CurrentTracerBuffer + size - 1) > FirstTracerBuffer) {
FirstTracerBuffer += *(BYTE *)(FirstTracerBuffer + 9);
if (FirstTracerBuffer > LastBeforeEndTracerBuffer) FirstTracerBuffer = StartTracerBuffer;
}
}
 
// Check if we overcome EndTracerBuffer
if ((CurrentTracerBuffer + size - 1) > EndTracerBuffer) {
int i;
//Clear remain memory
117,9 → 134,13
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);
}
 
// Add the new event
*(BYTE *)CurrentTracerBuffer = type;
CurrentTracerBuffer++;
*(DWORD *)(CurrentTracerBuffer) = tsc_high;
/shark/trunk/tracer/include/FTrace.h
70,6 → 70,7
#define FTrace_EVT_server_create 0x08
#define FTrace_EVT_server_replenish 0x18
#define FTrace_EVT_server_exhaust 0x28
#define FTrace_EVT_server_reclaiming 0x38
 
// user defined events
#define FTrace_EVT_user_event_0 0x09