VirtualBox

Changeset 106920 in vbox for trunk/include


Ignore:
Timestamp:
Nov 11, 2024 1:09:38 AM (6 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
165846
Message:

/Config.kmk,Devices/Makefile.kmk,VMM/*: Introducing VBOX_WITH_MINIMAL_R0 for win.arm64 and similar build configurations not really needing much from VMMR0.r0/VBoxSup.sys. jiraref:VBP-1449

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

Legend:

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

    r106061 r106920  
    105105    } gvmm;
    106106
     107    union
     108    {
     109#if defined(VMM_INCLUDED_SRC_include_VMMInternal_h) && defined(IN_RING0)
     110        struct VMMR0PERVCPU s;
     111#endif
     112        uint8_t             padding[896];
     113    } vmmr0;
     114
     115#ifndef VBOX_WITH_MINIMAL_R0
     116
    107117    /** The HM per vcpu data. */
    108118    union
    109119    {
    110 #if defined(VMM_INCLUDED_SRC_include_HMInternal_h) && defined(IN_RING0)
     120# if defined(VMM_INCLUDED_SRC_include_HMInternal_h) && defined(IN_RING0)
    111121        struct HMR0PERVCPU  s;
    112 #endif
     122# endif
    113123        uint8_t             padding[1024];
    114124    } hmr0;
    115125
    116 #ifdef VBOX_WITH_NEM_R0
     126# ifdef VBOX_WITH_NEM_R0
    117127    /** The NEM per vcpu data. */
    118128    union
    119129    {
    120 # if defined(VMM_INCLUDED_SRC_include_NEMInternal_h) && defined(IN_RING0)
     130#  if defined(VMM_INCLUDED_SRC_include_NEMInternal_h) && defined(IN_RING0)
    121131        struct NEMR0PERVCPU s;
    122 # endif
     132#  endif
    123133        uint8_t             padding[64];
    124134    } nemr0;
    125 #endif
    126 
    127     union
    128     {
    129 #if defined(VMM_INCLUDED_SRC_include_VMMInternal_h) && defined(IN_RING0)
    130         struct VMMR0PERVCPU s;
    131 #endif
    132         uint8_t             padding[896];
    133     } vmmr0;
    134 
    135     union
    136     {
    137 #if defined(VMM_INCLUDED_SRC_include_PGMInternal_h) && defined(IN_RING0)
     135# endif
     136
     137    union
     138    {
     139# if defined(VMM_INCLUDED_SRC_include_PGMInternal_h) && defined(IN_RING0)
    138140        struct PGMR0PERVCPU s;
    139 #endif
     141# endif
    140142        uint8_t             padding[576];
    141143    } pgmr0;
    142144
     145#endif /* !VBOX_WITH_MINIMAL_R0 */
     146
    143147    /** Padding the structure size to page boundrary. */
    144 #ifdef VBOX_WITH_NEM_R0
    145     uint8_t                 abPadding3[16384 - 64*2 - 256 - 1024 - 64 - 896 - 576];
     148#ifdef VBOX_WITH_MINIMAL_R0
     149    uint8_t                 abPadding3[16384 - 64*2 - 256 - 896];
     150#elif defined(VBOX_WITH_NEM_R0)
     151    uint8_t                 abPadding3[16384 - 64*2 - 256 - 896 - 1024 - 64 - 576];
    146152#else
    147     uint8_t                 abPadding3[16384 - 64*2 - 256 - 1024      - 896 - 576];
     153    uint8_t                 abPadding3[16384 - 64*2 - 256 - 896 - 1024      - 576];
    148154#endif
    149155} GVMCPU;
     
    157163AssertCompileMemberAlignment(GVMCPU, idCpu,  16384);
    158164AssertCompileMemberAlignment(GVMCPU, gvmm,   64);
    159 # ifdef VBOX_WITH_NEM_R0
     165# ifndef VBOX_WITH_MINIMAL_R0
     166#  ifdef VBOX_WITH_NEM_R0
    160167AssertCompileMemberAlignment(GVMCPU, nemr0,  64);
     168#  endif
    161169# endif
    162170AssertCompileSizeAlignment(GVMCPU,           16384);
     
    216224    } gvmm;
    217225
     226#ifndef VBOX_WITH_MINIMAL_R0
     227
    218228    /** The GMM per vm data. */
    219229    union
    220230    {
    221 #ifdef VMM_INCLUDED_SRC_VMMR0_GMMR0Internal_h
     231# ifdef VMM_INCLUDED_SRC_VMMR0_GMMR0Internal_h
    222232        struct GMMPERVM     s;
    223 #endif
     233# endif
    224234        uint8_t             padding[1024];
    225235    } gmm;
     
    228238    union
    229239    {
    230 #if defined(VMM_INCLUDED_SRC_include_HMInternal_h) && defined(IN_RING0)
     240# if defined(VMM_INCLUDED_SRC_include_HMInternal_h) && defined(IN_RING0)
    231241        struct HMR0PERVM    s;
    232 #endif
     242# endif
    233243        uint8_t             padding[256];
    234244    } hmr0;
    235245
    236 #ifdef VBOX_WITH_NEM_R0
     246# ifdef VBOX_WITH_NEM_R0
    237247    /** The NEM per vcpu data. */
    238248    union
    239249    {
    240 # if defined(VMM_INCLUDED_SRC_include_NEMInternal_h) && defined(IN_RING0)
     250#  if defined(VMM_INCLUDED_SRC_include_NEMInternal_h) && defined(IN_RING0)
    241251        struct NEMR0PERVM   s;
    242 # endif
     252#  endif
    243253        uint8_t             padding[256];
    244254    } nemr0;
    245 #endif
     255# endif
    246256
    247257    /** The RAWPCIVM per vm data. */
    248258    union
    249259    {
    250 #ifdef VBOX_INCLUDED_rawpci_h
     260# ifdef VBOX_INCLUDED_rawpci_h
    251261        struct RAWPCIPERVM s;
    252 #endif
     262# endif
    253263        uint8_t             padding[64];
    254264    } rawpci;
     
    256266    union
    257267    {
    258 #if defined(VMM_INCLUDED_SRC_include_PDMInternal_h) && defined(IN_RING0)
     268# if defined(VMM_INCLUDED_SRC_include_PDMInternal_h) && defined(IN_RING0)
    259269        struct PDMR0PERVM   s;
    260 #endif
     270# endif
    261271        uint8_t             padding[3008];
    262272    } pdmr0;
     
    264274    union
    265275    {
    266 #if defined(VMM_INCLUDED_SRC_include_PGMInternal_h) && defined(IN_RING0)
     276# if defined(VMM_INCLUDED_SRC_include_PGMInternal_h) && defined(IN_RING0)
    267277        struct PGMR0PERVM   s;
    268 #endif
     278# endif
    269279        uint8_t             padding[90112];
    270280    } pgmr0;
     
    272282    union
    273283    {
    274 #if defined(VMM_INCLUDED_SRC_include_IOMInternal_h) && defined(IN_RING0)
     284# if defined(VMM_INCLUDED_SRC_include_IOMInternal_h) && defined(IN_RING0)
    275285        struct IOMR0PERVM   s;
    276 #endif
     286# endif
    277287        uint8_t             padding[512];
    278288    } iomr0;
     
    280290    union
    281291    {
    282 #if defined(VMM_INCLUDED_SRC_include_APICInternal_h) && defined(IN_RING0)
     292# if defined(VMM_INCLUDED_SRC_include_APICInternal_h) && defined(IN_RING0)
    283293        struct APICR0PERVM  s;
    284 #endif
     294# endif
    285295        uint8_t             padding[64];
    286296    } apicr0;
     
    288298    union
    289299    {
    290 #if defined(VMM_INCLUDED_SRC_include_DBGFInternal_h) && defined(IN_RING0)
     300# if defined(VMM_INCLUDED_SRC_include_DBGFInternal_h) && defined(IN_RING0)
    291301        struct DBGFR0PERVM   s;
    292 #endif
     302# endif
    293303        uint8_t             padding[1024];
    294304    } dbgfr0;
     
    296306    union
    297307    {
    298 #if defined(VMM_INCLUDED_SRC_include_TMInternal_h) && defined(IN_RING0)
     308# if defined(VMM_INCLUDED_SRC_include_TMInternal_h) && defined(IN_RING0)
    299309        TMR0PERVM           s;
    300 #endif
     310# endif
    301311        uint8_t             padding[192];
    302312    } tmr0;
    303313
     314#endif /* !VBOX_WITH_MINIMAL_R0 */
     315
    304316    union
    305317    {
     
    311323
    312324    /** Padding so aCpus starts on a page boundrary.  */
    313 #ifdef VBOX_WITH_NEM_R0
     325#ifdef VBOX_WITH_MINIMAL_R0
     326    uint8_t         abPadding2[16384*1 - 64 - 4352 -                                                                704 - sizeof(PGVMCPU) * VMM_MAX_CPU_COUNT];
     327#elif defined(VBOX_WITH_NEM_R0)
    314328    uint8_t         abPadding2[16384*7 - 64 - 4352 - 1024 - 256 - 256 - 64 - 3008 - 90112 - 512 - 64 - 1024 - 192 - 704 - sizeof(PGVMCPU) * VMM_MAX_CPU_COUNT];
    315329#else
  • trunk/include/VBox/vmm/gvm.mac

    r106061 r106920  
    5757        .gvmm               resb 256
    5858        alignb 64
     59        .vmmr0              resb 896
     60        alignb 64
    5961        .hmr0               resb 1024
    6062%ifdef VBOX_WITH_NEM_R0
    6163        .nemr0              resb 64
    6264%endif
    63         alignb 64
    64         .vmmr0              resb 896
    6565        alignb 64
    6666        .pgmr0              resb 576
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