153,6 → 153,8 |
return -1; |
} |
|
memset(FT_temp,0,sizeof(struct FTrace_Chunk) + FTRACE_OSD_CHUNK_HEAD + size + emergency_size); |
|
err = FTrace_chunk_init(FT_temp, number, size, emergency_size, flags); |
if (err != 0) { |
#ifdef FTRACE_DEBUG |
432,6 → 434,25 |
|
} |
|
/* Update the OSD of actual chunk */ |
int FTrace_update_actual_chunk() |
{ |
|
FTrace_lock(); |
|
if (ActualChunk == NULL) return 0; |
|
FTrace_fsave(); |
FTrace_OSD_save_pointers(); |
FTrace_frestore(); |
|
FTrace_unlock(); |
|
return 0; |
|
} |
|
|
/* Create a new memory region where the compressed data are stored */ |
int FTrace_compress_chunk(int number, FTrace_flags new_flags) |
{ |
560,12 → 581,27 |
void FTrace_chunk_dump(int number) { |
|
FTrace_Chunk_Ptr FT_temp = ChunkTable[number]; |
int i,t; |
DWORD p; |
|
FTrace_update_actual_chunk(); |
|
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); |
|
for (i=0; i<0xFF; i++) { |
p = *(DWORD *)(FT_temp->osd + 8); |
t = 0; |
while((p + 16) < *(DWORD *)(FT_temp->osd + 8) + *(DWORD *)(FT_temp->osd + 12)) { |
if (*(WORD *)(p+2) == i) t++; |
p += 16; |
} |
if (t != 0) |
cprintf("Event type %02x => %d\n",i,t); |
} |
|
} |
|