VirtualBox

Changeset 46942 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Jul 3, 2013 2:53:47 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
86947
Message:

VMM: Fix LDTR restoration to be done dynamically. This is required for 64-bit Darwin hosts.

Location:
trunk/include/VBox/vmm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/hm_vmx.h

    r46925 r46942  
    4545#define VMX_RESTORE_HOST_SEL_FS               RT_BIT(2)
    4646#define VMX_RESTORE_HOST_SEL_GS               RT_BIT(3)
    47 #define VMX_RESTORE_HOST_SEL_LDTR             RT_BIT(4)
    48 #define VMX_RESTORE_HOST_SEL_TR               RT_BIT(5)
    49 #define VMX_RESTORE_HOST_GDTR                 RT_BIT(6)
    50 #define VMX_RESTORE_HOST_IDTR                 RT_BIT(7)
     47#define VMX_RESTORE_HOST_SEL_TR               RT_BIT(4)
     48#define VMX_RESTORE_HOST_GDTR                 RT_BIT(5)
     49#define VMX_RESTORE_HOST_IDTR                 RT_BIT(6)
    5150/** @} */
    5251
     
    6362    RTSEL       uHostSelFS;     /* 0x04 */
    6463    RTSEL       uHostSelGS;     /* 0x06 */
    65     RTSEL       uHostSelLDTR;   /* 0x08 */
    66     RTSEL       uHostSelTR;     /* 0x0a */
    67     uint32_t    u32Padding;     /* 0x0c */
    68     uint64_t    uHostFSBase;    /* 0x10 */
    69     uint64_t    uHostGSBase;    /* 0x18 */
    70     X86XDTR64   HostGdtr;       /* 0x20 */
    71     X86XDTR64   HostIdtr;       /* 0x2a */
     64    RTSEL       uHostSelTR;     /* 0x08 */
     65    uint16_t    u16Padding;     /* 0x0a */
     66    uint64_t    uHostFSBase;    /* 0x0c */
     67    uint64_t    uHostGSBase;    /* 0x14 */
     68    X86XDTR64   HostGdtr;       /* 0x1c */
     69    X86XDTR64   HostIdtr;       /* 0x26 */
    7270} VMXRESTOREHOST;
    7371#pragma pack()
     
    7977AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelFS,    4);
    8078AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelGS,    6);
    81 AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelLDTR,  8);
    82 AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelTR,   10);
    83 AssertCompileMemberOffset(VMXRESTOREHOST, uHostFSBase,  16);
    84 AssertCompileMemberOffset(VMXRESTOREHOST, uHostGSBase,  24);
    85 AssertCompileMemberOffset(VMXRESTOREHOST, HostGdtr,     32);
    86 AssertCompileMemberOffset(VMXRESTOREHOST, HostIdtr,     42);
    87 AssertCompileSize(VMXRESTOREHOST, 52);
     79AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelTR,    8);
     80AssertCompileMemberOffset(VMXRESTOREHOST, uHostFSBase,  12);
     81AssertCompileMemberOffset(VMXRESTOREHOST, uHostGSBase,  20);
     82AssertCompileMemberOffset(VMXRESTOREHOST, HostGdtr,     28);
     83AssertCompileMemberOffset(VMXRESTOREHOST, HostIdtr,     38);
     84AssertCompileSize(VMXRESTOREHOST, 48);
    8885
    8986/** @name VMX VMCS-Read cache indices.
  • trunk/include/VBox/vmm/hm_vmx.mac

    r46925 r46942  
    156156%define VMX_RESTORE_HOST_SEL_FS                                 4h    ;RT_BIT(2)
    157157%define VMX_RESTORE_HOST_SEL_GS                                 8h    ;RT_BIT(3)
    158 %define VMX_RESTORE_HOST_SEL_LDTR                               10h   ;RT_BIT(4)
    159 %define VMX_RESTORE_HOST_SEL_TR                                 20h   ;RT_BIT(5)
    160 %define VMX_RESTORE_HOST_GDTR                                   40h   ;RT_BIT(6)
    161 %define VMX_RESTORE_HOST_IDTR                                   80h   ;RT_BIT(7)
     158%define VMX_RESTORE_HOST_SEL_TR                                 10h   ;RT_BIT(4)
     159%define VMX_RESTORE_HOST_GDTR                                   20h   ;RT_BIT(5)
     160%define VMX_RESTORE_HOST_IDTR                                   40h   ;RT_BIT(6)
    162161
    163162struc VMXRESTOREHOST
     
    166165    .uHostSelFS         resw    1
    167166    .uHostSelGS         resw    1
    168     .uHostSelLDTR       resw    1
    169167    .uHostSelTR         resw    1
    170     .u32Padding         resd    1
     168    .u16Padding         resw    1
    171169    .uHostFSBase        resq    1
    172170    .uHostGSBase        resq    1
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette