Pin
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Typedefs | Functions | Variables
cache_client.cpp File Reference
#include "level_base.H"
#include "level_core.H"
#include "level_imgio.H"
#include "level_vmclient.H"
#include "level_pinclient.H"
#include <set>
#include "my_elf.h"
#include <iostream>

Typedefs

typedef VOID(* LEVEL_PINCLIENT::CODECACHE_NOARG_CALLBACK )()
 
typedef VOID(* LEVEL_PINCLIENT::CODECACHE_CACHEBLOCK_CALLBACK )(USIZE new_block_size)
 
typedef VOID(* LEVEL_PINCLIENT::CODECACHE_FULL_CALLBACK )(USIZE trace_size, USIZE stub_size)
 
typedef VOID(* LEVEL_PINCLIENT::CODECACHE_ENTEREXIT_CALLBACK )(ADDRINT cache_pc)
 
typedef VOID(* LEVEL_PINCLIENT::CODECACHE_LINKED_CALLBACK )(ADDRINT branch_pc, ADDRINT target_pc)
 
typedef VOID(* LEVEL_PINCLIENT::CODECACHE_UNLINKED_CALLBACK )(ADDRINT branch_pc, ADDRINT stub_pc)
 
typedef VOID(* LEVEL_PINCLIENT::CODECACHE_TRACEINVALIDATED_CALLBACK )(ADDRINT orig_pc, ADDRINT cache_pc, BOOL success)
 

Functions

PIN_CALLBACK LEVEL_PINCLIENT::CODECACHE_AddCacheInitFunction (CODECACHE_NOARG_CALLBACK fun, VOID *val)
 
PIN_CALLBACK LEVEL_PINCLIENT::CODECACHE_AddCacheBlockFunction (CODECACHE_CACHEBLOCK_CALLBACK fun, VOID *val)
 
PIN_CALLBACK LEVEL_PINCLIENT::CODECACHE_AddFullCacheFunction (CODECACHE_FULL_CALLBACK fun, VOID *val)
 
PIN_CALLBACK LEVEL_PINCLIENT::CODECACHE_AddFullBlockFunction (CODECACHE_FULL_CALLBACK fun, VOID *val)
 
PIN_CALLBACK LEVEL_PINCLIENT::CODECACHE_AddCacheFlushedFunction (CODECACHE_NOARG_CALLBACK fun, VOID *val)
 
PIN_CALLBACK LEVEL_PINCLIENT::CODECACHE_AddCodeCacheEnteredFunction (CODECACHE_ENTEREXIT_CALLBACK fun, VOID *val)
 
PIN_CALLBACK LEVEL_PINCLIENT::CODECACHE_AddCodeCacheExitedFunction (CODECACHE_ENTEREXIT_CALLBACK fun, VOID *val)
 
PIN_CALLBACK LEVEL_PINCLIENT::CODECACHE_AddTraceLinkedFunction (CODECACHE_LINKED_CALLBACK fun, VOID *val)
 
PIN_CALLBACK LEVEL_PINCLIENT::CODECACHE_AddTraceUnlinkedFunction (CODECACHE_UNLINKED_CALLBACK fun, VOID *val)
 
PIN_CALLBACK LEVEL_PINCLIENT::CODECACHE_AddTraceInvalidatedFunction (CODECACHE_TRACEINVALIDATED_CALLBACK fun, VOID *val)
 
UINT32 LEVEL_PINCLIENT::CODECACHE_InvalidateTraceAtProgramAddress (ADDRINT app_pc)
 
BOOL LEVEL_PINCLIENT::CODECACHE_InvalidateTraceAtCacheAddress (ADDRINT cache_pc)
 
UINT32 LEVEL_PINCLIENT::CODECACHE_CodeMemReserved ()
 
UINT32 LEVEL_PINCLIENT::CODECACHE_DirectoryMemUsed ()
 
UINT32 LEVEL_PINCLIENT::CODECACHE_CodeMemUsed ()
 
UINT32 LEVEL_PINCLIENT::CODECACHE_ExitStubBytes ()
 
UINT32 LEVEL_PINCLIENT::CODECACHE_LinkBytes ()
 
UINT32 LEVEL_PINCLIENT::CODECACHE_CacheSizeLimit ()
 
UINT32 LEVEL_PINCLIENT::CODECACHE_BlockSize ()
 
UINT32 LEVEL_PINCLIENT::CODECACHE_NumTracesInCache ()
 
UINT32 LEVEL_PINCLIENT::CODECACHE_NumExitStubsInCache ()
 
BOOL LEVEL_PINCLIENT::CODECACHE_CreateNewCacheBlock (USIZE block_size)
 
BOOL LEVEL_PINCLIENT::CODECACHE_ChangeCacheLimit (USIZE cache_size)
 
BOOL LEVEL_PINCLIENT::CODECACHE_ChangeBlockSize (USIZE block_size)
 
BOOL LEVEL_PINCLIENT::CODECACHE_ChangeMaxInsPerTrace (UINT32 max_ins)
 
BOOL LEVEL_PINCLIENT::CODECACHE_ChangeMaxBblsPerTrace (UINT32 max_basic_blocks)
 
UINT32 LEVEL_PINCLIENT::CODECACHE_NumTracesInBlock ()
 
UINT32 LEVEL_PINCLIENT::CODECACHE_NumHits ()
 
UINT32 LEVEL_PINCLIENT::CODECACHE_NumMisses ()
 
BOOL LEVEL_PINCLIENT::CODECACHE_FlushCache ()
 
UINT32 LEVEL_PINCLIENT::CODECACHE_InvalidateRange (ADDRINT start, ADDRINT end)
 
ADDRINT LEVEL_PINCLIENT::INS_CodeCacheAddress (INS ins)
 
ADDRINT LEVEL_PINCLIENT::BBL_CodeCacheAddress (BBL bbl)
 
ADDRINT LEVEL_PINCLIENT::TRACE_CodeCacheAddress (TRACE trace)
 
USIZE LEVEL_PINCLIENT::INS_CodeCacheSize (INS ins)
 
USIZE LEVEL_PINCLIENT::BBL_CodeCacheSize (BBL bbl)
 
USIZE LEVEL_PINCLIENT::TRACE_CodeCacheSize (TRACE trace)
 
ADDRINT LEVEL_PINCLIENT::CODECACHE_OriginalAddress (ADDRINT cache_pc)
 
BOOL LEVEL_PINCLIENT::CODECACHE_FlushBlock ()
 
USIZE LEVEL_PINCLIENT::PIN_MemoryAllocatedForPin ()
 
LOCALFUN VOID LEVEL_PINCLIENT::DoPostCacheInit ()
 
LOCALFUN VOID LEVEL_PINCLIENT::DoCacheBlockCreated (USIZE block_size)
 
LOCALFUN VOID LEVEL_PINCLIENT::DoCacheBlockIsFull (USIZE trace_size, USIZE stub_size)
 
LOCALFUN VOID LEVEL_PINCLIENT::DoCacheIsFull (USIZE trace_size, USIZE stub_size)
 
LOCALFUN VOID LEVEL_PINCLIENT::DoPostCacheFlush ()
 
LOCALFUN VOID LEVEL_PINCLIENT::DoCodeCacheEntered (ADDRINT cache_pc)
 
LOCALFUN VOID LEVEL_PINCLIENT::DoCodeCacheExited (ADDRINT cache_pc)
 
LOCALFUN VOID LEVEL_PINCLIENT::DoTraceLinked (ADDRINT branch_pc, ADDRINT target_pc)
 
LOCALFUN VOID LEVEL_PINCLIENT::DoTraceUnlinked (ADDRINT branch_pc, ADDRINT stub_pc)
 
LOCALFUN VOID LEVEL_PINCLIENT::DoTraceInvalidated (ADDRINT orig_pc, ADDRINT cache_pc, BOOL success)
 
VOID LEVEL_PINCLIENT::InitializeCacheClient ()
 
BOOL LEVEL_PINCLIENT::CheckNoCodeCacheCallbacks ()
 

Variables

LOCALTYPE typedef
COMPLEX_CALLBACKVAL
< CODECACHE_NOARG_CALLBACK > 
LEVEL_PINCLIENT::CODECACHE_NOARG_CALLBACKVAL
 
LOCALTYPE typedef
CODECACHE_NOARG_CALLBACKVAL::FUNS 
LEVEL_PINCLIENT::CODECACHE_NOARG_CALLBACKFUNS
 
LOCALTYPE typedef
COMPLEX_CALLBACKVAL
< CODECACHE_CACHEBLOCK_CALLBACK > 
LEVEL_PINCLIENT::CODECACHE_CACHEBLOCK_CALLBACKVAL
 
LOCALTYPE typedef
CODECACHE_CACHEBLOCK_CALLBACKVAL::FUNS 
LEVEL_PINCLIENT::CODECACHE_CACHEBLOCK_CALLBACKFUNS
 
LOCALTYPE typedef
COMPLEX_CALLBACKVAL
< CODECACHE_FULL_CALLBACK > 
LEVEL_PINCLIENT::CODECACHE_FULL_CALLBACKVAL
 
LOCALTYPE typedef
CODECACHE_FULL_CALLBACKVAL::FUNS 
LEVEL_PINCLIENT::CODECACHE_FULL_CALLBACKFUNS
 
LOCALTYPE typedef
COMPLEX_CALLBACKVAL
< CODECACHE_ENTEREXIT_CALLBACK > 
LEVEL_PINCLIENT::CODECACHE_ENTEREXIT_CALLBACKVAL
 
LOCALTYPE typedef
CODECACHE_ENTEREXIT_CALLBACKVAL::FUNS 
LEVEL_PINCLIENT::CODECACHE_ENTEREXIT_CALLBACKFUNS
 
LOCALTYPE typedef
COMPLEX_CALLBACKVAL
< CODECACHE_LINKED_CALLBACK > 
LEVEL_PINCLIENT::CODECACHE_LINKED_CALLBACKVAL
 
LOCALTYPE typedef
CODECACHE_LINKED_CALLBACKVAL::FUNS 
LEVEL_PINCLIENT::CODECACHE_LINKED_CALLBACKFUNS
 
LOCALTYPE typedef
COMPLEX_CALLBACKVAL
< CODECACHE_UNLINKED_CALLBACK > 
LEVEL_PINCLIENT::CODECACHE_UNLINKED_CALLBACKVAL
 
LOCALTYPE typedef
CODECACHE_UNLINKED_CALLBACKVAL::FUNS 
LEVEL_PINCLIENT::CODECACHE_UNLINKED_CALLBACKFUNS
 
LOCALTYPE typedef
COMPLEX_CALLBACKVAL
< CODECACHE_TRACEINVALIDATED_CALLBACK > 
LEVEL_PINCLIENT::CODECACHE_TRACEINVALIDATED_CALLBACKVAL
 
LOCALTYPE typedef
CODECACHE_TRACEINVALIDATED_CALLBACKVAL::FUNS 
LEVEL_PINCLIENT::CODECACHE_TRACEINVALIDATED_CALLBACKFUNS
 
LOCALVAR
CODECACHE_NOARG_CALLBACKFUNS 
LEVEL_PINCLIENT::postCacheInitList
 
LOCALVAR
CODECACHE_NOARG_CALLBACKFUNS 
LEVEL_PINCLIENT::postCacheFlushList
 
LOCALVAR
CODECACHE_CACHEBLOCK_CALLBACKFUNS 
LEVEL_PINCLIENT::cacheBlockCreatedList
 
LOCALVAR
CODECACHE_FULL_CALLBACKFUNS 
LEVEL_PINCLIENT::cacheFullList
 
LOCALVAR
CODECACHE_FULL_CALLBACKFUNS 
LEVEL_PINCLIENT::cacheBlockFullList
 
LOCALVAR
CODECACHE_ENTEREXIT_CALLBACKFUNS 
LEVEL_PINCLIENT::cacheEnterList
 
LOCALVAR
CODECACHE_ENTEREXIT_CALLBACKFUNS 
LEVEL_PINCLIENT::cacheExitList
 
LOCALVAR
CODECACHE_LINKED_CALLBACKFUNS 
LEVEL_PINCLIENT::traceLinkedList
 
LOCALVAR
CODECACHE_UNLINKED_CALLBACKFUNS 
LEVEL_PINCLIENT::traceUnlinkedList
 
LOCALVAR
CODECACHE_TRACEINVALIDATED_CALLBACKFUNS 
LEVEL_PINCLIENT::traceInvalidatedList