VirtualBox

Changeset 9658 in vbox for trunk/src


Ignore:
Timestamp:
Jun 12, 2008 12:33:17 PM (17 years ago)
Author:
vboxsync
Message:

Renamed SELMIsSelector32Bit to SELMGetSelectorType.

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

Legend:

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

    r9341 r9658  
    15081508            {
    15091509                rc = PATMR3InstallPatch(pVM, SELMToFlat(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid, pCtx->eip),
    1510                                         SELMIsSelector32Bit(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid) ? PATMFL_CODE32 : 0);
     1510                                        (SELMGetSelectorType(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid) == CPUMODE_32BIT) ? PATMFL_CODE32 : 0);
    15111511                if (VBOX_SUCCESS(rc))
    15121512                {
     
    17591759        {
    17601760            int rc = PATMR3InstallPatch(pVM, SELMToFlat(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid, pCtx->eip),
    1761                                         SELMIsSelector32Bit(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid) ? PATMFL_CODE32 : 0);
     1761                                        (SELMGetSelectorType(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid) == CPUMODE_32BIT) ? PATMFL_CODE32 : 0);
    17621762            if (VBOX_SUCCESS(rc))
    17631763            {
     
    18661866        if (    (pCtx->ss & X86_SEL_RPL) == 0
    18671867            &&  !pCtx->eflags.Bits.u1VM
    1868             &&  SELMIsSelector32Bit(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid))
     1868            &&  SELMGetSelectorType(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid) == CPUMODE_32BIT)
    18691869        {
    18701870            uint32_t size;
     
    21092109        case VINF_PATM_HC_MMIO_PATCH_READ:
    21102110            rc = PATMR3InstallPatch(pVM, SELMToFlat(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid, pCtx->eip),
    2111                                     PATMFL_MMIO_ACCESS | (SELMIsSelector32Bit(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid) ? PATMFL_CODE32 : 0));
     2111                                    PATMFL_MMIO_ACCESS | ((SELMGetSelectorType(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid) == CPUMODE_32BIT) ? PATMFL_CODE32 : 0));
    21122112            if (VBOX_FAILURE(rc))
    21132113                rc = emR3RawExecuteInstruction(pVM, "MMIO");
  • trunk/src/VBox/VMM/PATM/CSAM.cpp

    r9412 r9658  
    21182118        fakeflags.u32 = 0;
    21192119
    2120         bool fCode32 = SELMIsSelector32Bit(pVM, fakeflags, Sel, pHiddenSel);
    2121 
    2122         //assuming 32 bits code for now
    2123         Assert(fCode32); NOREF(fCode32);
     2120        /* Assuming 32 bits code for now. */
     2121        Assert(SELMGetSelectorType(pVM, fakeflags, Sel, pHiddenSel) == CPUMODE_32BIT);
    21242122
    21252123        pInstrGC = SELMToFlat(pVM, fakeflags, Sel, pHiddenSel, pInstrGC);
  • trunk/src/VBox/VMM/PATM/VMMGC/PATMGC.cpp

    r9290 r9658  
    510510            }
    511511
    512             cpu.mode = SELMIsSelector32Bit(pVM, pRegFrame->eflags, pRegFrame->cs, 0) ? CPUMODE_32BIT : CPUMODE_16BIT;
     512            cpu.mode = SELMGetSelectorType(pVM, pRegFrame->eflags, pRegFrame->cs, 0);
    513513            if(cpu.mode != CPUMODE_32BIT)
    514514            {
  • trunk/src/VBox/VMM/VMMAll/EMAll.cpp

    r9656 r9658  
    167167EMDECL(int) EMInterpretDisasOneEx(PVM pVM, RTGCUINTPTR GCPtrInstr, PCCPUMCTXCORE pCtxCore, PDISCPUSTATE pCpu, unsigned *pcbInstr)
    168168{
    169     int rc = DISCoreOneEx(GCPtrInstr, SELMIsSelector32Bit(pVM, pCtxCore->eflags, pCtxCore->cs, (PCPUMSELREGHID)&pCtxCore->csHid) ? CPUMODE_32BIT : CPUMODE_16BIT,
     169    int rc = DISCoreOneEx(GCPtrInstr, SELMGetSelectorType(pVM, pCtxCore->eflags, pCtxCore->cs, (PCPUMSELREGHID)&pCtxCore->csHid),
    170170#ifdef IN_GC
    171171                          NULL, NULL,
     
    209209        uint32_t    cbOp;
    210210        DISCPUSTATE Cpu;
    211         Cpu.mode = SELMIsSelector32Bit(pVM, pRegFrame->eflags, pRegFrame->cs, &pRegFrame->csHid) ? CPUMODE_32BIT : CPUMODE_16BIT;
     211        Cpu.mode = SELMGetSelectorType(pVM, pRegFrame->eflags, pRegFrame->cs, &pRegFrame->csHid);
    212212        rc = emDisCoreOne(pVM, &Cpu, (RTGCUINTPTR)pbCode, &cbOp);
    213213        if (VBOX_SUCCESS(rc))
     
    631631
    632632            /* Read stack value first */
    633             if (SELMIsSelector32Bit(pVM, pRegFrame->eflags, pRegFrame->ss, &pRegFrame->ssHid) == false)
     633            if (SELMGetSelectorType(pVM, pRegFrame->eflags, pRegFrame->ss, &pRegFrame->ssHid) == CPUMODE_16BIT)
    634634                return VERR_EM_INTERPRETER; /* No legacy 16 bits stuff here, please. */
    635635
  • trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp

    r9282 r9658  
    302302    {
    303303        cTransfers = pRegFrame->ecx;
    304         if (!SELMIsSelector32Bit(pVM, pRegFrame->eflags, pRegFrame->cs, &pRegFrame->csHid))
     304        if (SELMGetSelectorType(pVM, pRegFrame->eflags, pRegFrame->cs, &pRegFrame->csHid) == CPUMODE_16BIT)
    305305            cTransfers &= 0xffff;
    306306
     
    543543    {
    544544        cTransfers = pRegFrame->ecx;
    545         if (!SELMIsSelector32Bit(pVM, pRegFrame->eflags, pRegFrame->cs, &pRegFrame->csHid))
     545        if (SELMGetSelectorType(pVM, pRegFrame->eflags, pRegFrame->cs, &pRegFrame->csHid) == CPUMODE_16BIT)
    546546            cTransfers &= 0xffff;
    547547
     
    13101310        cTransfers = pRegFrame->ecx;
    13111311
    1312         if (!SELMIsSelector32Bit(pVM, pRegFrame->eflags, pRegFrame->cs, &pRegFrame->csHid))
     1312        if (SELMGetSelectorType(pVM, pRegFrame->eflags, pRegFrame->cs, &pRegFrame->csHid) == CPUMODE_16BIT)
    13131313            cTransfers &= 0xffff;
    13141314
     
    14651465    {
    14661466        cTransfers = pRegFrame->ecx;
    1467         if (!SELMIsSelector32Bit(pVM, pRegFrame->eflags, pRegFrame->cs, &pRegFrame->csHid))
     1467        if (SELMGetSelectorType(pVM, pRegFrame->eflags, pRegFrame->cs, &pRegFrame->csHid) == CPUMODE_16BIT)
    14681468            cTransfers &= 0xffff;
    14691469
  • trunk/src/VBox/VMM/VMMAll/SELMAll.cpp

    r9656 r9658  
    536536
    537537/**
    538  * Checks if a selector is 32-bit or 16-bit.
    539  *
    540  * @returns True if it is 32-bit.
    541  * @returns False if it is 16-bit.
     538 * Return the selector type
     539 *
     540 * @returns DISCPUMODE according to the selector type (16, 32 or 64 bits)
    542541 * @param   pVM     VM Handle.
    543542 * @param   Sel     The selector.
    544543 */
    545 static bool selmIsSelector32Bit(PVM pVM, RTSEL Sel)
     544static DISCPUMODE selmGetSelectorType(PVM pVM, RTSEL Sel)
    546545{
    547546    Assert(!CPUMAreHiddenSelRegsValid(pVM));
     
    557556        Desc = paLDT[Sel >> X86_SEL_SHIFT];
    558557    }
    559     return Desc.Gen.u1DefBig;
    560 }
    561 
    562 
    563 /**
    564  * Checks if a selector is 32-bit or 16-bit.
    565  *
    566  * @returns True if it is 32-bit.
    567  * @returns False if it is 16-bit.
     558    return (Desc.Gen.u1DefBig) ? CPUMODE_32BIT : CPUMODE_16BIT;
     559}
     560
     561
     562/**
     563 * Return the selector type
     564 *
     565 * @returns DISCPUMODE according to the selector type (16, 32 or 64 bits)
    568566 * @param   pVM        VM Handle.
    569567 * @param   eflags     Current eflags register
     
    571569 * @param   pHiddenSel The hidden selector register.
    572570 */
    573 SELMDECL(bool) SELMIsSelector32Bit(PVM pVM, X86EFLAGS eflags, RTSEL Sel, CPUMSELREGHID *pHiddenSel)
     571SELMDECL(DISCPUMODE) SELMGetSelectorType(PVM pVM, X86EFLAGS eflags, RTSEL Sel, CPUMSELREGHID *pHiddenSel)
    574572{
    575573    if (!CPUMAreHiddenSelRegsValid(pVM))
     
    580578        if (    CPUMIsGuestInRealMode(pVM)
    581579            ||  eflags.Bits.u1VM)
    582             return false;
    583 
    584         return selmIsSelector32Bit(pVM, Sel);
    585     }
    586     return pHiddenSel->Attr.n.u1DefBig;
    587 }
    588 
     580            return CPUMODE_16BIT;
     581
     582        return selmGetSelectorType(pVM, Sel);
     583    }
     584    if (    CPUMIsGuestInLongMode(pVM)
     585        &&  pHiddenSel->Attr.n.u1Long)
     586        return CPUMODE_64BIT;
     587
     588    /* Else compatibility or 32 bits mode. */
     589    return (pHiddenSel->Attr.n.u1DefBig) ? CPUMODE_32BIT : CPUMODE_16BIT;
     590   
     591}
    589592
    590593/**
  • trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp

    r9457 r9658  
    18761876static int SVMR0InterpretInvpg(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t uASID)
    18771877{
     1878    Assert(!CPUMIsGuestInLongMode(pVM));    /** @todo */
    18781879    /*
    18791880     * Only allow 32-bit code.
    18801881     */
    1881     if (SELMIsSelector32Bit(pVM, pRegFrame->eflags, pRegFrame->cs, &pRegFrame->csHid))
     1882    if (SELMGetSelectorType(pVM, pRegFrame->eflags, pRegFrame->cs, &pRegFrame->csHid) == CPUMODE_16BIT)
    18821883    {
    18831884        RTGCPTR pbCode;
     
    19521953    Assert(pVM->hwaccm.s.fNestedPaging);
    19531954
     1955    Assert(!CPUMIsGuestInLongMode(pVM));    /** @todo */
     1956
    19541957    /* Skip it if a TLB flush is already pending. */
    19551958    if (!fFlushPending)
     
    19721975        * Only allow 32-bit code.
    19731976        */
    1974         if (SELMIsSelector32Bit(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid))
     1977        if (SELMGetSelectorType(pVM, pCtx->eflags, pCtx->cs, &pCtx->csHid))
    19751978        {
    19761979            RTGCPTR pbCode;
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