Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 534 → Rev 533

/shark/trunk/tracer/newtrace/FTrace_OSD_ll.c
71,7 → 71,7
*(DWORD *)current = (DWORD)(par1 << 16 | type);
*(DWORD *)(current + 4) = tschigh;
*(DWORD *)(current + 8) = tsclow;
*(DWORD *)(current + 12) = par2;
*(DWORD *)(current + 16) = par2;
 
*(DWORD *)(OSD_current_pointer) = current + 16;
 
103,6 → 103,7
"movl %%esi,(%%ebx)\n\t" /* Save TYPE + WORD par1 */
"movl %%edx,4(%%ebx)\n\t" /* Save TSC HIGH */
"movl %%eax,8(%%ebx)\n\t" /* Save TSC LOW */
"movl %%eax,12(%%ebx)\n\t" /* DWORD par2 */
"addl $16,(%%edi)\n\t" /* Inc Position */
"popfl\n\t"
:: "D" ((DWORD *)(OSD_current_pointer)), "S" (par1 << 16 | (type | 0x8000)));
109,22 → 110,3
 
}
 
void FTrace_dump_ipoints(void *OSD_current)
{
 
DWORD p = *(DWORD *)(OSD_current+4);
DWORD end = *(DWORD *)(OSD_current+4) + *(DWORD *)(OSD_current+8) + *(DWORD *)(OSD_current+16);
 
while (p <= end) {
 
if (*(WORD *)(p) != 0x0000) {
FTrace_printf("Event %4x TSC %8x:%8xd PAR1 %8d PAR2 %8d\n",
*(WORD *)(p),*(DWORD *)(p+4),*(DWORD *)(p+8),*(WORD *)(p+2),*(DWORD *)(p+12));
}
 
p += 16;
 
}
 
}
 
/shark/trunk/tracer/newtrace/FTrace.c
401,14 → 401,13
}
 
if (!(ckB->flags & FTRACE_CHUNK_FLAG_FREE)) {
ckB->flags &= ~FTRACE_CHUNK_FLAG_FREE;
FTrace_OSD_update_chunk_flags(ckB);
#ifdef FTRACE_DEBUG
FTrace_printf("FTrace Error: Chunk B is not free\n");
#endif
FTrace_unlock();
return -1;
} else {
ckB->flags &= ~FTRACE_CHUNK_FLAG_FREE;
FTrace_OSD_update_chunk_flags(ckB);
}
 
/* FTrace Low Level Blocking Part */
557,13 → 556,11
 
FTrace_Chunk_Ptr FT_temp = ChunkTable[number];
 
FTrace_printf("ID : %x\n",FT_temp->id);
FTrace_printf("NUM : %d\n",FT_temp->number);
FTrace_printf("FLAGS : %x\n",FT_temp->flags);
FTrace_printf("SIZE : %d\n",FT_temp->size);
FTrace_printf("EMERG : %d\n",FT_temp->emergency_size);
cprintf("ID = %x\n",FT_temp->id);
cprintf("NUM = %d\n",FT_temp->number);
cprintf("FLAGS = %d\n",FT_temp->flags);
cprintf("SIZE = %d\n",FT_temp->size);
cprintf("EMERG = %d\n",FT_temp->emergency_size);
 
FTrace_OSD_chunk_dump(FT_temp);
 
}
 
/shark/trunk/tracer/newtrace/FTrace_OSD.c
57,13 → 57,15
 
/* OSD_pointers
 
00 - Actual Chunk Position
04 - Actual Chunk Start
08 - Actual Chunk Size
12 - Actual Chunk Emergency Size
16 - Actual Chunk Flags
00 - Fast Access
04 - Actual Chunk Position
08 - Actual Chunk Start
12 - Actual Chunk Size
16 - Actual Chunk Emergency Size
20 - Actual Chunk Flags
20 - Next Chunk OSD Pointer
24 - Next Chunk OSD Pointer
*/
 
71,12 → 73,15
{
 
*(DWORD *)(c->osd) = (DWORD)(c->osd + FTRACE_OSD_CHUNK_HEAD);
 
*(DWORD *)(c->osd + 4) = (DWORD)(c->osd + FTRACE_OSD_CHUNK_HEAD);
*(DWORD *)(c->osd + 8) = (DWORD)(c->size);
*(DWORD *)(c->osd + 12) = (DWORD)(c->emergency_size);
*(DWORD *)(c->osd + 16) = (DWORD)(c->flags);
*(DWORD *)(c->osd + 20) = 0;
*(DWORD *)(c->osd + 8) = (DWORD)(c->osd + FTRACE_OSD_CHUNK_HEAD);
*(DWORD *)(c->osd + 12) = (DWORD)(c->size);
*(DWORD *)(c->osd + 16) = (DWORD)(c->emergency_size);
*(DWORD *)(c->osd + 20) = (DWORD)(c->flags);
 
*(DWORD *)(c->osd + 24) = 0;
 
return 0;
 
}
85,7 → 90,7
int FTrace_OSD_chunk_link(FTrace_Chunk_Ptr a, FTrace_Chunk_Ptr b)
{
 
*(DWORD *)(a->osd + 20) = (DWORD)(b->osd);
*(DWORD *)(a->osd + 24) = (DWORD)(b->osd);
 
return 0;
 
94,7 → 99,7
int FTrace_OSD_update_chunk_flags(FTrace_Chunk_Ptr c)
{
 
*(DWORD *)(c->osd + 16) = (DWORD)(c->flags);
*(DWORD *)(c->osd + 20) = (DWORD)(c->flags);
 
return 0;
 
114,20 → 119,4
 
}
 
int FTrace_OSD_chunk_dump(FTrace_Chunk_Ptr c)
{
 
FTrace_printf("Position : %x\n",*(int *)(c->osd));
FTrace_printf("Start : %x\n",*(int *)(c->osd+4));
FTrace_printf("Size : %d\n",*(int *)(c->osd+8));
FTrace_printf("Em-Size : %d\n",*(int *)(c->osd+12));
FTrace_printf("Flags : %x\n",*(int *)(c->osd+16));
FTrace_printf("Next : %x\n\n",*(int *)(c->osd+20));
 
FTrace_dump_ipoints(c->osd);
 
return 0;
}
 
 
/shark/trunk/tracer/include/FTrace_OSD.h
28,8 → 28,5
/* OSD Send Chunk out */
int FTrace_OSD_send_chunk(int number, int osd_flags);
 
/* OSD Chunk Dump */
int FTrace_OSD_chunk_dump(FTrace_Chunk_Ptr c);
 
#endif