VirtualBox

Changeset 41731 in vbox for trunk/src


Ignore:
Timestamp:
Jun 14, 2012 11:41:13 PM (13 years ago)
Author:
vboxsync
Message:

DIS: Split up apvUserData, dropping the 3rd entry. 2nd entry (now pvUser2) is only used by CSAM. Reduces the DISCPUSTATE by another 8 bytes.

Location:
trunk/src/VBox
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Disassembler/Disasm.cpp

    r41694 r41731  
    5858 * @param   pfnCallback     The byte fetcher callback.
    5959 * @param   pvUser          The user argument (found in
    60  *                          DISCPUSTATE::apvUserData[0]).
     60 *                          DISCPUSTATE::pvUser).
    6161 * @param   pCpu            Where to return the disassembled instruction.
    6262 * @param   pcbInstr        Where to store the size of the instruction. NULL is
  • trunk/src/VBox/Disassembler/DisasmCore.cpp

    r41728 r41731  
    227227 * @param   enmCpuMode      The CPU mode. DISCPUMODE_32BIT, DISCPUMODE_16BIT, or DISCPUMODE_64BIT.
    228228 * @param   pfnReadBytes    Callback for reading instruction bytes.
    229  * @param   pvUser          User argument for the instruction reader. (Ends up in apvUserData[0].)
     229 * @param   pvUser          User argument for the instruction reader. (Ends up in pvUser.)
    230230 * @param   pCpu            Pointer to cpu structure. Will be initialized.
    231231 * @param   pcbInstr        Where to store the size of the instruction.
     
    249249 * @param   enmCpuMode      The CPU mode. DISCPUMODE_32BIT, DISCPUMODE_16BIT, or DISCPUMODE_64BIT.
    250250 * @param   pfnReadBytes    Callback for reading instruction bytes.
    251  * @param   pvUser          User argument for the instruction reader. (Ends up in apvUserData[0].)
     251 * @param   pvUser          User argument for the instruction reader. (Ends up in pvUser.)
    252252 * @param   pCpu            Pointer to cpu structure. Will be initialized.
    253253 * @param   pcbInstr        Where to store the size of the instruction.
     
    271271 * @param   pfnReadBytes    Callback for reading instruction bytes.
    272272 * @param   fFilter         Instruction type filter.
    273  * @param   pvUser          User argument for the instruction reader. (Ends up in apvUserData[0].)
     273 * @param   pvUser          User argument for the instruction reader. (Ends up in pvUser.)
    274274 * @param   pCpu            Pointer to CPU structure. With the exception of
    275  *                          DISCPUSTATE::apvUserData[1] and
    276  *                          DISCPUSTATE::apvUserData[2], the structure will be
     275 *                          DISCPUSTATE::pvUser2, the structure will be
    277276 *                          completely initialized by this API, i.e. no input is
    278277 *                          taken from it.
     
    288287    /*
    289288     * Initialize the CPU state.
    290      * Note! The RT_BZERO make ASSUMPTIONS about the placement of apvUserData.
     289     * Note! The RT_BZERO make ASSUMPTIONS about the placement of pvUser2.
    291290     */
    292     RT_BZERO(pCpu, RT_OFFSETOF(DISCPUSTATE, apvUserData));
     291    RT_BZERO(pCpu, RT_OFFSETOF(DISCPUSTATE, pvUser2));
    293292
    294293    pCpu->mode              = enmCpuMode;
     
    312311    pCpu->rc                = VINF_SUCCESS;
    313312    pCpu->pfnReadBytes      = pfnReadBytes ? pfnReadBytes : disReadBytesDefault;
    314     pCpu->apvUserData[0]    = pvUser;
     313    pCpu->pvUser    = pvUser;
    315314
    316315    return disInstrWorker(pCpu, uInstrAddr, paOneByteMap, pcbInstr);
  • trunk/src/VBox/Runtime/testcase/tstLdr-3.cpp

    r41692 r41731  
    149149static DECLCALLBACK(int) MyReadBytes(PDISCPUSTATE pDisState, uint8_t *pbDst, RTUINTPTR uSrcAddr, uint32_t cbToRead)
    150150{
    151     memcpy(pbDst, (uint8_t const *)((uintptr_t)uSrcAddr + (uintptr_t)pDisState->apvUserData[0]), cbToRead);
     151    memcpy(pbDst, (uint8_t const *)((uintptr_t)uSrcAddr + (uintptr_t)pDisState->pvUser), cbToRead);
    152152    return VINF_SUCCESS;
    153153}
  • trunk/src/VBox/VMM/VMMAll/EMAll.cpp

    r41729 r41731  
    286286static DECLCALLBACK(int) emReadBytes(PDISCPUSTATE pDisState, uint8_t *pbDst, RTUINTPTR uSrcAddr, uint32_t cbToRead)
    287287{
    288     PEMDISSTATE   pState = (PEMDISSTATE)pDisState->apvUserData[0];
     288    PEMDISSTATE   pState = (PEMDISSTATE)pDisState->pvUser;
    289289# ifndef IN_RING0
    290290    PVM           pVM    = pState->pVM;
  • trunk/src/VBox/VMM/VMMR3/CPUM.cpp

    r41675 r41731  
    35293529static DECLCALLBACK(int) cpumR3DisasInstrRead(PDISCPUSTATE pDisState, uint8_t *pbDst, RTUINTPTR uSrcAddr, uint32_t cbToRead)
    35303530{
    3531     PCPUMDISASSTATE pState = (PCPUMDISASSTATE)pDisState->apvUserData[0];
     3531    PCPUMDISASSTATE pState = (PCPUMDISASSTATE)pDisState->pvUser;
    35323532    Assert(cbToRead > 0);
    35333533    for (;;)
  • trunk/src/VBox/VMM/VMMR3/CSAM.cpp

    r41727 r41731  
    728728static DECLCALLBACK(int) CSAMR3ReadBytes(PDISCPUSTATE pDisState, uint8_t *pbDst, RTUINTPTR uSrcAddr, uint32_t cbToRead)
    729729{
    730     PVM           pVM      = (PVM)pDisState->apvUserData[0];
    731     RTHCUINTPTR   pInstrHC = (RTHCUINTPTR)pDisState->apvUserData[1];
     730    PVM           pVM      = (PVM)pDisState->pvUser;
     731    RTHCUINTPTR   pInstrHC = (RTHCUINTPTR)pDisState->pvUser2;
    732732    RTGCUINTPTR32 pInstrGC = pDisState->uInstrAddr;
    733733    int           orgsize  = cbToRead;
     
    764764                               PDISCPUSTATE pCpu, uint32_t *pcbInstr, char *pszOutput, size_t cbOutput)
    765765{
    766     (pCpu)->apvUserData[1] = InstrHC;
     766    pCpu->pvUser2 = InstrHC;
    767767#ifdef DEBUG
    768768    return DISInstrToStrEx(InstrGC, enmCpuMode, CSAMR3ReadBytes, pVM, DISOPTYPE_ALL,
  • trunk/src/VBox/VMM/VMMR3/PATM.cpp

    r41727 r41731  
    536536DECLCALLBACK(int) patmReadBytes(PDISCPUSTATE pDisState, uint8_t *pbDst, RTUINTPTR uSrcAddr, uint32_t cbToRead)
    537537{
    538     PATMDISASM   *pDisInfo = (PATMDISASM *)pDisState->apvUserData[0];
     538    PATMDISASM   *pDisInfo = (PATMDISASM *)pDisState->pvUser;
    539539    int           orgsize  = cbToRead;
    540540
Note: See TracChangeset for help on using the changeset viewer.

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