VirtualBox

Changeset 9430 in vbox for trunk/src


Ignore:
Timestamp:
Jun 5, 2008 3:28:07 PM (17 years ago)
Author:
vboxsync
Message:

Made the base of GDTR and IDTR 64 bits.

Location:
trunk/src/VBox
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Debugger/DBGCBuiltInSymbols.cpp

    r9270 r9430  
    8282/** 8 byte. */
    8383#define SYMREG_SIZE_8           ( 8 << SYMREG_SIZE_SHIFT)
     84/** 10 bytes. */
     85#define SYMREG_SIZE_10          (10 << SYMREG_SIZE_SHIFT)
    8486/** 12 byte. */
    8587#define SYMREG_SIZE_12          (12 << SYMREG_SIZE_SHIFT)
     
    148150    { "ldtr",   dbgcSymGetReg,          dbgcSymSetReg,      offsetof(CPUMCTX, ldtr)     | SYMREG_SIZE_2 },
    149151
    150     { "gdtr",   dbgcSymGetReg,          dbgcSymSetReg,      offsetof(CPUMCTX, gdtr)     | SYMREG_SIZE_6 },
     152    { "gdtr",   dbgcSymGetReg,          dbgcSymSetReg,      offsetof(CPUMCTX, gdtr)     | SYMREG_SIZE_10 },
    151153    { "gdtr.limit", dbgcSymGetReg,      dbgcSymSetReg,      offsetof(CPUMCTX, gdtr.cbGdt)| SYMREG_SIZE_2 },
    152     { "gdtr.base",  dbgcSymGetReg,      dbgcSymSetReg,      offsetof(CPUMCTX, gdtr.pGdt)| SYMREG_SIZE_4 },
    153 
    154     { "idtr",   dbgcSymGetReg,          dbgcSymSetReg,      offsetof(CPUMCTX, idtr)     | SYMREG_SIZE_6 },
     154    { "gdtr.base",  dbgcSymGetReg,      dbgcSymSetReg,      offsetof(CPUMCTX, gdtr.pGdt)| SYMREG_SIZE_8 },
     155
     156    { "idtr",   dbgcSymGetReg,          dbgcSymSetReg,      offsetof(CPUMCTX, idtr)     | SYMREG_SIZE_10 },
    155157    { "idtr.limit", dbgcSymGetReg,      dbgcSymSetReg,      offsetof(CPUMCTX, idtr.cbIdt)| SYMREG_SIZE_2 },
    156     { "idtr.base",  dbgcSymGetReg,      dbgcSymSetReg,      offsetof(CPUMCTX, idtr.pIdt)| SYMREG_SIZE_4 },
     158    { "idtr.base",  dbgcSymGetReg,      dbgcSymSetReg,      offsetof(CPUMCTX, idtr.pIdt)| SYMREG_SIZE_8 },
    157159
    158160    /* hypervisor */
     
    213215    {".ldtr",   dbgcSymGetReg,          dbgcSymSetReg,      offsetof(CPUMCTX, ldtr)     | SYMREG_SIZE_2 | SYMREG_FLAGS_HYPER },
    214216
    215     {".gdtr",   dbgcSymGetReg,          dbgcSymSetReg,      offsetof(CPUMCTX, gdtr)     | SYMREG_SIZE_6 | SYMREG_FLAGS_HYPER },
     217    {".gdtr",   dbgcSymGetReg,          dbgcSymSetReg,      offsetof(CPUMCTX, gdtr)     | SYMREG_SIZE_10 | SYMREG_FLAGS_HYPER },
    216218    {".gdtr.limit", dbgcSymGetReg,      dbgcSymSetReg,      offsetof(CPUMCTX, gdtr.cbGdt)| SYMREG_SIZE_2| SYMREG_FLAGS_HYPER },
    217     {".gdtr.base",  dbgcSymGetReg,      dbgcSymSetReg,      offsetof(CPUMCTX, gdtr.pGdt)| SYMREG_SIZE_4 | SYMREG_FLAGS_HYPER },
    218 
    219     {".idtr",   dbgcSymGetReg,          dbgcSymSetReg,      offsetof(CPUMCTX, idtr)     | SYMREG_SIZE_6 | SYMREG_FLAGS_HYPER },
     219    {".gdtr.base",  dbgcSymGetReg,      dbgcSymSetReg,      offsetof(CPUMCTX, gdtr.pGdt)| SYMREG_SIZE_8 | SYMREG_FLAGS_HYPER },
     220
     221    {".idtr",   dbgcSymGetReg,          dbgcSymSetReg,      offsetof(CPUMCTX, idtr)     | SYMREG_SIZE_10 | SYMREG_FLAGS_HYPER },
    220222    {".idtr.limit", dbgcSymGetReg,      dbgcSymSetReg,      offsetof(CPUMCTX, idtr.cbIdt)| SYMREG_SIZE_2| SYMREG_FLAGS_HYPER },
    221     {".idtr.base",  dbgcSymGetReg,      dbgcSymSetReg,      offsetof(CPUMCTX, idtr.pIdt)| SYMREG_SIZE_4 | SYMREG_FLAGS_HYPER },
     223    {".idtr.base",  dbgcSymGetReg,      dbgcSymSetReg,      offsetof(CPUMCTX, idtr.pIdt)| SYMREG_SIZE_8 | SYMREG_FLAGS_HYPER },
    222224
    223225};
  • trunk/src/VBox/Debugger/DBGCEmulateCodeView.cpp

    r9424 r9430  
    13521352                "%sgs={%04x base=%VGv limit=%08x flags=%08x} %scr0=%08x %scr2=%08x\n"
    13531353                "%sss={%04x base=%VGv limit=%08x flags=%08x} %scr3=%08x %scr4=%08x\n"
    1354                 "%sgdtr=%08x:%04x  %sidtr=%08x:%04x  %seflags=%08x\n"
     1354                "%sgdtr=%VGv:%04x  %sidtr=%VGv:%04x  %seflags=%08x\n"
    13551355                "%sldtr={%04x base=%VGv limit=%08x flags=%08x}\n"
    13561356                "%str  ={%04x base=%VGv limit=%08x flags=%08x}\n"
  • trunk/src/VBox/VMM/CPUM.cpp

    r9423 r9430  
    6262*******************************************************************************/
    6363/** The saved state version. */
    64 #define CPUM_SAVED_STATE_VERSION    6
     64#define CPUM_SAVED_STATE_VERSION    7
    6565
    6666
     
    804804                "%seip=%08x %sesp=%08x %sebp=%08x %siopl=%d %*s\n"
    805805                "%scs=%04x %sss=%04x %sds=%04x %ses=%04x %sfs=%04x %sgs=%04x %str=%04x      %seflags=%08x\n"
    806                 "%scr0=%08RX64 %scr2=%08RX64 %scr3=%08RX64 %scr4=%08RX64 %sgdtr=%08x:%04x %sldtr=%04x\n"
     806                "%scr0=%08RX64 %scr2=%08RX64 %scr3=%08RX64 %scr4=%08RX64 %sgdtr=%VGv:%04x %sldtr=%04x\n"
    807807                ,
    808808                pszPrefix, pCtxCore->eax, pszPrefix, pCtxCore->ebx, pszPrefix, pCtxCore->ecx, pszPrefix, pCtxCore->edx, pszPrefix, pCtxCore->esi, pszPrefix, pCtxCore->edi,
     
    824824                "%sgs={%04x base=%VGv limit=%08x flags=%08x} %scr0=%08RX64 %scr2=%08RX64\n"
    825825                "%sss={%04x base=%VGv limit=%08x flags=%08x} %scr3=%08RX64 %scr4=%08RX64\n"
    826                 "%sgdtr=%08x:%04x  %sidtr=%08x:%04x  %seflags=%08x\n"
     826                "%sgdtr=%VGv:%04x  %sidtr=%VGv:%04x  %seflags=%08x\n"
    827827                "%sldtr={%04x base=%VGv limit=%08x flags=%08x}\n"
    828828                "%str  ={%04x base=%VGv limit=%08x flags=%08x}\n"
  • trunk/src/VBox/VMM/CPUMInternal.mac

    r9421 r9430  
    245245    .Hyper.dr7            resq    1
    246246
    247     .Hyper.gdtr           resb    6           ; GDT limit + linear address
     247    .Hyper.gdtr           resb    10          ; GDT limit + linear address
    248248    .Hyper.gdtrPadding    resw    1
    249     .Hyper.gdtrPadding64  resd    1
    250     .Hyper.idtr           resb    6           ; IDT limit + linear address
     249    .Hyper.idtr           resb    10          ; IDT limit + linear address
    251250    .Hyper.idtrPadding    resw    1
    252     .Hyper.idtrPadding64  resd    1
    253251    .Hyper.ldtr           resw    1
    254252    .Hyper.ldtrPadding    resw    1
     
    361359    .Guest.dr7            resq    1
    362360
    363     .Guest.gdtr           resb    6           ; GDT limit + linear address
     361    .Guest.gdtr           resb    10          ; GDT limit + linear address
    364362    .Guest.gdtrPadding    resw    1
    365     .Guest.gdtrPadding64  resd    1
    366     .Guest.idtr           resb    6           ; IDT limit + linear address
     363    .Guest.idtr           resb    10          ; IDT limit + linear address
    367364    .Guest.idtrPadding    resw    1
    368     .Guest.idtrPadding64  resd    1
    369365    .Guest.ldtr           resw    1
    370366    .Guest.ldtrPadding    resw    1
  • trunk/src/VBox/VMM/SELM.cpp

    r9412 r9430  
    843843                else
    844844                {
    845                     AssertReleaseMsgFailed(("Couldn't read GDT at %RX32, rc=%Vrc!\n", GDTR.pGdt, rc));
     845                    AssertReleaseMsgFailed(("Couldn't read GDT at %VGv, rc=%Vrc!\n", GDTR.pGdt, rc));
    846846                    STAM_PROFILE_STOP(&pVM->selm.s.StatUpdateFromCPUM, a);
    847847                    return VERR_NOT_IMPLEMENTED;
     
    10061006            ||  GDTR.cbGdt != pVM->selm.s.GuestGdtr.cbGdt)
    10071007        {
    1008             Log(("SELMR3UpdateFromCPUM: Guest's GDT is changed to pGdt=%08X cbGdt=%08X\n", GDTR.pGdt, GDTR.cbGdt));
     1008            Log(("SELMR3UpdateFromCPUM: Guest's GDT is changed to pGdt=%VGv cbGdt=%08X\n", GDTR.pGdt, GDTR.cbGdt));
    10091009
    10101010            /*
     
    21582158    VBOXGDTR    GDTR;
    21592159    CPUMGetGuestGDTR(pVM, &GDTR);
    2160     RTGCPTR     pGDTGC = (RTGCPTR)GDTR.pGdt;
     2160    RTGCPTR     pGDTGC = GDTR.pGdt;
    21612161    unsigned    cGDTs = ((unsigned)GDTR.cbGdt + 1) / sizeof(VBOXDESC);
    21622162
  • trunk/src/VBox/VMM/SELMInternal.h

    r9387 r9430  
    113113    RTUINT                  offLdtHyper;
    114114
    115 #if (HC_ARCH_BITS == 32 || GC_ARCH_BITS == 64) && !(HC_ARCH_BITS == 32 && GC_ARCH_BITS == 64)
    116     /** TSS alignment padding. */
    117     RTUINT                  auPadding[2];
    118 #endif
    119115    /** TSS. (This is 16 byte aligned!)
    120116      * @todo I/O bitmap & interrupt redirection table? */
  • trunk/src/VBox/VMM/TRPMInternal.mac

    r9223 r9430  
    5555
    5656    .GCPtrIdt           RTRCPTR_RES 1
    57     .GuestIdtr          resb 6
     57    .GuestIdtr          resb 10
    5858    .au8Padding         resb 2
    5959
  • trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp

    r9354 r9430  
    110110    pVM->cpum.s.Hyper.gdtr.pGdt  = addr;
    111111    pVM->cpum.s.Hyper.gdtrPadding = 0;
    112     pVM->cpum.s.Hyper.gdtrPadding64 = 0;
    113112}
    114113
     
    118117    pVM->cpum.s.Hyper.idtr.pIdt = addr;
    119118    pVM->cpum.s.Hyper.idtrPadding = 0;
    120     pVM->cpum.s.Hyper.idtrPadding64 = 0;
    121119}
    122120
  • trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp

    r8155 r9430  
    108108    CHECK_SIZE(VBOXDESC, 8);
    109109    CHECK_SIZE(VBOXIDTE, 8);
    110     CHECK_SIZE(VBOXIDTR, 6);
    111     CHECK_SIZE(VBOXGDTR, 6);
     110    CHECK_SIZE(VBOXIDTR, 10);
     111    CHECK_SIZE(VBOXGDTR, 10);
    112112    CHECK_SIZE(VBOXTSS, 136);
    113113    CHECK_SIZE(X86FXSTATE, 512);
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