55,26 → 55,44 |
|
} |
|
int FTrace_OSD_chunk_init(FTrace_Chunk_Ptr c, int size, FTrace_flags flags) |
/* OSD_pointers |
|
00 - Actual Chunk Position |
04 - Actual Chunk Start |
08 - Actual Chunk Size |
12 - Actual Chunk Emergency Size |
16 - Actual Chunk Flags |
|
20 - Next1 Chunk Position |
24 - Next1 Chunk Start |
28 - Next1 Chunk Size |
32 - Next1 Chunk Emergency Size |
36 - Next1 Chunk Flags |
|
*/ |
|
int FTrace_OSD_chunk_init(FTrace_Chunk_Ptr c, int size, int emergency_size, FTrace_flags flags) |
{ |
|
*(DWORD *)(c->osd) = 0; |
*(DWORD *)(c->osd + 4) = (DWORD)(c->sizemask); |
*(DWORD *)(c->osd + 8) = (DWORD)(c->osd + 60); |
*(DWORD *)(c->osd + 12) = 0; |
*(DWORD *)(c->osd + 16) = 0; |
*(DWORD *)(c->osd) = 4; |
|
*(DWORD *)(c->osd + 20) = 0; |
*(DWORD *)(c->osd + 4) = (DWORD)(c->osd + FTRACE_OSD_CHUNK_HEAD); |
*(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; |
*(DWORD *)(c->osd + 28) = 0; |
*(DWORD *)(c->osd + 32) = 0; |
*(DWORD *)(c->osd + 36) = 0; |
*(DWORD *)(c->osd + 40) = 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; |
|
87,9 → 105,9 |
int delta = 0; |
|
if (osd_flags == FTRACE_OSD_NEXT1) |
delta = 20; |
delta = 24; |
if (osd_flags == FTRACE_OSD_NEXT2) |
delta = 40; |
delta = 44; |
|
if (delta == 0) return -1; |
|