Pin
Classes | Macros | Typedefs | Enumerations | Variables
types_vmapi.H File Reference

Classes

union  PIN_REGISTER
 
struct  PARG_T
 
struct  _PinPargClass< T >
 
struct  _PinPargClass< T * >
 
struct  _PinPargClass< T & >
 
struct  _PinPargClass< bool >
 
struct  _PinPargClass< char >
 
struct  _PinPargClass< unsigned char >
 
struct  _PinPargClass< signed char >
 
struct  _PinPargClass< short >
 
struct  _PinPargClass< unsigned short >
 
struct  _PinPargClass< int >
 
struct  _PinPargClass< unsigned int >
 
struct  _PinPargClass< long >
 
struct  _PinPargClass< unsigned long >
 
struct  _PinPargClass< long long >
 
struct  _PinPargClass< unsigned long long >
 
struct  _PinPargClass< float >
 
struct  _PinPargClass< double >
 
struct  _PinPargClass< void >
 
struct  PIN_CODE_RANGE
 
struct  PIN_MEM_ACCESS_INFO
 
struct  PIN_MULTI_MEM_ACCESS_INFO
 
struct  _tcpServerStruct
 
struct  DEBUG_CONNECTION_INFO
 
struct  _tcpClientStruct
 
struct  DEBUG_MODE
 
union  PIN_MEM_TRANS_FLAGS
 
struct  PIN_MEM_TRANS_INFO
 
struct  CALL_APPLICATION_FUNCTION_PARAM
 

Macros

#define IARG_END   IARG_FILE_NAME, __FILE__, IARG_LINE_NO, LEVEL_BASE::UINT32(__LINE__), IARG_LAST
 
#define PIN_PARG(t)   _PinPargClass<t>::parg()
 
#define PIN_PARG_AGGREGATE(t)   _PinParg(PARG_AGGREGATE, sizeof(t))
 
#define PIN_PARG_ENUM(t)   _PinParg(PARG_ENUM, sizeof(t))
 
#define PIN_PARG_END()   _PinParg(PARG_END, 0)
 
#define PIN_FAST_ANALYSIS_CALL
 

Typedefs

typedef struct CONTEXT CONTEXT
 
typedef struct PHYSICAL_CONTEXT PHYSICAL_CONTEXT
 
typedef IARGLIST_CLASS * IARGLIST
 
typedef PROTO_CLASS * PROTO
 
typedef UINT32 BUFFER_ID
 
typedef UINT32 THREADID
 
typedef UINT64 PIN_THREAD_UID
 
typedef NATIVE_TID OS_THREAD_ID
 
typedef VOID ROOT_THREAD_FUNC(VOID *arg)
 
typedef UINT32 OS_PROCESS_ID
 
typedef UINT32 DEBUG_MODE_OPTIONS
 

Enumerations

enum  PROCESSOR_STATE {
  PROCESSOR_STATE_X87,
  PROCESSOR_STATE_XMM,
  PROCESSOR_STATE_YMM,
  PROCESSOR_STATE_ZMM
}
 
enum  IPOINT {
  IPOINT_INVALID,
  IPOINT_BEFORE,
  IPOINT_AFTER,
  IPOINT_ANYWHERE,
  IPOINT_TAKEN_BRANCH
}
 
enum  CONTEXT_CHANGE_REASON {
  CONTEXT_CHANGE_REASON_FATALSIGNAL,
  CONTEXT_CHANGE_REASON_SIGNAL,
  CONTEXT_CHANGE_REASON_SIGRETURN,
  CONTEXT_CHANGE_REASON_APC,
  CONTEXT_CHANGE_REASON_EXCEPTION,
  CONTEXT_CHANGE_REASON_CALLBACK
}
 
enum  EXCEPT_HANDLING_RESULT {
  EHR_HANDLED,
  EHR_UNHANDLED,
  EHR_CONTINUE_SEARCH
}
 
enum  CALL_ORDER {
  CALL_ORDER_FIRST = 100,
  CALL_ORDER_DEFAULT = 200,
  CALL_ORDER_LAST = 300
}
 
enum  IARG_TYPE {
  IARG_INVALID,
  IARG_ADDRINT,
  IARG_PTR,
  IARG_BOOL,
  IARG_UINT32,
  IARG_UINT64,
  IARG_INST_PTR,
  IARG_REG_VALUE,
  IARG_REG_REFERENCE,
  IARG_REG_CONST_REFERENCE,
  IARG_MEMORYREAD_EA,
  IARG_MEMORYREAD2_EA,
  IARG_MEMORYWRITE_EA,
  IARG_MEMORYREAD_SIZE,
  IARG_MEMORYWRITE_SIZE,
  IARG_MEMORYREAD_PTR,
  IARG_MEMORYREAD2_PTR,
  IARG_MEMORYWRITE_PTR,
  IARG_MEMORYOP_PTR,
  IARG_MULTI_MEMORYACCESS_EA,
  IARG_EXPLICIT_MEMORY_EA,
  IARG_BRANCH_TAKEN,
  IARG_BRANCH_TARGET_ADDR,
  IARG_FALLTHROUGH_ADDR,
  IARG_EXECUTING,
  IARG_FIRST_REP_ITERATION,
  IARG_PREDICATE,
  IARG_STACK_VALUE,
  IARG_STACK_REFERENCE,
  IARG_MEMORY_VALUE,
  IARG_MEMORY_REFERENCE,
  IARG_SYSCALL_NUMBER,
  IARG_SYSARG_REFERENCE,
  IARG_SYSARG_VALUE,
  IARG_SYSRET_VALUE,
  IARG_SYSRET_ERRNO,
  IARG_FUNCARG_CALLSITE_REFERENCE,
  IARG_FUNCARG_CALLSITE_VALUE,
  IARG_FUNCARG_ENTRYPOINT_REFERENCE,
  IARG_FUNCARG_ENTRYPOINT_VALUE,
  IARG_FUNCRET_EXITPOINT_REFERENCE,
  IARG_FUNCRET_EXITPOINT_VALUE,
  IARG_RETURN_IP,
  IARG_ORIG_FUNCPTR,
  IARG_PROTOTYPE,
  IARG_THREAD_ID,
  IARG_CONTEXT,
  IARG_CONST_CONTEXT,
  IARG_PARTIAL_CONTEXT,
  IARG_PRESERVE,
  IARG_RETURN_REGS,
  IARG_CALL_ORDER,
  IARG_IARGLIST,
  IARG_FAST_ANALYSIS_CALL,
  IARG_MEMORYOP_EA,
  IARG_MEMORYOP_MASKED_ON,
  IARG_TSC,
  IARG_FILE_NAME,
  IARG_LINE_NO,
  IARG_LAST
}
 
enum  CALLINGSTD_TYPE {
  CALLINGSTD_INVALID,
  CALLINGSTD_DEFAULT,
  CALLINGSTD_CDECL,
  CALLINGSTD_REGPARMS,
  CALLINGSTD_STDCALL,
  CALLINGSTD_ART
}
 
enum  PARG_TYPE {
  PARG_INVALID,
  PARG_POINTER,
  PARG_BOOL,
  PARG_CHAR,
  PARG_UCHAR,
  PARG_SCHAR,
  PARG_SHORT,
  PARG_USHORT,
  PARG_INT,
  PARG_UINT,
  PARG_LONG,
  PARG_ULONG,
  PARG_LONGLONG,
  PARG_ULONGLONG,
  PARG_FLOAT,
  PARG_DOUBLE,
  PARG_VOID,
  PARG_ENUM,
  PARG_AGGREGATE,
  PARG_END
}
 
enum  PIN_MEMOP_ENUM {
  PIN_MEMOP_LOAD,
  PIN_MEMOP_STORE
}
 
enum  DEBUG_STATUS {
  DEBUG_STATUS_DISABLED,
  DEBUG_STATUS_UNCONNECTABLE,
  DEBUG_STATUS_UNCONNECTED,
  DEBUG_STATUS_CONNECTED
}
 
enum  DEBUG_CONNECTION_TYPE {
  DEBUG_CONNECTION_TYPE_NONE,
  DEBUG_CONNECTION_TYPE_TCP_SERVER,
  DEBUG_CONNECTION_TYPE_TCP_CLIENT
}
 
enum  DEBUGGER_TYPE {
  DEBUGGER_TYPE_UNKNOWN,
  DEBUGGER_TYPE_GDB,
  DEBUGGER_TYPE_LLDB,
  DEBUGGER_TYPE_IDB,
  DEBUGGER_TYPE_VISUAL_STUDIO_VSDBG,
  DEBUGGER_TYPE_VISUAL_STUDIO
}
 
enum  DEBUG_MODE_OPTION {
  DEBUG_MODE_OPTION_NONE = 0,
  DEBUG_MODE_OPTION_STOP_AT_ENTRY = (1<<0),
  DEBUG_MODE_OPTION_SILENT = (1<<1),
  DEBUG_MODE_OPTION_ALLOW_REMOTE = (1<<2)
}
 
enum  PIN_CALLBACK_TYPE {
  PIN_CALLBACK_TYPE_NONE = 0,
  PIN_CALLBACK_TYPE_SYSCALL = 1
}
 

Variables

LOCALCONST UINT32 MAX_BYTES_PER_PIN_REG = 64
 
LOCALCONST UINT32 MAX_WORDS_PER_PIN_REG = (MAX_BYTES_PER_PIN_REG/2)
 
LOCALCONST UINT32 MAX_DWORDS_PER_PIN_REG = (MAX_WORDS_PER_PIN_REG/2)
 
LOCALCONST UINT32 MAX_QWORDS_PER_PIN_REG = (MAX_DWORDS_PER_PIN_REG/2)
 
LOCALCONST UINT32 MAX_FLOATS_PER_PIN_REG = (MAX_BYTES_PER_PIN_REG/sizeof(float))
 
LOCALCONST UINT32 MAX_DOUBLES_PER_PIN_REG = (MAX_BYTES_PER_PIN_REG/sizeof(double))
 
GLOBALCONST int MAX_MULTI_MEMOPS = 16
 
GLOBALCONST BUFFER_ID BUFFER_ID_INVALID = 0
 
GLOBALCONST THREADID INVALID_THREADID = static_cast<THREADID>(-1)
 
GLOBALCONST PIN_THREAD_UID INVALID_PIN_THREAD_UID = static_cast<PIN_THREAD_UID>(-1)
 
GLOBALCONST OS_THREAD_ID INVALID_OS_THREAD_ID = INVALID_NATIVE_TID
 
GLOBALCONST size_t DEFAULT_THREAD_STACK_SIZE = 256*sizeof(ADDRINT)*1024
 

Typedef Documentation

◆ BUFFER_ID

typedef UINT32 BUFFER_ID

Tool buffer ID assigned by Pin.

Variable Documentation

◆ BUFFER_ID_INVALID

GLOBALCONST BUFFER_ID BUFFER_ID_INVALID = 0

ID returned if defining a buffer fails.

◆ DEFAULT_THREAD_STACK_SIZE

GLOBALCONST size_t DEFAULT_THREAD_STACK_SIZE = 256*sizeof(ADDRINT)*1024

Default stack size for internal threads in PIN.