Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 531 → Rev 532

/shark/trunk/tracer/newtrace/FTrace_OSD.c
8,7 → 8,7
SYS_FLAGS FTracef;
 
extern FTrace_Chunk_Ptr ActualChunk;
extern BYTE OSD_pointers[FTRACE_OSD_CHUNK_HEAD];
extern void *OSD_current_pointer;
 
void FTrace_fsave()
{
56,7 → 56,9
}
 
/* OSD_pointers
 
00 - Fast Access
04 - Actual Chunk Position
08 - Actual Chunk Start
12 - Actual Chunk Size
63,11 → 65,7
16 - Actual Chunk Emergency Size
20 - Actual Chunk Flags
24 - Next1 Chunk Position
28 - Next1 Chunk Start
32 - Next1 Chunk Size
36 - Next1 Chunk Emergency Size
40 - Next1 Chunk Flags
24 - Next Chunk OSD Pointer
*/
 
74,7 → 72,7
int FTrace_OSD_chunk_init(FTrace_Chunk_Ptr c, int size, int emergency_size, FTrace_flags flags)
{
 
*(DWORD *)(c->osd) = 4;
*(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->osd + FTRACE_OSD_CHUNK_HEAD);
83,36 → 81,17
*(DWORD *)(c->osd + 20) = (DWORD)(c->flags);
 
*(DWORD *)(c->osd + 24) = 0;
*(DWORD *)(c->osd + 28) = 0;
*(DWORD *)(c->osd + 32) = 0;
*(DWORD *)(c->osd + 36) = 0;
*(DWORD *)(c->osd + 40) = 0;
 
*(DWORD *)(c->osd + 44) = 0;
*(DWORD *)(c->osd + 48) = 0;
*(DWORD *)(c->osd + 52) = 0;
*(DWORD *)(c->osd + 56) = 0;
*(DWORD *)(c->osd + 60) = 0;
 
return 0;
 
}
 
/* OSD Chunk Link */
int FTrace_OSD_chunk_link(FTrace_Chunk_Ptr a, FTrace_Chunk_Ptr b, int osd_flags)
int FTrace_OSD_chunk_link(FTrace_Chunk_Ptr a, FTrace_Chunk_Ptr b)
{
 
int delta = 0;
*(DWORD *)(a->osd + 24) = (DWORD)(b->osd);
 
if (osd_flags == FTRACE_OSD_NEXT1)
delta = 24;
if (osd_flags == FTRACE_OSD_NEXT2)
delta = 44;
 
if (delta == 0) return -1;
 
memcpy((void *)(a->osd+delta),(void *)(b->osd+4),20);
 
return 0;
 
}
126,28 → 105,6
 
}
 
int FTrace_OSD_load_pointers()
{
 
if (ActualChunk == NULL) return -1;
 
memcpy((void *)OSD_pointers,(void *)ActualChunk->osd,FTRACE_OSD_CHUNK_HEAD);
 
return 0;
 
}
 
int FTrace_OSD_save_pointers()
{
 
if (ActualChunk == NULL) return -1;
memcpy((void *)ActualChunk->osd,(void *)OSD_pointers,FTRACE_OSD_CHUNK_HEAD);
return 0;
}
 
int FTrace_OSD_compress_chunk(int number, void *temp_data, int *data_size)
{