VirtualBox

Changeset 31491 in vbox for trunk/include


Ignore:
Timestamp:
Aug 9, 2010 4:13:37 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
64576
Message:

DBGF: Kick-off for DBGFR3Reg*. Implemented simple queried only. The debugger + MachineDebugger will use only this API later on.

Location:
trunk/include/VBox
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/dbgf.h

    r31460 r31491  
    937937
    938938/**
     939 * Register identifiers.
     940 */
     941typedef enum DBGFREG
     942{
     943    /* General purpose registers: */
     944    DBGFREG_AL  = 0,
     945    DBGFREG_AX  = DBGFREG_AL,
     946    DBGFREG_EAX = DBGFREG_AL,
     947    DBGFREG_RAX = DBGFREG_AL,
     948
     949    DBGFREG_CL,
     950    DBGFREG_CX  = DBGFREG_CL,
     951    DBGFREG_ECX = DBGFREG_CL,
     952    DBGFREG_RCX = DBGFREG_CL,
     953
     954    DBGFREG_DL,
     955    DBGFREG_DX  = DBGFREG_DL,
     956    DBGFREG_EDX = DBGFREG_DL,
     957    DBGFREG_RDX = DBGFREG_DL,
     958
     959    DBGFREG_BL,
     960    DBGFREG_BX  = DBGFREG_BL,
     961    DBGFREG_EBX = DBGFREG_BL,
     962    DBGFREG_RBX = DBGFREG_BL,
     963
     964    DBGFREG_SPL,
     965    DBGFREG_SP  = DBGFREG_SPL,
     966    DBGFREG_ESP = DBGFREG_SPL,
     967    DBGFREG_RSP = DBGFREG_SPL,
     968
     969    DBGFREG_BPL,
     970    DBGFREG_BP  = DBGFREG_BPL,
     971    DBGFREG_EBP = DBGFREG_BPL,
     972    DBGFREG_RBP = DBGFREG_BPL,
     973
     974    DBGFREG_SIL,
     975    DBGFREG_SI  = DBGFREG_SIL,
     976    DBGFREG_ESI = DBGFREG_SIL,
     977    DBGFREG_RSI = DBGFREG_SIL,
     978
     979    DBGFREG_DIL,
     980    DBGFREG_DI  = DBGFREG_DIL,
     981    DBGFREG_EDI = DBGFREG_DIL,
     982    DBGFREG_RDI = DBGFREG_DIL,
     983
     984    DBGFREG_R8,
     985    DBGFREG_R8B = DBGFREG_R8,
     986    DBGFREG_R8W = DBGFREG_R8,
     987    DBGFREG_R8D = DBGFREG_R8,
     988
     989    DBGFREG_R9,
     990    DBGFREG_R9B = DBGFREG_R9,
     991    DBGFREG_R9W = DBGFREG_R9,
     992    DBGFREG_R9D = DBGFREG_R9,
     993
     994    DBGFREG_R10,
     995    DBGFREG_R10B = DBGFREG_R10,
     996    DBGFREG_R10W = DBGFREG_R10,
     997    DBGFREG_R10D = DBGFREG_R10,
     998
     999    DBGFREG_R11,
     1000    DBGFREG_R11B = DBGFREG_R11,
     1001    DBGFREG_R11W = DBGFREG_R11,
     1002    DBGFREG_R11D = DBGFREG_R11,
     1003
     1004    DBGFREG_R12,
     1005    DBGFREG_R12B = DBGFREG_R12,
     1006    DBGFREG_R12W = DBGFREG_R12,
     1007    DBGFREG_R12D = DBGFREG_R12,
     1008
     1009    DBGFREG_R13,
     1010    DBGFREG_R13B = DBGFREG_R13,
     1011    DBGFREG_R13W = DBGFREG_R13,
     1012    DBGFREG_R13D = DBGFREG_R13,
     1013
     1014    DBGFREG_R14,
     1015    DBGFREG_R14B = DBGFREG_R14,
     1016    DBGFREG_R14W = DBGFREG_R14,
     1017    DBGFREG_R14D = DBGFREG_R14,
     1018
     1019    DBGFREG_R15,
     1020    DBGFREG_R15B = DBGFREG_R15,
     1021    DBGFREG_R15W = DBGFREG_R15,
     1022    DBGFREG_R15D = DBGFREG_R15,
     1023
     1024    DBGFREG_AH,
     1025    DBGFREG_CH,
     1026    DBGFREG_DH,
     1027    DBGFREG_BH,
     1028
     1029    /* Segments and other special registers: */
     1030    DBGFREG_CS,
     1031    DBGFREG_DS,
     1032    DBGFREG_ES,
     1033    DBGFREG_FS,
     1034    DBGFREG_GS,
     1035    DBGFREG_SS,
     1036
     1037    DBGFREG_CS_ATTR,
     1038    DBGFREG_DS_ATTR,
     1039    DBGFREG_ES_ATTR,
     1040    DBGFREG_FS_ATTR,
     1041    DBGFREG_GS_ATTR,
     1042    DBGFREG_SS_ATTR,
     1043
     1044    DBGFREG_CS_BASE,
     1045    DBGFREG_DS_BASE,
     1046    DBGFREG_ES_BASE,
     1047    DBGFREG_FS_BASE,
     1048    DBGFREG_GS_BASE,
     1049    DBGFREG_SS_BASE,
     1050
     1051    DBGFREG_CS_LIMIT,
     1052    DBGFREG_DS_LIMIT,
     1053    DBGFREG_ES_LIMIT,
     1054    DBGFREG_FS_LIMIT,
     1055    DBGFREG_GS_LIMIT,
     1056    DBGFREG_SS_LIMIT,
     1057
     1058    DBGFREG_IP,
     1059    DBGFREG_EIP = DBGFREG_IP,
     1060    DBGFREG_RIP = DBGFREG_IP,
     1061
     1062    DBGFREG_FLAGS,
     1063    DBGFREG_EFLAGS = DBGFREG_FLAGS,
     1064    DBGFREG_RFLAGS = DBGFREG_FLAGS,
     1065
     1066    /* FPU: */
     1067    DBGFREG_ST0,
     1068    DBGFREG_ST1,
     1069    DBGFREG_ST2,
     1070    DBGFREG_ST3,
     1071    DBGFREG_ST4,
     1072    DBGFREG_ST5,
     1073    DBGFREG_ST6,
     1074    DBGFREG_ST7,
     1075
     1076    DBGFREG_MM0,
     1077    DBGFREG_MM1,
     1078    DBGFREG_MM2,
     1079    DBGFREG_MM3,
     1080    DBGFREG_MM4,
     1081    DBGFREG_MM5,
     1082    DBGFREG_MM6,
     1083    DBGFREG_MM7,
     1084
     1085    DBGFREG_FCW,
     1086    DBGFREG_FSW,
     1087    DBGFREG_FTW,
     1088    DBGFREG_FOP,
     1089    DBGFREG_FPUIP,
     1090    DBGFREG_FPUCS,
     1091    DBGFREG_FPUDP,
     1092    DBGFREG_FPUDS,
     1093    DBGFREG_MXCSR,
     1094    DBGFREG_MXCSR_MASK,
     1095
     1096    /* SSE: */
     1097    DBGFREG_XMM0,
     1098    DBGFREG_XMM1,
     1099    DBGFREG_XMM2,
     1100    DBGFREG_XMM3,
     1101    DBGFREG_XMM4,
     1102    DBGFREG_XMM5,
     1103    DBGFREG_XMM6,
     1104    DBGFREG_XMM7,
     1105    DBGFREG_XMM8,
     1106    DBGFREG_XMM9,
     1107    DBGFREG_XMM10,
     1108    DBGFREG_XMM11,
     1109    DBGFREG_XMM12,
     1110    DBGFREG_XMM13,
     1111    DBGFREG_XMM14,
     1112    DBGFREG_XMM15,
     1113    /** @todo add XMM aliases. */
     1114
     1115    /* System registers: */
     1116    DBGFREG_GDTR,
     1117    DBGFREG_GDTR_BASE,
     1118    DBGFREG_GDTR_LIMIT,
     1119    DBGFREG_IDTR,
     1120    DBGFREG_IDTR_BASE,
     1121    DBGFREG_IDTR_LIMIT,
     1122    DBGFREG_LDTR,
     1123    DBGFREG_LDTR_ATTR,
     1124    DBGFREG_LDTR_BASE,
     1125    DBGFREG_LDTR_LIMIT,
     1126    DBGFREG_TR,
     1127    DBGFREG_TR_ATTR,
     1128    DBGFREG_TR_BASE,
     1129    DBGFREG_TR_LIMIT,
     1130
     1131    DBGFREG_CR0,
     1132    DBGFREG_CR2,
     1133    DBGFREG_CR3,
     1134    DBGFREG_CR4,
     1135    DBGFREG_CR8,
     1136
     1137    DBGFREG_DR0,
     1138    DBGFREG_DR1,
     1139    DBGFREG_DR2,
     1140    DBGFREG_DR3,
     1141    DBGFREG_DR6,
     1142    DBGFREG_DR7,
     1143
     1144    /* MSRs: */
     1145    DBGFREG_MSR_IA32_APICBASE,
     1146    DBGFREG_MSR_IA32_CR_PAT,
     1147    DBGFREG_MSR_IA32_PERF_STATUS,
     1148    DBGFREG_MSR_IA32_SYSENTER_CS,
     1149    DBGFREG_MSR_IA32_SYSENTER_EIP,
     1150    DBGFREG_MSR_IA32_SYSENTER_ESP,
     1151    DBGFREG_MSR_IA32_TSC,
     1152    DBGFREG_MSR_K6_EFER,
     1153    DBGFREG_MSR_K6_STAR,
     1154    DBGFREG_MSR_K8_CSTAR,
     1155    DBGFREG_MSR_K8_FS_BASE,
     1156    DBGFREG_MSR_K8_GS_BASE,
     1157    DBGFREG_MSR_K8_KERNEL_GS_BASE,
     1158    DBGFREG_MSR_K8_LSTAR,
     1159    DBGFREG_MSR_K8_SF_MASK,
     1160    DBGFREG_MSR_K8_TSC_AUX,
     1161
     1162    /** The end of the registers.  */
     1163    DBGFREG_END,
     1164    /** The usual 32-bit type hack. */
     1165    DBGFREG_32BIT_HACK = 0x7fffffff
     1166} DBGFREG;
     1167
     1168VMMR3DECL(int) DBGFR3RegQueryU8(  PVM pVM, VMCPUID idCpu, DBGFREG enmReg, uint8_t     *pu8);
     1169VMMR3DECL(int) DBGFR3RegQueryU16( PVM pVM, VMCPUID idCpu, DBGFREG enmReg, uint16_t    *pu16);
     1170VMMR3DECL(int) DBGFR3RegQueryU32( PVM pVM, VMCPUID idCpu, DBGFREG enmReg, uint32_t    *pu32);
     1171VMMR3DECL(int) DBGFR3RegQueryU64( PVM pVM, VMCPUID idCpu, DBGFREG enmReg, uint64_t    *pu64);
     1172VMMR3DECL(int) DBGFR3RegQueryU128(PVM pVM, VMCPUID idCpu, DBGFREG enmReg, uint128_t   *pu128);
     1173VMMR3DECL(int) DBGFR3RegQueryLrd( PVM pVM, VMCPUID idCpu, DBGFREG enmReg, long double *plrd);
     1174VMMR3DECL(int) DBGFR3RegQueryXdtr( PVM pVM, VMCPUID idCpu, DBGFREG enmReg, uint64_t *pu64Base, uint16_t *pu16Limit);
     1175
     1176VMMR3DECL(int) DBGFR3RegSetU8(  PVM pVM, VMCPUID idCpu, DBGFREG enmReg, uint8_t     u8);
     1177VMMR3DECL(int) DBGFR3RegSetU16( PVM pVM, VMCPUID idCpu, DBGFREG enmReg, uint16_t    u16);
     1178VMMR3DECL(int) DBGFR3RegSetU32( PVM pVM, VMCPUID idCpu, DBGFREG enmReg, uint32_t    u32);
     1179VMMR3DECL(int) DBGFR3RegSetU64( PVM pVM, VMCPUID idCpu, DBGFREG enmReg, uint64_t    u64);
     1180VMMR3DECL(int) DBGFR3RegSetU128(PVM pVM, VMCPUID idCpu, DBGFREG enmReg, uint128_t   u128);
     1181VMMR3DECL(int) DBGFR3RegSetLrd( PVM pVM, VMCPUID idCpu, DBGFREG enmReg, long double lrd);
     1182
     1183
     1184/**
    9391185 * Guest OS digger interface identifier.
    9401186 *
  • trunk/include/VBox/err.h

    r30862 r31491  
    267267/** The OS was not detected. */
    268268#define VINF_DBGF_OS_NOT_DETCTED            1209
     269/** Invalid register number. */
     270#define VERR_DBGF_INVALID_REGISTER          (-1210)
     271/** The value was truncated to fit.
     272 * For queries this means that the register is wider than the queried value.
     273 * For setters this means that the value is wider than the register. */
     274#define VINF_DBGF_TRUNCATED_REGISTER        1211
     275/** The value was zero extended to fit.
     276 * For queries this means that the register is narrower than the queried value.
     277 * For setters this means that the value is narrower than the register. */
     278#define VINF_DBGF_ZERO_EXTENDED_REGISTER    1212
    269279/** @} */
    270280
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette