VirtualBox

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


Ignore:
Timestamp:
Dec 19, 2008 11:06:38 AM (16 years ago)
Author:
vboxsync
Message:

Remap MMIO memory as well for recompiler writes

File:
1 edited

Legend:

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

    r15667 r15680  
    11881188# ifdef IN_RING0
    11891189        /* If all planes are accessible, then map the page to the frame buffer and make it writable. */
    1190         if ((s->sr[2] & 3) == 3)
     1190        if (   (s->sr[2] & 3) == 3
     1191            && !vga_is_dirty(s, addr))
    11911192        {
    11921193            /** @todo only allow read access (doesn't work now) */
    11931194            IOMMMIOModifyPage(PDMDevHlpGetVM(s->CTX_SUFF(pDevIns)), GCPhys, s->GCPhysVRAM + addr, X86_PTE_RW|X86_PTE_P);
     1195            /* Set as dirty as write accesses won't be noticed now. */
    11941196            vga_set_dirty(s, addr);
    11951197            s->fRemappedVGA = true;
     
    13171319            s->vram_ptr[addr] = val;
    13181320#else /* VBOX */
    1319 # ifdef IN_RING0
     1321# ifndef IN_RC
    13201322            /* If all planes are accessible, then map the page to the frame buffer and make it writable. */
    1321             if ((s->sr[2] & 3) == 3)
     1323            if (   (s->sr[2] & 3) == 3
     1324                && !vga_is_dirty(s, addr))
    13221325            {
    13231326                IOMMMIOModifyPage(PDMDevHlpGetVM(s->CTX_SUFF(pDevIns)), GCPhys, s->GCPhysVRAM + addr, X86_PTE_RW | X86_PTE_P);
    13241327                s->fRemappedVGA = true;
    13251328            }
    1326 # endif /* IN_RING0 */
     1329# endif /* IN_RC */
    13271330
    13281331            VERIFY_VRAM_WRITE_OFF_RETURN(s, addr);
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