VirtualBox

Changeset 19463 in vbox for trunk/src/VBox


Ignore:
Timestamp:
May 6, 2009 8:30:57 PM (16 years ago)
Author:
vboxsync
Message:

dbgfsel.h,VMM,DBGC: Named the union containing the raw data to shut up gcc warnings.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/CPUM.cpp

    r19403 r19463  
    23532353            State.GCPtrSegEnd     = SelInfo.cbLimit + 1 + (RTGCUINTPTR)SelInfo.GCPtrBase;
    23542354            State.cbSegLimit      = SelInfo.cbLimit;
    2355             pCpu->mode            = SelInfo.Raw.Gen.u1DefBig ? CPUMODE_32BIT : CPUMODE_16BIT;
     2355            pCpu->mode            = SelInfo.u.Raw.Gen.u1DefBig ? CPUMODE_32BIT : CPUMODE_16BIT;
    23562356        }
    23572357    }
  • trunk/src/VBox/VMM/DBGFAddr.cpp

    r19334 r19463  
    8181        if (DBGFSelInfoIsExpandDown(&SelInfo))
    8282        {
    83             if (    !SelInfo.Raw.Gen.u1Granularity
     83            if (    !SelInfo.u.Raw.Gen.u1Granularity
    8484                &&  off > UINT32_C(0xffff))
    8585                return VERR_OUT_OF_SELECTOR_BOUNDS;
     
    9494        /** @todo fix all these selector tests! */
    9595        if (    !SelInfo.GCPtrBase
    96             &&  SelInfo.Raw.Gen.u1Granularity
    97             &&  SelInfo.Raw.Gen.u1DefBig)
     96            &&  SelInfo.u.Raw.Gen.u1Granularity
     97            &&  SelInfo.u.Raw.Gen.u1DefBig)
    9898            pAddress->fFlags = DBGFADDRESS_FLAGS_FLAT;
    9999        else if (SelInfo.cbLimit <= UINT32_C(0xffff))
  • trunk/src/VBox/VMM/DBGFDisas.cpp

    r19334 r19463  
    109109    pState->pVCpu           = pVCpu;
    110110    pState->fLocked         = false;
    111     pState->f64Bits         = enmMode >= PGMMODE_AMD64 && pSelInfo->Raw.Gen.u1Long;
     111    pState->f64Bits         = enmMode >= PGMMODE_AMD64 && pSelInfo->u.Raw.Gen.u1Long;
    112112    uint32_t cbInstr;
    113113    int rc = DISCoreOneEx(GCPtr,
    114114                          pState->f64Bits
    115115                          ? CPUMODE_64BIT
    116                           : pSelInfo->Raw.Gen.u1DefBig
     116                          : pSelInfo->u.Raw.Gen.u1DefBig
    117117                          ? CPUMODE_32BIT
    118118                          : CPUMODE_16BIT,
     
    344344        &&  CPUMAreHiddenSelRegsValid(pVM))
    345345    {
    346         SelInfo.Sel                 = Sel;
    347         SelInfo.SelGate             = 0;
    348         SelInfo.GCPtrBase           = pHiddenSel->u64Base;
    349         SelInfo.cbLimit             = pHiddenSel->u32Limit;
    350         SelInfo.fFlags              = PGMMODE_IS_LONG_MODE(enmMode)
    351                                     ? DBGFSELINFO_FLAGS_LONG_MODE
    352                                     : enmMode != PGMMODE_REAL && (!pCtxCore || !pCtxCore->eflags.Bits.u1VM)
    353                                     ? DBGFSELINFO_FLAGS_PROT_MODE
    354                                     : DBGFSELINFO_FLAGS_REAL_MODE;
    355 
    356         SelInfo.Raw.au32[0]         = 0;
    357         SelInfo.Raw.au32[1]         = 0;
    358         SelInfo.Raw.Gen.u16LimitLow = 0xffff;
    359         SelInfo.Raw.Gen.u4LimitHigh = 0xf;
    360         SelInfo.Raw.Gen.u1Present   = pHiddenSel->Attr.n.u1Present;
    361         SelInfo.Raw.Gen.u1Granularity = pHiddenSel->Attr.n.u1Granularity;;
    362         SelInfo.Raw.Gen.u1DefBig    = pHiddenSel->Attr.n.u1DefBig;
    363         SelInfo.Raw.Gen.u1Long      = pHiddenSel->Attr.n.u1Long;
    364         SelInfo.Raw.Gen.u1DescType  = pHiddenSel->Attr.n.u1DescType;
    365         SelInfo.Raw.Gen.u4Type      = pHiddenSel->Attr.n.u4Type;
    366         fRealModeAddress            = !!(SelInfo.fFlags & DBGFSELINFO_FLAGS_REAL_MODE);
     346        SelInfo.Sel                     = Sel;
     347        SelInfo.SelGate                 = 0;
     348        SelInfo.GCPtrBase               = pHiddenSel->u64Base;
     349        SelInfo.cbLimit                 = pHiddenSel->u32Limit;
     350        SelInfo.fFlags                  = PGMMODE_IS_LONG_MODE(enmMode)
     351                                        ? DBGFSELINFO_FLAGS_LONG_MODE
     352                                        : enmMode != PGMMODE_REAL && (!pCtxCore || !pCtxCore->eflags.Bits.u1VM)
     353                                        ? DBGFSELINFO_FLAGS_PROT_MODE
     354                                        : DBGFSELINFO_FLAGS_REAL_MODE;
     355
     356        SelInfo.u.Raw.au32[0]           = 0;
     357        SelInfo.u.Raw.au32[1]           = 0;
     358        SelInfo.u.Raw.Gen.u16LimitLow  = 0xffff;
     359        SelInfo.u.Raw.Gen.u4LimitHigh  = 0xf;
     360        SelInfo.u.Raw.Gen.u1Present     = pHiddenSel->Attr.n.u1Present;
     361        SelInfo.u.Raw.Gen.u1Granularity = pHiddenSel->Attr.n.u1Granularity;;
     362        SelInfo.u.Raw.Gen.u1DefBig      = pHiddenSel->Attr.n.u1DefBig;
     363        SelInfo.u.Raw.Gen.u1Long        = pHiddenSel->Attr.n.u1Long;
     364        SelInfo.u.Raw.Gen.u1DescType    = pHiddenSel->Attr.n.u1DescType;
     365        SelInfo.u.Raw.Gen.u4Type        = pHiddenSel->Attr.n.u4Type;
     366        fRealModeAddress                = !!(SelInfo.fFlags & DBGFSELINFO_FLAGS_REAL_MODE);
    367367    }
    368368    else if (Sel == DBGF_SEL_FLAT)
    369369    {
    370         SelInfo.Sel                 = Sel;
    371         SelInfo.SelGate             = 0;
    372         SelInfo.GCPtrBase           = 0;
    373         SelInfo.cbLimit             = ~0;
    374         SelInfo.fFlags              = PGMMODE_IS_LONG_MODE(enmMode)
    375                                     ? DBGFSELINFO_FLAGS_LONG_MODE
    376                                     : enmMode != PGMMODE_REAL
    377                                     ? DBGFSELINFO_FLAGS_PROT_MODE
    378                                     : DBGFSELINFO_FLAGS_REAL_MODE;
    379         SelInfo.Raw.au32[0]         = 0;
    380         SelInfo.Raw.au32[1]         = 0;
    381         SelInfo.Raw.Gen.u16LimitLow = 0xffff;
    382         SelInfo.Raw.Gen.u4LimitHigh = 0xf;
     370        SelInfo.Sel                     = Sel;
     371        SelInfo.SelGate                 = 0;
     372        SelInfo.GCPtrBase               = 0;
     373        SelInfo.cbLimit                 = ~0;
     374        SelInfo.fFlags                  = PGMMODE_IS_LONG_MODE(enmMode)
     375                                        ? DBGFSELINFO_FLAGS_LONG_MODE
     376                                        : enmMode != PGMMODE_REAL
     377                                        ? DBGFSELINFO_FLAGS_PROT_MODE
     378                                        : DBGFSELINFO_FLAGS_REAL_MODE;
     379        SelInfo.u.Raw.au32[0]           = 0;
     380        SelInfo.u.Raw.au32[1]           = 0;
     381        SelInfo.u.Raw.Gen.u16LimitLow  = 0xffff;
     382        SelInfo.u.Raw.Gen.u4LimitHigh  = 0xf;
    383383
    384384        if (CPUMAreHiddenSelRegsValid(pVM))
     
    387387            pHiddenSel = (CPUMSELREGHID *)&pCtxCore->csHid;
    388388
    389             SelInfo.Raw.Gen.u1Present       = pHiddenSel->Attr.n.u1Present;
    390             SelInfo.Raw.Gen.u1Granularity  = pHiddenSel->Attr.n.u1Granularity;;
    391             SelInfo.Raw.Gen.u1DefBig        = pHiddenSel->Attr.n.u1DefBig;
    392             SelInfo.Raw.Gen.u1Long          = pHiddenSel->Attr.n.u1Long;
    393             SelInfo.Raw.Gen.u1DescType      = pHiddenSel->Attr.n.u1DescType;
    394             SelInfo.Raw.Gen.u4Type          = pHiddenSel->Attr.n.u4Type;
     389            SelInfo.u.Raw.Gen.u1Present     = pHiddenSel->Attr.n.u1Present;
     390            SelInfo.u.Raw.Gen.u1Granularity = pHiddenSel->Attr.n.u1Granularity;;
     391            SelInfo.u.Raw.Gen.u1DefBig      = pHiddenSel->Attr.n.u1DefBig;
     392            SelInfo.u.Raw.Gen.u1Long        = pHiddenSel->Attr.n.u1Long;
     393            SelInfo.u.Raw.Gen.u1DescType    = pHiddenSel->Attr.n.u1DescType;
     394            SelInfo.u.Raw.Gen.u4Type        = pHiddenSel->Attr.n.u4Type;
    395395        }
    396396        else
    397397        {
    398             SelInfo.Raw.Gen.u1Present   = 1;
    399             SelInfo.Raw.Gen.u1Granularity = 1;
    400             SelInfo.Raw.Gen.u1DefBig    = 1;
    401             SelInfo.Raw.Gen.u1DescType  = 1;
    402             SelInfo.Raw.Gen.u4Type      = X86_SEL_TYPE_EO;
     398            SelInfo.u.Raw.Gen.u1Present     = 1;
     399            SelInfo.u.Raw.Gen.u1Granularity = 1;
     400            SelInfo.u.Raw.Gen.u1DefBig      = 1;
     401            SelInfo.u.Raw.Gen.u1DescType    = 1;
     402            SelInfo.u.Raw.Gen.u4Type        = X86_SEL_TYPE_EO;
    403403        }
    404404    }
     
    407407                 || enmMode == PGMMODE_REAL) )
    408408    {   /* V86 mode or real mode - real mode addressing */
    409         SelInfo.Sel                 = Sel;
    410         SelInfo.SelGate             = 0;
    411         SelInfo.GCPtrBase           = Sel * 16;
    412         SelInfo.cbLimit             = ~0;
    413         SelInfo.fFlags              = DBGFSELINFO_FLAGS_REAL_MODE;
    414         SelInfo.Raw.au32[0]         = 0;
    415         SelInfo.Raw.au32[1]         = 0;
    416         SelInfo.Raw.Gen.u16LimitLow = 0xffff;
    417         SelInfo.Raw.Gen.u4LimitHigh = 0xf;
    418         SelInfo.Raw.Gen.u1Present   = 1;
    419         SelInfo.Raw.Gen.u1Granularity = 1;
    420         SelInfo.Raw.Gen.u1DefBig    = 0; /* 16 bits */
    421         SelInfo.Raw.Gen.u1DescType  = 1;
    422         SelInfo.Raw.Gen.u4Type      = X86_SEL_TYPE_EO;
    423         fRealModeAddress            = true;
     409        SelInfo.Sel                     = Sel;
     410        SelInfo.SelGate                 = 0;
     411        SelInfo.GCPtrBase               = Sel * 16;
     412        SelInfo.cbLimit                 = ~0;
     413        SelInfo.fFlags                  = DBGFSELINFO_FLAGS_REAL_MODE;
     414        SelInfo.u.Raw.au32[0]           = 0;
     415        SelInfo.u.Raw.au32[1]           = 0;
     416        SelInfo.u.Raw.Gen.u16LimitLow  = 0xffff;
     417        SelInfo.u.Raw.Gen.u4LimitHigh  = 0xf;
     418        SelInfo.u.Raw.Gen.u1Present     = 1;
     419        SelInfo.u.Raw.Gen.u1Granularity = 1;
     420        SelInfo.u.Raw.Gen.u1DefBig      = 0; /* 16 bits */
     421        SelInfo.u.Raw.Gen.u1DescType    = 1;
     422        SelInfo.u.Raw.Gen.u4Type        = X86_SEL_TYPE_EO;
     423        fRealModeAddress                = true;
    424424    }
    425425    else
  • trunk/src/VBox/VMM/DBGFMem.cpp

    r19336 r19463  
    471471     * Check if present.
    472472     */
    473     if (pSelInfo->Raw.Gen.u1Present)
     473    if (pSelInfo->u.Raw.Gen.u1Present)
    474474    {
    475475        /*
    476476         * Type check.
    477477         */
    478         if (    pSelInfo->Raw.Gen.u1DescType == 1
    479             &&  (pSelInfo->Raw.Gen.u4Type & X86_SEL_TYPE_CODE))
     478        if (    pSelInfo->u.Raw.Gen.u1DescType == 1
     479            &&  (pSelInfo->u.Raw.Gen.u4Type & X86_SEL_TYPE_CODE))
    480480        {
    481481            /*
     
    483483             */
    484484            unsigned uLevel = RT_MAX(SelCPL & X86_SEL_RPL, pSelInfo->Sel & X86_SEL_RPL);
    485             if (    !(pSelInfo->Raw.Gen.u4Type & X86_SEL_TYPE_CONF)
    486                 ?   uLevel <= pSelInfo->Raw.Gen.u2Dpl
    487                 :   uLevel >= pSelInfo->Raw.Gen.u2Dpl /* hope I got this right now... */
     485            if (    !(pSelInfo->u.Raw.Gen.u4Type & X86_SEL_TYPE_CONF)
     486                ?   uLevel <= pSelInfo->u.Raw.Gen.u2Dpl
     487                :   uLevel >= pSelInfo->u.Raw.Gen.u2Dpl /* hope I got this right now... */
    488488                    )
    489489                return VINF_SUCCESS;
  • trunk/src/VBox/VMM/SELM.cpp

    r19336 r19463  
    20502050     * (We ignore the present bit here, which is probably a bit silly...)
    20512051     */
    2052     pSelInfo->Sel    = Sel;
    2053     pSelInfo->fFlags = DBGFSELINFO_FLAGS_LONG_MODE;
    2054     pSelInfo->Raw64 = Desc;
     2052    pSelInfo->Sel     = Sel;
     2053    pSelInfo->fFlags  = DBGFSELINFO_FLAGS_LONG_MODE;
     2054    pSelInfo->u.Raw64 = Desc;
    20552055    if (Desc.Gen.u1DescType)
    20562056    {
     
    21242124DECLINLINE(void) selmR3SelInfoFromDesc32(PDBGFSELINFO pSelInfo, PCX86DESC pDesc)
    21252125{
    2126     pSelInfo->Raw64.au64[1] = 0;
    2127     pSelInfo->Raw = *pDesc;
     2126    pSelInfo->u.Raw64.au64[1] = 0;
     2127    pSelInfo->u.Raw = *pDesc;
    21282128    if (    pDesc->Gen.u1DescType
    21292129        ||  !(pDesc->Gen.u4Type & 4))
     
    22592259        pSelInfo->cbLimit   = 0xffff;
    22602260        pSelInfo->fFlags    = DBGFSELINFO_FLAGS_REAL_MODE;
    2261         pSelInfo->Raw64.au64[0] = 0;
    2262         pSelInfo->Raw64.au64[1] = 0;
     2261        pSelInfo->u.Raw64.au64[0] = 0;
     2262        pSelInfo->u.Raw64.au64[1] = 0;
    22632263        pSelInfo->SelGate   = 0;
    22642264        return VINF_SUCCESS;
  • trunk/src/VBox/VMM/VMMTests.cpp

    r19462 r19463  
    458458            pHyperCtx->reg##Hid.u64Base              = selInfo.GCPtrBase;               \
    459459            pHyperCtx->reg##Hid.u32Limit             = selInfo.cbLimit;                 \
    460             pHyperCtx->reg##Hid.Attr.n.u1Present     = selInfo.Raw.Gen.u1Present;       \
    461             pHyperCtx->reg##Hid.Attr.n.u1DefBig      = selInfo.Raw.Gen.u1DefBig;        \
    462             pHyperCtx->reg##Hid.Attr.n.u1Granularity = selInfo.Raw.Gen.u1Granularity;  \
    463             pHyperCtx->reg##Hid.Attr.n.u4Type        = selInfo.Raw.Gen.u4Type;          \
    464             pHyperCtx->reg##Hid.Attr.n.u2Dpl         = selInfo.Raw.Gen.u2Dpl;           \
    465             pHyperCtx->reg##Hid.Attr.n.u1DescType    = selInfo.Raw.Gen.u1DescType;      \
    466             pHyperCtx->reg##Hid.Attr.n.u1Long        = selInfo.Raw.Gen.u1Long;          \
     460            pHyperCtx->reg##Hid.Attr.n.u1Present     = selInfo.u.Raw.Gen.u1Present;     \
     461            pHyperCtx->reg##Hid.Attr.n.u1DefBig      = selInfo.u.Raw.Gen.u1DefBig;      \
     462            pHyperCtx->reg##Hid.Attr.n.u1Granularity = selInfo.u.Raw.Gen.u1Granularity; \
     463            pHyperCtx->reg##Hid.Attr.n.u4Type        = selInfo.u.Raw.Gen.u4Type;        \
     464            pHyperCtx->reg##Hid.Attr.n.u2Dpl         = selInfo.u.Raw.Gen.u2Dpl;         \
     465            pHyperCtx->reg##Hid.Attr.n.u1DescType    = selInfo.u.Raw.Gen.u1DescType;    \
     466            pHyperCtx->reg##Hid.Attr.n.u1Long        = selInfo.u.Raw.Gen.u1Long;        \
    467467        }
    468468
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