VirtualBox

Changeset 41539 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jun 1, 2012 12:48:51 PM (13 years ago)
Author:
vboxsync
Message:

DevVGA.h: reordering the VGAState members a bit to make them easier to align.

Location:
trunk/src/VBox/Devices
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/DevVGA.h

    r41538 r41539  
    190190#define VGA_STATE_COMMON                                                \
    191191    R3PTRTYPE(uint8_t *) vram_ptrR3;                                    \
     192    R3PTRTYPE(FNGETBPP *) get_bpp;                                      \
     193    R3PTRTYPE(FNGETOFFSETS *) get_offsets;                              \
     194    R3PTRTYPE(FNGETRESOLUTION *) get_resolution;                        \
     195    R3PTRTYPE(FNRGBTOPIXEL *) rgb_to_pixel;                             \
     196    R3PTRTYPE(FNCURSORINVALIDATE *) cursor_invalidate;                  \
     197    R3PTRTYPE(FNCURSORDRAWLINE *) cursor_draw_line;                     \
     198    RTR3PTR R3PtrCmnAlignment;                                          \
    192199    uint32_t vram_size;                                                 \
    193200    uint32_t latch;                                                     \
     
    212219    uint8_t palette[768];                                               \
    213220    int32_t bank_offset;                                                \
    214     int32_t padding0;                                                   \
    215     R3PTRTYPE(FNGETBPP *) get_bpp;                                      \
    216     R3PTRTYPE(FNGETOFFSETS *) get_offsets;                              \
    217     R3PTRTYPE(FNGETRESOLUTION *) get_resolution;                        \
    218221    VGA_STATE_COMMON_BOCHS_VBE                                          \
    219222    /* display refresh support */                                       \
     
    233236    uint8_t cursor_start, cursor_end, padding3[2];                      \
    234237    uint32_t cursor_offset;                                             \
    235     uint32_t padding4;                                                  \
    236     R3PTRTYPE(FNRGBTOPIXEL *) rgb_to_pixel;                             \
    237238    /* hardware mouse cursor support */                                 \
    238239    uint32_t invalidated_y_table[VGA_MAX_HEIGHT / 32];                  \
    239     R3PTRTYPE(FNCURSORINVALIDATE *) cursor_invalidate;                  \
    240     R3PTRTYPE(FNCURSORDRAWLINE *) cursor_draw_line;                     \
    241240    /* tell for each page if it has been updated since the last time */ \
    242241    uint32_t last_palette[256];                                         \
     
    254253    /** end-of-common-state-marker */
    255254    uint32_t                    u32Marker;
    256     uint32_t                    Padding0;
    257     /** The physical address the VRAM was assigned. */
    258     RTGCPHYS                    GCPhysVRAM;
     255
     256    /** Pointer to the device instance - RC Ptr. */
     257    PPDMDEVINSRC                pDevInsRC;
     258    /** Pointer to the GC vram mapping. */
     259    RCPTRTYPE(uint8_t *)        vram_ptrRC;
     260    /** Pointer to vgaGCLFBAccessHandler(). */
     261    RTRCPTR                     RCPtrLFBHandler;
     262
     263    /** Pointer to the device instance - R3 Ptr. */
     264    PPDMDEVINSR3                pDevInsR3;
     265# ifdef VBOX_WITH_HGSMI
     266    R3PTRTYPE(PHGSMIINSTANCE)   pHGSMI;
     267# endif
     268# ifdef VBOX_WITH_VDMA
     269    R3PTRTYPE(PVBOXVDMAHOST)    pVdma;
     270# endif
     271    /** LUN\#0: The display port base interface. */
     272    PDMIBASE                    IBase;
     273    /** LUN\#0: The display port interface. */
     274    PDMIDISPLAYPORT             IPort;
     275# if defined(VBOX_WITH_HGSMI) && (defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_WITH_CRHGSMI))
     276    /** LUN\#0: VBVA callbacks interface */
     277    PDMIDISPLAYVBVACALLBACKS    IVBVACallbacks;
     278# endif
     279    /** Pointer to base interface of the driver. */
     280    R3PTRTYPE(PPDMIBASE)        pDrvBase;
     281    /** Pointer to display connector interface of the driver. */
     282    R3PTRTYPE(PPDMIDISPLAYCONNECTOR) pDrv;
     283
     284    /** Refresh timer handle - HC. */
     285    PTMTIMERR3                  RefreshTimer;
     286
     287    /** Pointer to the device instance - R0 Ptr. */
     288    PPDMDEVINSR0                pDevInsR0;
    259289    /** The R0 vram pointer... */
    260290    R0PTRTYPE(uint8_t *)        vram_ptrR0;
    261     /** Pointer to the GC vram mapping. */
    262     RCPTRTYPE(uint8_t *)        vram_ptrRC;
     291
     292    /** The number of monitors. */
     293    uint32_t                    cMonitors;
     294    /** Current refresh timer interval. */
     295    uint32_t                    cMilliesRefreshInterval;
     296    /** Bitmap tracking dirty pages. */
     297    uint32_t                    au32DirtyBitmap[VGA_VRAM_MAX / PAGE_SIZE / 32];
     298
     299    /** Flag indicating that there are dirty bits. This is used to optimize the handler resetting. */
     300    bool                        fHasDirtyBits;
    263301    /** LFB was updated flag. */
    264302    bool                        fLFBUpdated;
     
    267305    /** Indicates if the R0 extensions are enabled or not. */
    268306    bool                        fR0Enabled;
    269     /** Flag indicating that there are dirty bits. This is used to optimize the handler resetting. */
    270     bool                        fHasDirtyBits;
    271307    /** Flag indicating that the VGA memory in the 0xa0000-0xbffff region has been remapped to allow direct access. */
    272308    bool                        fRemappedVGA;
     
    275311    bool                        Padding1[2];
    276312
    277 #if HC_ARCH_BITS == 64
    278     uint32_t                    Padding2;
    279 #endif
    280 
    281 #ifdef VBOX_WITH_HGSMI
    282     R3PTRTYPE(PHGSMIINSTANCE)   pHGSMI;
    283 #endif /* VBOX_WITH_HGSMI */
    284 #ifdef VBOX_WITH_VDMA
    285     R3PTRTYPE(PVBOXVDMAHOST)    pVdma;
    286 #endif
    287 
    288 #if HC_ARCH_BITS == 32
    289 # if defined(VBOX_WITH_HGSMI) != defined(VBOX_WITH_VDMA)
    290     uint32_t                    Padding3;
    291 # endif
    292 #endif
    293 
    294 
    295     uint32_t                    cMonitors;
    296     /** Current refresh timer interval. */
    297     uint32_t                    cMilliesRefreshInterval;
    298     /** Refresh timer handle - HC. */
    299     PTMTIMERR3                  RefreshTimer;
    300 
    301     /** Bitmap tracking dirty pages. */
    302     uint32_t                    au32DirtyBitmap[VGA_VRAM_MAX / PAGE_SIZE / 32];
    303     /** Pointer to vgaGCLFBAccessHandler(). */
    304     RTRCPTR                     RCPtrLFBHandler;
    305     /** Pointer to the device instance - RC Ptr. */
    306     PPDMDEVINSRC                pDevInsRC;
    307     /** Pointer to the device instance - R3 Ptr. */
    308     PPDMDEVINSR3                pDevInsR3;
    309     /** Pointer to the device instance - R0 Ptr. */
    310     PPDMDEVINSR0                pDevInsR0;
    311 
     313    /** The physical address the VRAM was assigned. */
     314    RTGCPHYS                    GCPhysVRAM;
    312315    /** The critical section. */
    313316    PDMCRITSECT                 lock;
    314 
    315     /** LUN\#0: The display port base interface. */
    316     PDMIBASE                    IBase;
    317     /** LUN\#0: The display port interface. */
    318     PDMIDISPLAYPORT             IPort;
    319 #if defined(VBOX_WITH_HGSMI) && (defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_WITH_CRHGSMI))
    320     /** LUN\#0: VBVA callbacks interface */
    321     PDMIDISPLAYVBVACALLBACKS    IVBVACallbacks;
    322 #else
    323 # if HC_ARCH_BITS == 32
    324     uint32_t                    Padding4;
    325 # endif
    326 #endif
    327     /** Pointer to base interface of the driver. */
    328     R3PTRTYPE(PPDMIBASE)        pDrvBase;
    329     /** Pointer to display connector interface of the driver. */
    330     R3PTRTYPE(PPDMIDISPLAYCONNECTOR) pDrv;
    331 
    332317    /** The PCI device. */
    333318    PCIDEVICE                   Dev;
     
    346331    uint16_t                    iMask;
    347332
    348 #ifdef VBE_BYTEWISE_IO
     333# ifdef VBE_BYTEWISE_IO
    349334    /** VBE read/write data/index flags */
    350335    uint8_t                     fReadVBEData;
     
    355340    uint8_t                     cbWriteVBEData;
    356341    uint8_t                     cbWriteVBEIndex;
    357 # ifdef VBE_NEW_DYN_LIST
     342#  ifdef VBE_NEW_DYN_LIST
    358343    /** VBE Extra Data write address one byte buffer */
    359344    uint8_t                     cbWriteVBEExtraAddress;
    360345    uint8_t                     Padding5;
    361 # else
     346#  else
    362347    uint8_t                     Padding5[2];
    363 # endif
    364 #endif
     348#  endif
     349# endif
    365350
    366351    /** Retrace emulation state */
     
    369354    vga_retrace_s               retrace_state;
    370355
    371 #ifdef VBE_NEW_DYN_LIST
     356# ifdef VBE_NEW_DYN_LIST
    372357    /** The VBE BIOS extra data. */
    373358    R3PTRTYPE(uint8_t *)        pu8VBEExtraData;
     
    377362    uint16_t                    u16VBEExtraAddress;
    378363    uint16_t                    Padding7[2];
    379 #endif
    380     /** Current logo data offset. */
    381     uint32_t                    offLogoData;
    382     /** The size of the BIOS logo data. */
    383     uint32_t                    cbLogo;
     364# endif
     365
    384366    /** The BIOS logo data. */
    385367    R3PTRTYPE(uint8_t *)        pu8Logo;
     
    388370    /** Bitmap image data. */
    389371    R3PTRTYPE(uint8_t *)        pu8LogoBitmap;
     372    /** Current logo data offset. */
     373    uint32_t                    offLogoData;
     374    /** The size of the BIOS logo data. */
     375    uint32_t                    cbLogo;
    390376    /** Current logo command. */
    391377    uint16_t                    LogoCommand;
     
    409395    /** Palette data. */
    410396    uint32_t                    au32LogoPalette[256];
     397
    411398    /** The VGA BIOS ROM data. */
    412399    R3PTRTYPE(uint8_t *)        pu8VgaBios;
     
    415402    /** The name of the VGA BIOS ROM file. */
    416403    R3PTRTYPE(char *)           pszVgaBiosFile;
    417 #endif /* VBOX */
    418 #ifdef VBOX_WITH_HGSMI
     404
     405# ifdef VBOX_WITH_HGSMI
    419406    /** Base port in the assigned PCI I/O space. */
    420407    RTIOPORT                    IOPortBase;
    421 #ifdef VBOX_WITH_WDDM
     408#  ifdef VBOX_WITH_WDDM
    422409    uint8_t                     Padding9[2];
    423     /* specifies guest driver caps, i.e. whether it can handle IRQs from the adapter,
    424      * the way it can handle async HGSMI command completion, etc. */
     410    /** Specifies guest driver caps, i.e. whether it can handle IRQs from the
     411     * adapter, the way it can handle async HGSMI command completion, etc. */
    425412    uint32_t                    fGuestCaps;
    426 #else
     413#  else
    427414    uint8_t                     Padding10[6];
    428 #endif
    429 #endif /* VBOX_WITH_HGSMI */
     415#  endif
     416# endif /* VBOX_WITH_HGSMI */
     417#endif /* VBOX */
    430418} VGAState;
    431419#ifdef VBOX
     
    434422/** Pointer to the VGA state. */
    435423typedef VGASTATE *PVGASTATE;
     424AssertCompileMemberAlignment(VGASTATE, bank_offset, 8);
     425AssertCompileMemberAlignment(VGASTATE, font_offsets, 8);
     426AssertCompileMemberAlignment(VGASTATE, last_ch_attr, 8);
     427AssertCompileMemberAlignment(VGASTATE, u32Marker, 8);
    436428#endif
    437429
  • trunk/src/VBox/Devices/testcase/tstDeviceStructSizeRC.cpp

    r41037 r41539  
    211211    GEN_CHECK_SIZE(VGASTATE);
    212212    GEN_CHECK_OFF(VGASTATE, vram_ptrR3);
     213    GEN_CHECK_OFF(VGASTATE, get_bpp);
     214    GEN_CHECK_OFF(VGASTATE, get_offsets);
     215    GEN_CHECK_OFF(VGASTATE, get_resolution);
     216    GEN_CHECK_OFF(VGASTATE, rgb_to_pixel);
     217    GEN_CHECK_OFF(VGASTATE, cursor_invalidate);
     218    GEN_CHECK_OFF(VGASTATE, cursor_draw_line);
    213219    GEN_CHECK_OFF(VGASTATE, vram_size);
    214220    GEN_CHECK_OFF(VGASTATE, latch);
     
    240246    GEN_CHECK_OFF(VGASTATE, palette[1]);
    241247    GEN_CHECK_OFF(VGASTATE, bank_offset);
    242     GEN_CHECK_OFF(VGASTATE, get_bpp);
    243     GEN_CHECK_OFF(VGASTATE, get_offsets);
    244     GEN_CHECK_OFF(VGASTATE, get_resolution);
    245248#ifdef CONFIG_BOCHS_VBE
    246249    GEN_CHECK_OFF(VGASTATE, vbe_index);
     
    271274    GEN_CHECK_OFF(VGASTATE, cursor_end);
    272275    GEN_CHECK_OFF(VGASTATE, cursor_offset);
    273     GEN_CHECK_OFF(VGASTATE, rgb_to_pixel);
    274276    GEN_CHECK_OFF(VGASTATE, invalidated_y_table);
    275277    GEN_CHECK_OFF(VGASTATE, invalidated_y_table[1]);
    276278    GEN_CHECK_OFF(VGASTATE, invalidated_y_table[(VGA_MAX_HEIGHT / 32) - 1]);
    277     GEN_CHECK_OFF(VGASTATE, cursor_invalidate);
    278     GEN_CHECK_OFF(VGASTATE, cursor_draw_line);
    279279    GEN_CHECK_OFF(VGASTATE, last_palette);
    280280    GEN_CHECK_OFF(VGASTATE, last_palette[1]);
     
    282282    GEN_CHECK_OFF(VGASTATE, last_ch_attr[CH_ATTR_SIZE - 1]);
    283283    GEN_CHECK_OFF(VGASTATE, u32Marker);
    284     GEN_CHECK_OFF(VGASTATE, GCPhysVRAM);
    285     GEN_CHECK_OFF(VGASTATE, vram_ptrR0);
     284    GEN_CHECK_OFF(VGASTATE, pDevInsRC);
    286285    GEN_CHECK_OFF(VGASTATE, vram_ptrRC);
     286    GEN_CHECK_OFF(VGASTATE, RCPtrLFBHandler);
     287    GEN_CHECK_OFF(VGASTATE, pDevInsR3);
     288#ifdef VBOX_WITH_HGSMI
     289    GEN_CHECK_OFF(VGASTATE, pHGSMI);
     290#endif
     291#ifdef VBOX_WITH_VDMA
     292    GEN_CHECK_OFF(VGASTATE, pVdma);
     293#endif
     294    GEN_CHECK_OFF(VGASTATE, IBase);
     295    GEN_CHECK_OFF(VGASTATE, IPort);
     296#if defined(VBOX_WITH_HGSMI) && (defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_WITH_CRHGSMI))
     297    GEN_CHECK_OFF(VGASTATE, IVBVACallbacks);
     298#endif
     299    GEN_CHECK_OFF(VGASTATE, pDrvBase);
     300    GEN_CHECK_OFF(VGASTATE, pDrv);
     301    GEN_CHECK_OFF(VGASTATE, RefreshTimer);
     302    GEN_CHECK_OFF(VGASTATE, pDevInsR0);
     303    GEN_CHECK_OFF(VGASTATE, cMonitors);
     304    GEN_CHECK_OFF(VGASTATE, cMilliesRefreshInterval);
     305    GEN_CHECK_OFF(VGASTATE, au32DirtyBitmap);
     306    GEN_CHECK_OFF(VGASTATE, au32DirtyBitmap[1]);
     307    GEN_CHECK_OFF(VGASTATE, au32DirtyBitmap[(VGA_VRAM_MAX / PAGE_SIZE / 32) - 1]);
     308    GEN_CHECK_OFF(VGASTATE, fHasDirtyBits);
    287309    GEN_CHECK_OFF(VGASTATE, fLFBUpdated);
    288310    GEN_CHECK_OFF(VGASTATE, fGCEnabled);
    289311    GEN_CHECK_OFF(VGASTATE, fR0Enabled);
    290     GEN_CHECK_OFF(VGASTATE, fHasDirtyBits);
    291312    GEN_CHECK_OFF(VGASTATE, fRemappedVGA);
    292313    GEN_CHECK_OFF(VGASTATE, fRenderVRAM);
    293 #ifdef VBOX_WITH_HGSMI
    294     GEN_CHECK_OFF(VGASTATE, pHGSMI);
    295 #endif
    296 #ifdef VBOX_WITH_VDMA
    297     GEN_CHECK_OFF(VGASTATE, pVdma);
    298 #endif
    299     GEN_CHECK_OFF(VGASTATE, cMonitors);
    300     GEN_CHECK_OFF(VGASTATE, cMilliesRefreshInterval);
    301     GEN_CHECK_OFF(VGASTATE, RefreshTimer);
    302     GEN_CHECK_OFF(VGASTATE, au32DirtyBitmap);
    303     GEN_CHECK_OFF(VGASTATE, au32DirtyBitmap[1]);
    304     GEN_CHECK_OFF(VGASTATE, au32DirtyBitmap[(VGA_VRAM_MAX / PAGE_SIZE / 32) - 1]);
    305     GEN_CHECK_OFF(VGASTATE, RCPtrLFBHandler);
    306     GEN_CHECK_OFF(VGASTATE, pDevInsRC);
    307     GEN_CHECK_OFF(VGASTATE, pDevInsR3);
    308     GEN_CHECK_OFF(VGASTATE, pDevInsR0);
     314    GEN_CHECK_OFF(VGASTATE, GCPhysVRAM);
    309315    GEN_CHECK_OFF(VGASTATE, lock);
    310     GEN_CHECK_OFF(VGASTATE, IBase);
    311     GEN_CHECK_OFF(VGASTATE, IPort);
    312 #if defined(VBOX_WITH_HGSMI) && defined(VBOX_WITH_VIDEOHWACCEL)
    313     GEN_CHECK_OFF(VGASTATE, IVBVACallbacks);
    314 #endif
    315     GEN_CHECK_OFF(VGASTATE, pDrvBase);
    316     GEN_CHECK_OFF(VGASTATE, pDrv);
    317316    GEN_CHECK_OFF(VGASTATE, Dev);
    318317    GEN_CHECK_OFF(VGASTATE, StatRZMemoryRead);
     
    332331#endif
    333332#ifdef VBE_NEW_DYN_LIST
     333    GEN_CHECK_OFF(VGASTATE, pu8VBEExtraData);
    334334    GEN_CHECK_OFF(VGASTATE, cbVBEExtraData);
    335     GEN_CHECK_OFF(VGASTATE, pu8VBEExtraData);
    336335    GEN_CHECK_OFF(VGASTATE, u16VBEExtraAddress);
    337336#endif
     337    GEN_CHECK_OFF(VGASTATE, pu8Logo);
     338    GEN_CHECK_OFF(VGASTATE, pszLogoFile);
     339    GEN_CHECK_OFF(VGASTATE, pu8LogoBitmap);
     340    GEN_CHECK_OFF(VGASTATE, offLogoData);
     341    GEN_CHECK_OFF(VGASTATE, cbLogo);
     342    GEN_CHECK_OFF(VGASTATE, LogoCommand);
     343    GEN_CHECK_OFF(VGASTATE, cxLogo);
     344    GEN_CHECK_OFF(VGASTATE, cyLogo);
     345    GEN_CHECK_OFF(VGASTATE, cLogoPlanes);
     346    GEN_CHECK_OFF(VGASTATE, cLogoBits);
     347    GEN_CHECK_OFF(VGASTATE, LogoCompression);
     348    GEN_CHECK_OFF(VGASTATE, cLogoUsedColors);
     349    GEN_CHECK_OFF(VGASTATE, cLogoPalEntries);
     350    GEN_CHECK_OFF(VGASTATE, fLogoClearScreen);
     351    GEN_CHECK_OFF(VGASTATE, au32LogoPalette);
     352    GEN_CHECK_OFF(VGASTATE, pu8VgaBios);
     353    GEN_CHECK_OFF(VGASTATE, cbVgaBios);
     354    GEN_CHECK_OFF(VGASTATE, pszVgaBiosFile);
    338355#ifdef VBOX_WITH_HGSMI
    339356    GEN_CHECK_OFF(VGASTATE, IOPortBase);
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