VirtualBox

Changeset 104244 in vbox


Ignore:
Timestamp:
Apr 9, 2024 7:40:39 AM (8 months ago)
Author:
vboxsync
Message:

Devices/Graphics/DevVGA: Cleanup vbe_ioport_write_data() a little, bugref:10636

File:
1 edited

Legend:

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

    r104175 r104244  
    983983    RT_NOREF(pThisCC, addr);
    984984
    985     if (pThis->vbe_index <= VBE_DISPI_INDEX_NB) {
     985    uint16_t const idxVbe = pThis->vbe_index;
     986    if (idxVbe <= VBE_DISPI_INDEX_NB)
     987    {
     988        RT_UNTRUSTED_VALIDATED_FENCE();
     989
    986990        bool fRecalculate = false;
    987         Log(("VBE: write index=0x%x val=0x%x\n", pThis->vbe_index, val));
    988         switch(pThis->vbe_index) {
     991        Log(("VBE: write index=0x%x val=0x%x\n", idxVbe, val));
     992        switch(idxVbe) {
    989993        case VBE_DISPI_INDEX_ID:
    990994            if (val == VBE_DISPI_ID0 ||
     
    10011005                val == VBE_DISPI_ID_CFG)
    10021006            {
    1003                 pThis->vbe_regs[pThis->vbe_index] = val;
     1007                pThis->vbe_regs[VBE_DISPI_INDEX_ID] = val;
    10041008            }
    10051009            break;
     
    10071011            if (val <= VBE_DISPI_MAX_XRES)
    10081012            {
    1009                 pThis->vbe_regs[pThis->vbe_index] = val;
     1013                pThis->vbe_regs[VBE_DISPI_INDEX_XRES] = val;
    10101014                pThis->vbe_regs[VBE_DISPI_INDEX_VIRT_WIDTH] = val;
    10111015                fRecalculate = true;
     
    10141018        case VBE_DISPI_INDEX_YRES:
    10151019            if (val <= VBE_DISPI_MAX_YRES)
    1016                 pThis->vbe_regs[pThis->vbe_index] = val;
     1020                pThis->vbe_regs[VBE_DISPI_INDEX_YRES] = val;
    10171021            break;
    10181022        case VBE_DISPI_INDEX_BPP:
     
    10211025            if (val == 4 || val == 8 || val == 15 ||
    10221026                val == 16 || val == 24 || val == 32) {
    1023                 pThis->vbe_regs[pThis->vbe_index] = val;
     1027                pThis->vbe_regs[VBE_DISPI_INDEX_BPP] = val;
    10241028                fRecalculate = true;
    10251029            }
     
    10371041            if (val > max_bank)
    10381042                val = max_bank;
    1039             pThis->vbe_regs[pThis->vbe_index] = val;
     1043            pThis->vbe_regs[VBE_DISPI_INDEX_BANK] = val;
    10401044            pThis->bank_offset = (val << 16);
    10411045
     
    11411145                pThis->bank_offset = 0;
    11421146            }
    1143             pThis->vbe_regs[pThis->vbe_index] = val;
     1147            pThis->vbe_regs[VBE_DISPI_INDEX_ENABLE] = val;
    11441148            /*
    11451149             * LFB video mode is either disabled or changed. Notify the display
     
    11651169        case VBE_DISPI_INDEX_Y_OFFSET:
    11661170            {
    1167                 pThis->vbe_regs[pThis->vbe_index] = val;
     1171                pThis->vbe_regs[idxVbe] = val;
    11681172                fRecalculate = true;
    11691173            }
     
    11831187            break;
    11841188        case VBE_DISPI_INDEX_CFG:
    1185             pThis->vbe_regs[pThis->vbe_index] = val;
     1189            pThis->vbe_regs[VBE_DISPI_INDEX_CFG] = val;
    11861190            break;
    11871191        default:
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