VirtualBox

Changeset 10278 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Jul 5, 2008 2:06:38 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
32890
Message:

VGA: Support 8 byte MMIO reads and writes.

File:
1 edited

Legend:

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

    r9213 r10278  
    34363436            break;
    34373437
     3438        case 8:
     3439            *(uint64_t *)pv = (uint64_t)vga_mem_readb(pData, GCPhysAddr)
     3440                           | ((uint64_t)vga_mem_readb(pData, GCPhysAddr + 1) <<  8)
     3441                           | ((uint64_t)vga_mem_readb(pData, GCPhysAddr + 2) << 16)
     3442                           | ((uint64_t)vga_mem_readb(pData, GCPhysAddr + 3) << 24)
     3443                           | ((uint64_t)vga_mem_readb(pData, GCPhysAddr + 4) << 32)
     3444                           | ((uint64_t)vga_mem_readb(pData, GCPhysAddr + 5) << 40)
     3445                           | ((uint64_t)vga_mem_readb(pData, GCPhysAddr + 6) << 48)
     3446                           | ((uint64_t)vga_mem_readb(pData, GCPhysAddr + 7) << 56);
     3447            break;
     3448
    34383449        default:
    34393450        {
     
    34843495                rc = vga_mem_writeb(pData, GCPhysAddr + 3, pu8[3]);
    34853496            break;
     3497        case 8:
     3498            rc = vga_mem_writeb(pData, GCPhysAddr + 0, pu8[0]);
     3499            if (RT_LIKELY(rc == VINF_SUCCESS))
     3500                rc = vga_mem_writeb(pData, GCPhysAddr + 1, pu8[1]);
     3501            if (RT_LIKELY(rc == VINF_SUCCESS))
     3502                rc = vga_mem_writeb(pData, GCPhysAddr + 2, pu8[2]);
     3503            if (RT_LIKELY(rc == VINF_SUCCESS))
     3504                rc = vga_mem_writeb(pData, GCPhysAddr + 3, pu8[3]);
     3505            if (RT_LIKELY(rc == VINF_SUCCESS))
     3506                rc = vga_mem_writeb(pData, GCPhysAddr + 4, pu8[4]);
     3507            if (RT_LIKELY(rc == VINF_SUCCESS))
     3508                rc = vga_mem_writeb(pData, GCPhysAddr + 5, pu8[5]);
     3509            if (RT_LIKELY(rc == VINF_SUCCESS))
     3510                rc = vga_mem_writeb(pData, GCPhysAddr + 6, pu8[6]);
     3511            if (RT_LIKELY(rc == VINF_SUCCESS))
     3512                rc = vga_mem_writeb(pData, GCPhysAddr + 7, pu8[7]);
     3513            break;
    34863514#else
    34873515        case 2:
     
    34903518        case 4:
    34913519            rc = vgaMMIOFill(pDevIns, GCPhysAddr, *(uint32_t *)pv, 4, 1);
     3520            break;
     3521        case 8:
     3522            rc = vgaMMIOFill(pDevIns, GCPhysAddr, *(uint64_t *)pv, 8, 1);
    34923523            break;
    34933524#endif
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette