1,5 → 1,6 |
#include <FTrace_types.h> |
#include <FTrace_OSD.h> |
#include <FTrace.h> |
|
#include <ll/i386/hw-instr.h> |
|
15,6 → 16,11 |
|
*/ |
|
extern WORD FTrace_filter_mask; |
|
/** |
* This is the function that actually store the event into the selected chunk. |
*/ |
void FTrace_safe_ipoint(WORD type, WORD par1, DWORD par2) |
{ |
|
32,7 → 38,12 |
f = ll_fsave(); |
|
if (FTraceEnable) { |
|
|
/** Tool: do not filter the "filter" event family. */ |
if ((type & 0xF0) != 0xF0) |
if (FTrace_filter_mask & (0x01 << (type & FTrace_family_mask))) |
return; |
|
current = *(DWORD *)(OSD_current_pointer); |
start = *(DWORD *)(OSD_current_pointer + 4); |
size = *(DWORD *)(OSD_current_pointer + 8); |
50,7 → 61,7 |
return; |
} |
|
/* Cyclical Buffer */ |
/** Cyclical Buffer */ |
if (current + 16 >= (start + size)) { |
if ((flags & 0x0C) == FTRACE_CHUNK_FLAG_CYC) { |
current = start; |