VirtualBox

Changeset 71290 in vbox


Ignore:
Timestamp:
Mar 9, 2018 3:32:56 PM (7 years ago)
Author:
vboxsync
Message:

VMM: Better GVM alignment; assert padding sanity.

Location:
trunk
Files:
2 edited

Legend:

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

    r71246 r71290  
    4343    /** VCPU id (0 - (pVM->cCpus - 1). */
    4444    VMCPUID         idCpu;
     45    /** Padding. */
     46    uint32_t        uPadding;
    4547
    4648    /** Handle to the EMT thread. */
     
    5355    /** Pointer to the corresponding cross context VM structure. */
    5456    PVM             pVM;
     57
     58    /** Padding so gvmm starts on a 64 byte boundrary. */
     59    uint8_t         abPadding[HC_ARCH_BITS == 32 ? 4*4 + 24 : 24];
    5560
    5661    /** The GVMM per vcpu data. */
     
    7479#endif
    7580} GVMCPU;
     81AssertCompileMemberOffset(GVMCPU, gvmm,   64);
     82#ifdef VBOX_WITH_NEM_R0
     83AssertCompileMemberOffset(GVMCPU, nem,    64 + 64);
     84AssertCompileSize(        GVMCPU,         64 + 64 + 64);
     85#else
     86AssertCompileSize(        GVMCPU,         64 + 64);
     87#endif
    7688
    7789/** @} */
     
    106118     * Same same as VM::cCpus. */
    107119    uint32_t        cCpus;
    108     uint8_t         abPadding[HC_ARCH_BITS == 32 ? 16 : 4];
     120    /** Padding so gvmm starts on a 64 byte boundrary.   */
     121    uint8_t         abPadding[HC_ARCH_BITS == 32 ? 12 + 28 : 28];
    109122
    110123    /** The GVMM per vm data. */
     
    149162    GVMCPU          aCpus[1];
    150163} GVM;
    151 AssertCompileMemberOffset(GVM, gvmm,   40);
    152 AssertCompileMemberOffset(GVM, gmm,    40 + 256);
     164AssertCompileMemberOffset(GVM, gvmm,   64);
     165AssertCompileMemberOffset(GVM, gmm,    64 + 256);
    153166#ifdef VBOX_WITH_NEM_R0
    154 AssertCompileMemberOffset(GVM, nem,    40 + 256 + 512);
    155 AssertCompileMemberOffset(GVM, rawpci, 40 + 256 + 512 + 128);
    156 AssertCompileMemberOffset(GVM, aCpus,  40 + 256 + 512 + 128 + 64);
     167AssertCompileMemberOffset(GVM, nem,    64 + 256 + 512);
     168AssertCompileMemberOffset(GVM, rawpci, 64 + 256 + 512 + 128);
     169AssertCompileMemberOffset(GVM, aCpus,  64 + 256 + 512 + 128 + 64);
    157170#else
    158 AssertCompileMemberOffset(GVM, rawpci, 40 + 256 + 512);
    159 AssertCompileMemberOffset(GVM, aCpus,  40 + 256 + 512 + 64);
     171AssertCompileMemberOffset(GVM, rawpci, 64 + 256 + 512);
     172AssertCompileMemberOffset(GVM, aCpus,  64 + 256 + 512 + 64);
    160173#endif
    161174
  • trunk/src/VBox/VMM/VMMAll/AllPdbTypeHack.cpp

    r71075 r71290  
    5353#include "../include/NEMInternal.h"
    5454#include "../include/REMInternal.h"
    55 #include "../VMMR0/GMMR0Internal.h"
    5655#ifndef IN_RC
     56# include "../VMMR0/GMMR0Internal.h"
    5757# include "../VMMR0/GVMMR0Internal.h"
    5858#endif
     
    6565# include <VBox/vmm/uvm.h>
    6666#endif
    67 #include <VBox/vmm/gvm.h>
     67#ifndef IN_RC
     68# include <VBox/vmm/gvm.h>
     69#endif
    6870
    6971
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