Logo Search packages:      
Sourcecode: virtualbox-ose version File versions

dis.h File Reference


Detailed Description

DIS - The VirtualBox Disassembler.

Definition in file dis.h.

#include <VBox/cdefs.h>
#include <VBox/types.h>
#include <VBox/cpum.h>
#include <VBox/disopcode.h>

Go to the source code of this file.

Classes

struct  _DISCPUSTATE
struct  _OP_PARAMETER
struct  _OPCODE
struct  OP_PARAMVAL
#define PARAM_VAL16   BIT(1)
#define PARAM_VAL32   BIT(2)
#define PARAM_VAL64   BIT(3)
#define PARAM_VAL8   BIT(0)
#define PARAM_VALFARPTR16   BIT(4)
#define PARAM_VALFARPTR32   BIT(5)
#define PARMTYPE_ADDRESS   2
#define PARMTYPE_IMMEDIATE   3
#define PARMTYPE_REGISTER   1
enum  PARAM_TYPE { PARAM_DEST, PARAM_SOURCE }
typedef OP_PARAMVAL * POP_PARAMVAL

Defines

#define OPTYPE_ALL   (0xffffffff)
#define OPTYPE_COND_CONTROLFLOW   BIT(10)
#define OPTYPE_CONTROLFLOW   BIT(2)
#define OPTYPE_DANGEROUS   BIT(4)
#define OPTYPE_HARMLESS   BIT(1)
#define OPTYPE_ILLEGAL   BIT(12)
#define OPTYPE_INHIBIT_IRQS   BIT(16)
#define OPTYPE_INTERRUPT   BIT(11)
#define OPTYPE_INVALID   BIT(0)
#define OPTYPE_PORTIO   BIT(5)
#define OPTYPE_PORTIO_READ   BIT(17)
#define OPTYPE_PORTIO_WRITE   BIT(18)
#define OPTYPE_POTENTIALLY_DANGEROUS   BIT(3)
#define OPTYPE_PRIVILEGED   BIT(6)
#define OPTYPE_PRIVILEGED_NOTRAP   BIT(7)
#define OPTYPE_RELATIVE_CONTROLFLOW   BIT(9)
#define OPTYPE_RRM_DANGEROUS   BIT(14)
#define OPTYPE_RRM_DANGEROUS_16   BIT(15)
#define OPTYPE_RRM_MASK   (OPTYPE_RRM_DANGEROUS | OPTYPE_RRM_DANGEROUS_16)
#define OPTYPE_UNCOND_CONTROLFLOW   BIT(8)
#define USE_REG_CR0   0
#define USE_REG_CR1   1
#define USE_REG_CR2   2
#define USE_REG_CR3   3
#define USE_REG_CR4   4
#define USE_REG_DR0   0
#define USE_REG_DR1   1
#define USE_REG_DR2   2
#define USE_REG_DR3   3
#define USE_REG_DR4   4
#define USE_REG_DR5   5
#define USE_REG_DR6   6
#define USE_REG_DR7   7
#define USE_REG_FP0   0
#define USE_REG_FP1   1
#define USE_REG_FP2   2
#define USE_REG_FP3   3
#define USE_REG_FP4   4
#define USE_REG_FP5   5
#define USE_REG_FP6   6
#define USE_REG_FP7   7
#define USE_REG_MMX0   0
#define USE_REG_MMX1   1
#define USE_REG_MMX2   2
#define USE_REG_MMX3   3
#define USE_REG_MMX4   4
#define USE_REG_MMX5   5
#define USE_REG_MMX6   6
#define USE_REG_MMX7   7
#define USE_REG_XMM0   0
#define USE_REG_XMM1   1
#define USE_REG_XMM2   2
#define USE_REG_XMM3   3
#define USE_REG_XMM4   4
#define USE_REG_XMM5   5
#define USE_REG_XMM6   6
#define USE_REG_XMM7   7
#define CPUMODE_16BIT   1
#define CPUMODE_32BIT   2
#define PREFIX_ADDRSIZE   1
#define PREFIX_LOCK   4
#define PREFIX_NONE   0
#define PREFIX_OPSIZE   2
#define PREFIX_REP   16
#define PREFIX_REPNE   32
#define PREFIX_SEG   8
#define USE_BASE   BIT(0)
#define USE_DISPLACEMENT16   BIT(14)
#define USE_DISPLACEMENT32   BIT(15)
#define USE_DISPLACEMENT8   BIT(13)
#define USE_IMMEDIATE   (USE_IMMEDIATE8|USE_IMMEDIATE16|USE_IMMEDIATE32|USE_IMMEDIATE64|USE_IMMEDIATE8_REL|USE_IMMEDIATE16_REL|USE_IMMEDIATE32_REL|USE_IMMEDIATE_ADDR_0_32|USE_IMMEDIATE_ADDR_16_32|USE_IMMEDIATE_ADDR_0_16|USE_IMMEDIATE_ADDR_16_16|USE_IMMEDIATE16_SX8|USE_IMMEDIATE32_SX8)
#define USE_IMMEDIATE16   BIT(18)
#define USE_IMMEDIATE16_REL   BIT(19)
#define USE_IMMEDIATE16_SX8   BIT(29)
#define USE_IMMEDIATE32   BIT(20)
#define USE_IMMEDIATE32_REL   BIT(21)
#define USE_IMMEDIATE32_SX8   BIT(30)
#define USE_IMMEDIATE64   BIT(22)
#define USE_IMMEDIATE8   BIT(16)
#define USE_IMMEDIATE8_REL   BIT(17)
#define USE_IMMEDIATE_ADDR_0_16   BIT(25)
#define USE_IMMEDIATE_ADDR_0_32   BIT(23)
#define USE_IMMEDIATE_ADDR_16_16   BIT(26)
#define USE_IMMEDIATE_ADDR_16_32   BIT(24)
#define USE_INDEX   BIT(1)
#define USE_POINTER_DS_BASED   BIT(27)
#define USE_POINTER_ES_BASED   BIT(28)
#define USE_REG_CR   BIT(9)
#define USE_REG_DBG   BIT(10)
#define USE_REG_FP   BIT(6)
#define USE_REG_GEN16   BIT(4)
#define USE_REG_GEN32   BIT(5)
#define USE_REG_GEN8   BIT(3)
#define USE_REG_MMX   BIT(7)
#define USE_REG_SEG   BIT(11)
#define USE_REG_TEST   BIT(12)
#define USE_REG_XMM   BIT(8)
#define USE_SCALE   BIT(2)
#define USE_REG_AH   4
#define USE_REG_AL   0
#define USE_REG_BH   7
#define USE_REG_BL   3
#define USE_REG_CH   5
#define USE_REG_CL   1
#define USE_REG_DH   6
#define USE_REG_DL   2
#define USE_REG_AX   0
#define USE_REG_BP   5
#define USE_REG_BX   3
#define USE_REG_CX   1
#define USE_REG_DI   7
#define USE_REG_DX   2
#define USE_REG_SI   6
#define USE_REG_SP   4
#define USE_REG_CS   1
#define USE_REG_DS   3
#define USE_REG_ES   0
#define USE_REG_FS   4
#define USE_REG_GS   5
#define USE_REG_SS   2
#define USE_REG_EAX   0
#define USE_REG_EBP   5
#define USE_REG_EBX   3
#define USE_REG_ECX   1
#define USE_REG_EDI   7
#define USE_REG_EDX   2
#define USE_REG_ESI   6
#define USE_REG_ESP   4

Typedefs

typedef struct _DISCPUSTATE DISCPUSTATE
typedef uint8_t uint32_t RTUINTPTR dwUserdata
typedef int FNDISPARSE (RTUINTPTR pu8CodeBlock, PCOPCODE pOp, POP_PARAMETER pParam, PDISCPUSTATE pCpu)
typedef struct _OP_PARAMETER OP_PARAMETER
typedef struct _OPCODE OPCODE
typedef const OP_PARAMETERPCOP_PARAMETER
typedef struct _OPCODEPCOPCODE
typedef uint8_t * pDest
typedef struct _DISCPUSTATE * PDISCPUSTATE
typedef FN_DIS_READBYTES * PFN_DIS_READBYTES
typedef FNDISPARSEPFNDISPARSE
typedef OP_PARAMETERPOP_PARAMETER
typedef struct _OPCODEPOPCODE
typedef uint8_t uint32_t size

Functions

typedef DECLCALLBACK (int32_t) FN_DIS_READBYTES(RTUINTPTR pSrc
 DISDECL (int) DISCoreOneEx(RTUINTPTR InstructionAddr
 DISDECL (bool) DISBlock(PDISCPUSTATE pCpu

Variables

RTUINTPTR int32_t cbMax
unsigned CpuMode
RTUINTPTR InstructionAddr
PDISCPUSTATE POP_PARAMETER
POP_PARAMVAL PARAM_TYPE 
parmtype
RTUINTPTR unsigned * pcbInstruction
RTUINTPTR uint32_t uint32_t * pcbSize
unsigned PFN_DIS_READBYTES
void PDISCPUSTATE 
pCpu
unsigned PFN_DIS_READBYTES pfnReadBytes
POP_PARAMETER pParam
PDISCPUSTATE POP_PARAMETER
POP_PARAMVAL 
pParamVal
uint32_t RTSEL CPUMSELREGHID ** ppSelHidReg
RTUINTPTR int32_t uint32_t * pSize
RTUINTPTR uint32_t uint32_t char * pszOutput
RTUINTPTR pu8Instruction
uint32_t uint8_t * pVal
RTUINTPTR pvCodeBlock
unsigned PFN_DIS_READBYTES void * pvUser
uint32_t reg16
uint32_t reg32
uint32_t reg8
uint32_t sel
RTUINTPTR uint32_t u32EipOffset
RTUINTPTR uint32_t uint32_t
char uint32_t 
uFilter
uint32_t RTSEL val
uint32_t uint16_t val16
uint32_t uint32_t val32
uint32_t uint8_t val8


Generated by  Doxygen 1.6.0   Back to index