VirtualBox

Changeset 22429 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Aug 25, 2009 11:54:39 AM (15 years ago)
Author:
vboxsync
Message:

VMM,x86.h/mac: Be more careful with X86DESCHC.

Location:
trunk/src/VBox/VMM
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/HWACCMInternal.h

    r22291 r22429  
    847847#ifdef VBOX_STRICT
    848848VMMR0DECL(void) HWACCMDumpRegs(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx);
    849 VMMR0DECL(void) HWACCMR0DumpDescriptor(PX86DESCHC  Desc, RTSEL Sel, const char *pszMsg);
     849VMMR0DECL(void) HWACCMR0DumpDescriptor(PCX86DESCHC pDesc, RTSEL Sel, const char *pszMsg);
    850850#else
    851 #define HWACCMDumpRegs(a, b ,c)             do { } while (0)
    852 #define HWACCMR0DumpDescriptor(a, b, c)     do { } while (0)
     851# define HWACCMDumpRegs(a, b ,c)            do { } while (0)
     852# define HWACCMR0DumpDescriptor(a, b, c)    do { } while (0)
    853853#endif
    854854
  • trunk/src/VBox/VMM/VMMR0/HWACCMR0.cpp

    r21210 r22429  
    13361336
    13371337#ifdef VBOX_STRICT
    1338 # include <iprt/string.h>
    13391338/**
    13401339 * Dumps a descriptor.
     
    13441343 * @param   pszMsg  Message to prepend the log entry with.
    13451344 */
    1346 VMMR0DECL(void) HWACCMR0DumpDescriptor(PX86DESCHC pDesc, RTSEL Sel, const char *pszMsg)
     1345VMMR0DECL(void) HWACCMR0DumpDescriptor(PCX86DESCHC pDesc, RTSEL Sel, const char *pszMsg)
    13471346{
    13481347    /*
     
    13531352        unsigned    cch;
    13541353        const char *psz;
    1355     } const aTypes[32] =
     1354    } const s_aTypes[32] =
    13561355    {
    13571356# define STRENTRY(str) { sizeof(str) - 1, str }
     
    14161415    char       *psz = &szMsg[0];
    14171416    unsigned    i = pDesc->Gen.u1DescType << 4 | pDesc->Gen.u4Type;
    1418     memcpy(psz, aTypes[i].psz, aTypes[i].cch);
    1419     psz += aTypes[i].cch;
     1417    memcpy(psz, s_aTypes[i].psz, s_aTypes[i].cch);
     1418    psz += s_aTypes[i].cch;
    14201419
    14211420    if (pDesc->Gen.u1Present)
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp

    r22257 r22429  
    715715    else
    716716        ASMBitSet(pMSRBitmap, ulBit);
    717    
     717
    718718    if (fWrite)
    719719        ASMBitClear(pMSRBitmap + 0x800, ulBit);
     
    10081008        RTGDTR      gdtr;
    10091009        RTSEL       SelTR;
    1010         PX86DESCHC pDesc;
     1010        PCX86DESCHC pDesc;
    10111011        uintptr_t   trBase;
    10121012        RTSEL       cs;
     
    11091109        }
    11101110
     1111        pDesc = (PCX86DESCHC)(gdtr.pGdt + (SelTR & X86_SEL_MASK));
    11111112#ifdef VBOX_WITH_HYBRID_32BIT_KERNEL
    11121113        if (VMX_IS_64BIT_HOST_MODE())
    11131114        {
    1114             pDesc  = &((PX86DESCHC)gdtr.pGdt)[SelTR >> X86_SEL_SHIFT_HC]; /// ????
    11151115            uint64_t trBase64 = X86DESC64_BASE(*(PX86DESC64)pDesc);
    11161116            rc = VMXWriteVMCS64(VMX_VMCS_HOST_TR_BASE, trBase64);
     
    11211121#endif
    11221122        {
    1123             pDesc  = &((PX86DESCHC)gdtr.pGdt)[SelTR >> X86_SEL_SHIFT_HC];
    11241123#if HC_ARCH_BITS == 64
    11251124            trBase = X86DESC64_BASE(*pDesc);
     
    42334232#ifdef VBOX_STRICT
    42344233            RTGDTR      gdtr;
    4235             PX86DESCHC pDesc;
     4234            PCX86DESCHC pDesc;
    42364235            RTCCUINTREG val;
    42374236
     
    42664265            if (val < gdtr.cbGdt)
    42674266            {
    4268                 pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
     4267                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
    42694268                HWACCMR0DumpDescriptor(pDesc, val, "CS: ");
    42704269            }
     
    42744273            if (val < gdtr.cbGdt)
    42754274            {
    4276                 pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
     4275                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
    42774276                HWACCMR0DumpDescriptor(pDesc, val, "DS: ");
    42784277            }
     
    42824281            if (val < gdtr.cbGdt)
    42834282            {
    4284                 pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
     4283                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
    42854284                HWACCMR0DumpDescriptor(pDesc, val, "ES: ");
    42864285            }
     
    42904289            if (val < gdtr.cbGdt)
    42914290            {
    4292                 pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
     4291                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
    42934292                HWACCMR0DumpDescriptor(pDesc, val, "FS: ");
    42944293            }
     
    42984297            if (val < gdtr.cbGdt)
    42994298            {
    4300                 pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
     4299                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
    43014300                HWACCMR0DumpDescriptor(pDesc, val, "GS: ");
    43024301            }
     
    43064305            if (val < gdtr.cbGdt)
    43074306            {
    4308                 pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
     4307                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
    43094308                HWACCMR0DumpDescriptor(pDesc, val, "SS: ");
    43104309            }
     
    43144313            if (val < gdtr.cbGdt)
    43154314            {
    4316                 pDesc  = &((PX86DESCHC)gdtr.pGdt)[val >> X86_SEL_SHIFT_HC];
     4315                pDesc  = (PCX86DESCHC)(gdtr.pGdt + (val & X86_SEL_MASK));
    43174316                HWACCMR0DumpDescriptor(pDesc, val, "TR: ");
    43184317            }
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