VirtualBox

Changeset 33089 in vbox for trunk/src/VBox/Devices/Graphics


Ignore:
Timestamp:
Oct 13, 2010 8:25:53 AM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
66618
Message:

VGA: Cleaned up saved state and VBE registers management a bit.

Location:
trunk/src/VBox/Devices/Graphics
Files:
3 edited

Legend:

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

    r33076 r33089  
    810810                break;
    811811            default:
     812                Assert(s->vbe_index < VBE_DISPI_INDEX_NB_SAVED);
    812813                val = s->vbe_regs[s->vbe_index];
    813814                break;
    814815          }
    815       } else if (s->vbe_index == VBE_DISPI_INDEX_VBOX_VIDEO) {
    816         /* Reading from the port means that the old additions are requesting the number of monitors. */
    817         val = 1;
    818816      } else {
    819         val = s->vbe_regs[s->vbe_index];
     817          switch(s->vbe_index) {
     818          case VBE_DISPI_INDEX_VBOX_VIDEO:
     819              /* Reading from the port means that the old additions are requesting the number of monitors. */
     820              val = 1;
     821              break;
     822          default:
     823              Assert(s->vbe_index < VBE_DISPI_INDEX_NB_SAVED);
     824              val = s->vbe_regs[s->vbe_index];
     825              break;
     826          }
    820827      }
    821828    } else {
     
    828835}
    829836
    830 #define VBE_PITCH_ALIGN     8       /* Align pitch to 64 bits. */
     837#define VBE_PITCH_ALIGN     4       /* Align pitch to 32 bits - Qt requires that. */
    831838
    832839/* Calculate scanline pitch based on bit depth and width in pixels. */
     
    27112718    qemu_put_byte(f, 1);
    27122719    qemu_put_be16s(f, &s->vbe_index);
    2713     for(i = 0; i < VBE_DISPI_INDEX_NB; i++)
     2720    for(i = 0; i < VBE_DISPI_INDEX_NB_SAVED; i++)
    27142721        qemu_put_be16s(f, &s->vbe_regs[i]);
    27152722    qemu_put_be32s(f, &s->vbe_start_addr);
     
    27662773# endif /* VBOX */
    27672774    qemu_get_be16s(f, &s->vbe_index);
    2768     for(i = 0; i < VBE_DISPI_INDEX_NB; i++)
     2775    for(i = 0; i < VBE_DISPI_INDEX_NB_SAVED; i++)
    27692776        qemu_get_be16s(f, &s->vbe_regs[i]);
    27702777    qemu_get_be32s(f, &s->vbe_start_addr);
     
    48684875    pHlp->pfnPrintf(pHlp, " Display start addr: %d, %d\n",
    48694876                    s->vbe_regs[VBE_DISPI_INDEX_X_OFFSET], s->vbe_regs[VBE_DISPI_INDEX_Y_OFFSET]);
     4877    pHlp->pfnPrintf(pHlp, " Linear scanline pitch: 0x%04x\n", s->vbe_line_offset);
     4878    pHlp->pfnPrintf(pHlp, " Linear display start : 0x%04x\n", s->vbe_start_addr);
    48704879    pHlp->pfnPrintf(pHlp, " Selected bank: 0x%04x\n", s->vbe_regs[VBE_DISPI_INDEX_BANK]);
    48714880}
     
    57425751    int         rc;
    57435752
    5744     if (    uVersion != VGA_SAVEDSTATE_VERSION
    5745 #ifdef VBOX_WITH_WDDM
    5746         &&  uVersion != VGA_SAVEDSTATE_VERSION_PRE_WDDM
    5747 #endif
    5748         &&  uVersion != VGA_SAVEDSTATE_VERSION_HOST_HEAP
    5749         &&  uVersion != VGA_SAVEDSTATE_VERSION_WITH_CONFIG
    5750         &&  uVersion != VGA_SAVEDSTATE_VERSION_HGSMI
    5751         &&  uVersion != VGA_SAVEDSTATE_VERSION_PRE_HGSMI
    5752         &&  uVersion != VGA_SAVEDSTATE_VERSION_ANCIENT)
     5753    if (uVersion < VGA_SAVEDSTATE_VERSION_ANCIENT || uVersion > VGA_SAVEDSTATE_VERSION)
    57535754        return VERR_SSM_UNSUPPORTED_DATA_UNIT_VERSION;
    57545755
  • trunk/src/VBox/Devices/Graphics/DevVGA.h

    r32877 r33089  
    8383#define VBE_DISPI_INDEX_Y_OFFSET        0x9
    8484#define VBE_DISPI_INDEX_VBOX_VIDEO      0xa
    85 #define VBE_DISPI_INDEX_NB              0xb
     85#define VBE_DISPI_INDEX_NB_SAVED        0xb /* Number of saved registers (vbe_regs array) */
     86#define VBE_DISPI_INDEX_NB              0xb /* Total number of VBE registers */
    8687
    8788#define VBE_DISPI_ID0                   0xB0C0
     
    113114#define VGA_STATE_COMMON_BOCHS_VBE              \
    114115    uint16_t vbe_index;                         \
    115     uint16_t vbe_regs[VBE_DISPI_INDEX_NB];      \
     116    uint16_t vbe_regs[VBE_DISPI_INDEX_NB_SAVED];\
    116117    uint32_t vbe_start_addr;                    \
    117118    uint32_t vbe_line_offset;                   \
  • trunk/src/VBox/Devices/Graphics/DevVGASavedState.h

    r32622 r33089  
    2020
    2121
    22 #ifndef ___Graphics_DevVGASavedState_h
    23 #define ___Graphics_DevVGASavedState_h
     22#ifndef Graphics_DevVGASavedState_h
     23#define Graphics_DevVGASavedState_h
    2424
    25 #ifdef VBOX_WITH_WDDM
    2625#define VGA_SAVEDSTATE_VERSION              7
     26#define VGA_SAVEDSTATE_VERSION_WDDM         7
    2727#define VGA_SAVEDSTATE_VERSION_PRE_WDDM     6
    28 #else
    29 #define VGA_SAVEDSTATE_VERSION              6
    30 #endif
    3128#define VGA_SAVEDSTATE_VERSION_HOST_HEAP    5
    3229#define VGA_SAVEDSTATE_VERSION_WITH_CONFIG  4
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