VirtualBox

Changeset 4212 in vbox


Ignore:
Timestamp:
Aug 18, 2007 1:35:13 AM (17 years ago)
Author:
vboxsync
Message:

SELMSelInfoIsExpandDown

Location:
trunk
Files:
3 edited

Legend:

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

    r4071 r4212  
    257257SELMDECL(int) SELMSelInfoValidateCS(PCSELMSELINFO pSelInfo, RTSEL SelCPL);
    258258
     259/** @def SELMSelInfoIsExpandDown
     260 * Tests whether the selector info describes an expand-down selector or now.
     261 *
     262 * @returns true / false.
     263 * @param   pSelInfo        The selector info.
     264 *
     265 * @remark  Realized as a macro for reasons of speed/lazyness and to avoid
     266 *          dragging in VBox/x86.h for now.
     267 */
     268#define SELMSelInfoIsExpandDown(pSelInfo) \
     269    (   (pSelInfo)->Raw.Gen.u1DescType \
     270     && ((pSelInfo)->Raw.Gen.u4Type & (X86_SEL_TYPE_DOWN | X86_SEL_TYPE_CODE)) == X86_SEL_TYPE_DOWN)
     271
    259272
    260273
  • trunk/src/VBox/Debugger/DBGConsole.cpp

    r4210 r4212  
     1/** $Id$ */
    12/** @file
    2  *
    3  * Debugger Console.
     3 * DBGC - Debugger Console.
    44 */
    55
     
    62356235                if (VBOX_SUCCESS(rc))
    62366236                {
    6237                     RTGCUINTPTR cb;
    6238                     /** @todo Add SELMSelInfoIsExpandDown() */
    6239                     if (    (SelInfo.Raw.Gen.u4Type & X86_SEL_TYPE_DOWN)
    6240                         &&  SelInfo.Raw.Gen.u1DescType
    6241                         &&  (   SelInfo.Raw.Gen.u4Type == X86_SEL_TYPE_RO_DOWN
    6242                              || SelInfo.Raw.Gen.u4Type == X86_SEL_TYPE_RO_DOWN_ACC
    6243                              || SelInfo.Raw.Gen.u4Type == X86_SEL_TYPE_RW_DOWN
    6244                              || SelInfo.Raw.Gen.u4Type == X86_SEL_TYPE_RW_DOWN_ACC))
     6237                    RTGCUINTPTR cb; /* -1 byte */
     6238                    if (SELMSelInfoIsExpandDown(&SelInfo))
    62456239                    {
    62466240                        if (    !SelInfo.Raw.Gen.u1Granularity
     
    62536247                    else
    62546248                    {
    6255                         if (Address.off >= SelInfo.cbLimit)
     6249                        if (Address.off > SelInfo.cbLimit)
    62566250                            return VERR_OUT_OF_SELECTOR_BOUNDS;
    62576251                        cb = SelInfo.cbLimit - Address.off;
     
    62616255                        if (!pcbRead)
    62626256                            return VERR_OUT_OF_SELECTOR_BOUNDS;
    6263                         cbRead = cb;
     6257                        cbRead = cb + 1;
    62646258                    }
    62656259                }
  • trunk/src/VBox/VMM/DBGFAddr.cpp

    r4198 r4212  
    6565
    6666        /* check limit. */
    67         if (    (SelInfo.Raw.Gen.u4Type & X86_SEL_TYPE_DOWN)
    68             &&  SelInfo.Raw.Gen.u1DescType
    69             &&  (   SelInfo.Raw.Gen.u4Type == X86_SEL_TYPE_RO_DOWN
    70                  || SelInfo.Raw.Gen.u4Type == X86_SEL_TYPE_RO_DOWN_ACC
    71                  || SelInfo.Raw.Gen.u4Type == X86_SEL_TYPE_RW_DOWN
    72                  || SelInfo.Raw.Gen.u4Type == X86_SEL_TYPE_RW_DOWN_ACC))
     67        if (SELMSelInfoIsExpandDown(&SelInfo))
    7368        {
    74             if (!SelInfo.Raw.Gen.u1Granularity && off > UINT32_C(0xffff))
     69            if (    !SelInfo.Raw.Gen.u1Granularity
     70                &&  off > UINT32_C(0xffff))
    7571                return VERR_OUT_OF_SELECTOR_BOUNDS;
    7672            if (off <= SelInfo.cbLimit)
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