Changeset 41539 in vbox for trunk/src/VBox
- Timestamp:
- Jun 1, 2012 12:48:51 PM (13 years ago)
- Location:
- trunk/src/VBox/Devices
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA.h
r41538 r41539 190 190 #define VGA_STATE_COMMON \ 191 191 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; \ 192 199 uint32_t vram_size; \ 193 200 uint32_t latch; \ … … 212 219 uint8_t palette[768]; \ 213 220 int32_t bank_offset; \ 214 int32_t padding0; \215 R3PTRTYPE(FNGETBPP *) get_bpp; \216 R3PTRTYPE(FNGETOFFSETS *) get_offsets; \217 R3PTRTYPE(FNGETRESOLUTION *) get_resolution; \218 221 VGA_STATE_COMMON_BOCHS_VBE \ 219 222 /* display refresh support */ \ … … 233 236 uint8_t cursor_start, cursor_end, padding3[2]; \ 234 237 uint32_t cursor_offset; \ 235 uint32_t padding4; \236 R3PTRTYPE(FNRGBTOPIXEL *) rgb_to_pixel; \237 238 /* hardware mouse cursor support */ \ 238 239 uint32_t invalidated_y_table[VGA_MAX_HEIGHT / 32]; \ 239 R3PTRTYPE(FNCURSORINVALIDATE *) cursor_invalidate; \240 R3PTRTYPE(FNCURSORDRAWLINE *) cursor_draw_line; \241 240 /* tell for each page if it has been updated since the last time */ \ 242 241 uint32_t last_palette[256]; \ … … 254 253 /** end-of-common-state-marker */ 255 254 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; 259 289 /** The R0 vram pointer... */ 260 290 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; 263 301 /** LFB was updated flag. */ 264 302 bool fLFBUpdated; … … 267 305 /** Indicates if the R0 extensions are enabled or not. */ 268 306 bool fR0Enabled; 269 /** Flag indicating that there are dirty bits. This is used to optimize the handler resetting. */270 bool fHasDirtyBits;271 307 /** Flag indicating that the VGA memory in the 0xa0000-0xbffff region has been remapped to allow direct access. */ 272 308 bool fRemappedVGA; … … 275 311 bool Padding1[2]; 276 312 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; 312 315 /** The critical section. */ 313 316 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 #else323 # if HC_ARCH_BITS == 32324 uint32_t Padding4;325 # endif326 #endif327 /** 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 332 317 /** The PCI device. */ 333 318 PCIDEVICE Dev; … … 346 331 uint16_t iMask; 347 332 348 # ifdef VBE_BYTEWISE_IO333 # ifdef VBE_BYTEWISE_IO 349 334 /** VBE read/write data/index flags */ 350 335 uint8_t fReadVBEData; … … 355 340 uint8_t cbWriteVBEData; 356 341 uint8_t cbWriteVBEIndex; 357 # ifdef VBE_NEW_DYN_LIST342 # ifdef VBE_NEW_DYN_LIST 358 343 /** VBE Extra Data write address one byte buffer */ 359 344 uint8_t cbWriteVBEExtraAddress; 360 345 uint8_t Padding5; 361 # else346 # else 362 347 uint8_t Padding5[2]; 363 # endif364 # endif348 # endif 349 # endif 365 350 366 351 /** Retrace emulation state */ … … 369 354 vga_retrace_s retrace_state; 370 355 371 # ifdef VBE_NEW_DYN_LIST356 # ifdef VBE_NEW_DYN_LIST 372 357 /** The VBE BIOS extra data. */ 373 358 R3PTRTYPE(uint8_t *) pu8VBEExtraData; … … 377 362 uint16_t u16VBEExtraAddress; 378 363 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 384 366 /** The BIOS logo data. */ 385 367 R3PTRTYPE(uint8_t *) pu8Logo; … … 388 370 /** Bitmap image data. */ 389 371 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; 390 376 /** Current logo command. */ 391 377 uint16_t LogoCommand; … … 409 395 /** Palette data. */ 410 396 uint32_t au32LogoPalette[256]; 397 411 398 /** The VGA BIOS ROM data. */ 412 399 R3PTRTYPE(uint8_t *) pu8VgaBios; … … 415 402 /** The name of the VGA BIOS ROM file. */ 416 403 R3PTRTYPE(char *) pszVgaBiosFile; 417 #endif /* VBOX */ 418 # ifdef VBOX_WITH_HGSMI404 405 # ifdef VBOX_WITH_HGSMI 419 406 /** Base port in the assigned PCI I/O space. */ 420 407 RTIOPORT IOPortBase; 421 # ifdef VBOX_WITH_WDDM408 # ifdef VBOX_WITH_WDDM 422 409 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. */ 425 412 uint32_t fGuestCaps; 426 # else413 # else 427 414 uint8_t Padding10[6]; 428 #endif 429 #endif /* VBOX_WITH_HGSMI */ 415 # endif 416 # endif /* VBOX_WITH_HGSMI */ 417 #endif /* VBOX */ 430 418 } VGAState; 431 419 #ifdef VBOX … … 434 422 /** Pointer to the VGA state. */ 435 423 typedef VGASTATE *PVGASTATE; 424 AssertCompileMemberAlignment(VGASTATE, bank_offset, 8); 425 AssertCompileMemberAlignment(VGASTATE, font_offsets, 8); 426 AssertCompileMemberAlignment(VGASTATE, last_ch_attr, 8); 427 AssertCompileMemberAlignment(VGASTATE, u32Marker, 8); 436 428 #endif 437 429 -
trunk/src/VBox/Devices/testcase/tstDeviceStructSizeRC.cpp
r41037 r41539 211 211 GEN_CHECK_SIZE(VGASTATE); 212 212 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); 213 219 GEN_CHECK_OFF(VGASTATE, vram_size); 214 220 GEN_CHECK_OFF(VGASTATE, latch); … … 240 246 GEN_CHECK_OFF(VGASTATE, palette[1]); 241 247 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);245 248 #ifdef CONFIG_BOCHS_VBE 246 249 GEN_CHECK_OFF(VGASTATE, vbe_index); … … 271 274 GEN_CHECK_OFF(VGASTATE, cursor_end); 272 275 GEN_CHECK_OFF(VGASTATE, cursor_offset); 273 GEN_CHECK_OFF(VGASTATE, rgb_to_pixel);274 276 GEN_CHECK_OFF(VGASTATE, invalidated_y_table); 275 277 GEN_CHECK_OFF(VGASTATE, invalidated_y_table[1]); 276 278 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);279 279 GEN_CHECK_OFF(VGASTATE, last_palette); 280 280 GEN_CHECK_OFF(VGASTATE, last_palette[1]); … … 282 282 GEN_CHECK_OFF(VGASTATE, last_ch_attr[CH_ATTR_SIZE - 1]); 283 283 GEN_CHECK_OFF(VGASTATE, u32Marker); 284 GEN_CHECK_OFF(VGASTATE, GCPhysVRAM); 285 GEN_CHECK_OFF(VGASTATE, vram_ptrR0); 284 GEN_CHECK_OFF(VGASTATE, pDevInsRC); 286 285 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); 287 309 GEN_CHECK_OFF(VGASTATE, fLFBUpdated); 288 310 GEN_CHECK_OFF(VGASTATE, fGCEnabled); 289 311 GEN_CHECK_OFF(VGASTATE, fR0Enabled); 290 GEN_CHECK_OFF(VGASTATE, fHasDirtyBits);291 312 GEN_CHECK_OFF(VGASTATE, fRemappedVGA); 292 313 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); 309 315 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 #endif315 GEN_CHECK_OFF(VGASTATE, pDrvBase);316 GEN_CHECK_OFF(VGASTATE, pDrv);317 316 GEN_CHECK_OFF(VGASTATE, Dev); 318 317 GEN_CHECK_OFF(VGASTATE, StatRZMemoryRead); … … 332 331 #endif 333 332 #ifdef VBE_NEW_DYN_LIST 333 GEN_CHECK_OFF(VGASTATE, pu8VBEExtraData); 334 334 GEN_CHECK_OFF(VGASTATE, cbVBEExtraData); 335 GEN_CHECK_OFF(VGASTATE, pu8VBEExtraData);336 335 GEN_CHECK_OFF(VGASTATE, u16VBEExtraAddress); 337 336 #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); 338 355 #ifdef VBOX_WITH_HGSMI 339 356 GEN_CHECK_OFF(VGASTATE, IOPortBase);
Note:
See TracChangeset
for help on using the changeset viewer.