VirtualBox

Changeset 76438 in vbox for trunk/include


Ignore:
Timestamp:
Dec 24, 2018 1:26:45 PM (6 years ago)
Author:
vboxsync
Message:

vmm/hm_*.h: Mark 64-bit bitfields with RT_GCC_EXTENSION to make older GCCs happy.

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

Legend:

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

    r76397 r76438  
    662662    struct
    663663    {
    664         uint64_t    u12Reserved0        : 12;
    665         uint64_t    u40Addr             : 40;
    666         uint64_t    u12Reserved1        : 12;
     664        RT_GCC_EXTENSION uint64_t u12Reserved0        : 12;
     665        RT_GCC_EXTENSION uint64_t u40Addr             : 40;
     666        RT_GCC_EXTENSION uint64_t u12Reserved1        : 12;
    667667    } n;
    668668    uint64_t    u;
     
    677677    struct
    678678    {
    679         uint64_t    u8LastGuestCoreId   : 8;
    680         uint64_t    u4Reserved          : 4;
    681         uint64_t    u40Addr             : 40;
    682         uint64_t    u12Reserved         : 12;
     679        RT_GCC_EXTENSION uint64_t u8LastGuestCoreId   : 8;
     680        RT_GCC_EXTENSION uint64_t u4Reserved          : 4;
     681        RT_GCC_EXTENSION uint64_t u40Addr             : 40;
     682        RT_GCC_EXTENSION uint64_t u12Reserved         : 12;
    683683    } n;
    684684    uint64_t    u;
  • trunk/include/VBox/vmm/hm_vmx.h

    r76397 r76438  
    469469{
    470470    /** Present bit. */
    471     uint64_t    u1Present       : 1;
     471    RT_GCC_EXTENSION uint64_t u1Present       : 1;
    472472    /** Writable bit. */
    473     uint64_t    u1Write         : 1;
     473    RT_GCC_EXTENSION uint64_t u1Write         : 1;
    474474    /** Executable bit. */
    475     uint64_t    u1Execute       : 1;
     475    RT_GCC_EXTENSION uint64_t u1Execute       : 1;
    476476    /** Reserved (must be 0). */
    477     uint64_t    u5Reserved      : 5;
     477    RT_GCC_EXTENSION uint64_t u5Reserved      : 5;
    478478    /** Available for software. */
    479     uint64_t    u4Available     : 4;
     479    RT_GCC_EXTENSION uint64_t u4Available     : 4;
    480480    /** Physical address of the next level (PD). Restricted by maximum physical address width of the cpu. */
    481     uint64_t    u40PhysAddr     : 40;
     481    RT_GCC_EXTENSION uint64_t u40PhysAddr     : 40;
    482482    /** Available for software. */
    483     uint64_t    u12Available    : 12;
     483    RT_GCC_EXTENSION uint64_t u12Available    : 12;
    484484} EPTPML4EBITS;
    485485AssertCompileSize(EPTPML4EBITS, 8);
     
    531531{
    532532    /** Present bit. */
    533     uint64_t    u1Present       : 1;
     533    RT_GCC_EXTENSION uint64_t u1Present       : 1;
    534534    /** Writable bit. */
    535     uint64_t    u1Write         : 1;
     535    RT_GCC_EXTENSION uint64_t u1Write         : 1;
    536536    /** Executable bit. */
    537     uint64_t    u1Execute       : 1;
     537    RT_GCC_EXTENSION uint64_t u1Execute       : 1;
    538538    /** Reserved (must be 0). */
    539     uint64_t    u5Reserved      : 5;
     539    RT_GCC_EXTENSION uint64_t u5Reserved      : 5;
    540540    /** Available for software. */
    541     uint64_t    u4Available     : 4;
     541    RT_GCC_EXTENSION uint64_t u4Available     : 4;
    542542    /** Physical address of the next level (PD). Restricted by maximum physical address width of the cpu. */
    543     uint64_t    u40PhysAddr     : 40;
     543    RT_GCC_EXTENSION uint64_t u40PhysAddr     : 40;
    544544    /** Available for software. */
    545     uint64_t    u12Available    : 12;
     545    RT_GCC_EXTENSION uint64_t u12Available    : 12;
    546546} EPTPDPTEBITS;
    547547AssertCompileSize(EPTPDPTEBITS, 8);
     
    593593{
    594594    /** Present bit. */
    595     uint64_t    u1Present       : 1;
     595    RT_GCC_EXTENSION uint64_t u1Present       : 1;
    596596    /** Writable bit. */
    597     uint64_t    u1Write         : 1;
     597    RT_GCC_EXTENSION uint64_t u1Write         : 1;
    598598    /** Executable bit. */
    599     uint64_t    u1Execute       : 1;
     599    RT_GCC_EXTENSION uint64_t u1Execute       : 1;
    600600    /** Reserved (must be 0). */
    601     uint64_t    u4Reserved      : 4;
     601    RT_GCC_EXTENSION uint64_t u4Reserved      : 4;
    602602    /** Big page (must be 0 here). */
    603     uint64_t    u1Size          : 1;
     603    RT_GCC_EXTENSION uint64_t u1Size          : 1;
    604604    /** Available for software. */
    605     uint64_t    u4Available     : 4;
     605    RT_GCC_EXTENSION uint64_t u4Available     : 4;
    606606    /** Physical address of page table. Restricted by maximum physical address width of the cpu. */
    607     uint64_t    u40PhysAddr     : 40;
     607    RT_GCC_EXTENSION uint64_t u40PhysAddr     : 40;
    608608    /** Available for software. */
    609     uint64_t    u12Available    : 12;
     609    RT_GCC_EXTENSION uint64_t u12Available    : 12;
    610610} EPTPDEBITS;
    611611AssertCompileSize(EPTPDEBITS, 8);
     
    624624{
    625625    /** Present bit. */
    626     uint64_t    u1Present       : 1;
     626    RT_GCC_EXTENSION uint64_t u1Present       : 1;
    627627    /** Writable bit. */
    628     uint64_t    u1Write         : 1;
     628    RT_GCC_EXTENSION uint64_t u1Write         : 1;
    629629    /** Executable bit. */
    630     uint64_t    u1Execute       : 1;
     630    RT_GCC_EXTENSION uint64_t u1Execute       : 1;
    631631    /** EPT Table Memory Type. MBZ for non-leaf nodes. */
    632     uint64_t    u3EMT           : 3;
     632    RT_GCC_EXTENSION uint64_t u3EMT           : 3;
    633633    /** Ignore PAT memory type */
    634     uint64_t    u1IgnorePAT     : 1;
     634    RT_GCC_EXTENSION uint64_t u1IgnorePAT     : 1;
    635635    /** Big page (must be 1 here). */
    636     uint64_t    u1Size          : 1;
     636    RT_GCC_EXTENSION uint64_t u1Size          : 1;
    637637    /** Available for software. */
    638     uint64_t    u4Available     : 4;
     638    RT_GCC_EXTENSION uint64_t u4Available     : 4;
    639639    /** Reserved (must be 0). */
    640     uint64_t    u9Reserved      : 9;
     640    RT_GCC_EXTENSION uint64_t u9Reserved      : 9;
    641641    /** Physical address of the 2MB page. Restricted by maximum physical address width of the cpu. */
    642     uint64_t    u31PhysAddr     : 31;
     642    RT_GCC_EXTENSION uint64_t u31PhysAddr     : 31;
    643643    /** Available for software. */
    644     uint64_t    u12Available    : 12;
     644    RT_GCC_EXTENSION uint64_t u12Available    : 12;
    645645} EPTPDE2MBITS;
    646646AssertCompileSize(EPTPDE2MBITS, 8);
     
    694694     *          as present.  Since all our valid entries will have this bit set, it can
    695695     *          be used as a present indicator and allow some code sharing. */
    696     uint64_t    u1Present       : 1;
     696    RT_GCC_EXTENSION uint64_t u1Present       : 1;
    697697    /** 1 - Writable bit. */
    698     uint64_t    u1Write         : 1;
     698    RT_GCC_EXTENSION uint64_t u1Write         : 1;
    699699    /** 2 - Executable bit. */
    700     uint64_t    u1Execute       : 1;
     700    RT_GCC_EXTENSION uint64_t u1Execute       : 1;
    701701    /** 5:3 - EPT Memory Type. MBZ for non-leaf nodes. */
    702     uint64_t    u3EMT           : 3;
     702    RT_GCC_EXTENSION uint64_t u3EMT           : 3;
    703703    /** 6 - Ignore PAT memory type */
    704     uint64_t    u1IgnorePAT     : 1;
     704    RT_GCC_EXTENSION uint64_t u1IgnorePAT     : 1;
    705705    /** 11:7 - Available for software. */
    706     uint64_t    u5Available     : 5;
     706    RT_GCC_EXTENSION uint64_t u5Available     : 5;
    707707    /** 51:12 - Physical address of page. Restricted by maximum physical
    708708     *  address width of the cpu. */
    709     uint64_t    u40PhysAddr     : 40;
     709    RT_GCC_EXTENSION uint64_t u40PhysAddr     : 40;
    710710    /** 63:52 - Available for software. */
    711     uint64_t    u12Available    : 12;
     711    RT_GCC_EXTENSION uint64_t u12Available    : 12;
    712712} EPTPTEBITS;
    713713AssertCompileSize(EPTPTEBITS, 8);
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