VirtualBox

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


Ignore:
Timestamp:
Nov 30, 2008 7:56:35 AM (16 years ago)
Author:
vboxsync
Message:

DevVGA: Map into ring-0 on darwin and do the same thing as we do in RC.

Location:
trunk/src/VBox/Devices
Files:
2 edited

Legend:

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

    r14797 r14827  
    11491149    }
    11501150
    1151 #ifdef IN_RC
     1151#if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0)
    11521152    if (addr >= VGA_MAPPING_SIZE)
    11531153        return VINF_IOM_HC_MMIO_WRITE;
     
    11841184#ifndef VBOX
    11851185        s->latch = ((uint32_t *)s->vram_ptr)[addr];
    1186 #else /* VBOX && IN_RC */
     1186#else /* VBOX */
    11871187        s->latch = ((uint32_t *)s->CTX_SUFF(vram_ptr))[addr];
    1188 #endif /* VBOX && IN_RC */
     1188#endif /* VBOX */
    11891189
    11901190        if (!(s->gr[5] & 0x08)) {
     
    12861286            s->vram_ptr[addr] = val;
    12871287#else /* VBOX */
    1288 # ifdef IN_RC
     1288# if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0)
    12891289            if (addr >= VGA_MAPPING_SIZE)
    12901290                return VINF_IOM_HC_MMIO_WRITE;
     
    13371337            s->vram_ptr[addr] = val;
    13381338#else /* VBOX */
    1339 #ifdef IN_RC
     1339# if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0)
    13401340            if (addr >= VGA_MAPPING_SIZE)
    13411341                return VINF_IOM_HC_MMIO_WRITE;
    1342 #else
     1342# else
    13431343            if (addr >= s->vram_size)
    13441344            {
     
    13471347                return VINF_SUCCESS;
    13481348            }
    1349 #endif
     1349# endif
    13501350            s->CTX_SUFF(vram_ptr)[addr] = val;
    13511351#endif /* VBOX */
     
    13611361        }
    13621362    } else {
    1363 #ifdef IN_RC
     1363#if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0)
    13641364        if (addr * 4 >= VGA_MAPPING_SIZE)
    13651365            return VINF_IOM_HC_MMIO_WRITE;
     
    33203320    if (pThis->sr[4] & 0x08) {
    33213321        /* chain 4 mode : simplest access */
    3322 #ifdef IN_RC
     3322#if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0)
    33233323        if (GCPhysAddr + cItems * cbItem >= VGA_MAPPING_SIZE)
    33243324            return VINF_IOM_HC_MMIO_WRITE;
     
    33433343    } else if (pThis->gr[5] & 0x10) {
    33443344        /* odd/even mode (aka text mode mapping) */
    3345 #ifdef IN_RC
     3345#if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0)
    33463346        if (GCPhysAddr * 2 + cItems * cbItem >= VGA_MAPPING_SIZE)
    33473347            return VINF_IOM_HC_MMIO_WRITE;
     
    33653365            }
    33663366    } else {
    3367 #ifdef IN_RC
     3367#if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0)
    33683368        if (GCPhysAddr + cItems * cbItem >= VGA_MAPPING_SIZE)
    33693369            return VINF_IOM_HC_MMIO_WRITE;
     
    43004300
    43014301/**
    4302  * Info handler, device version. Dumps VGA memory formatted as 
     4302 * Info handler, device version. Dumps VGA memory formatted as
    43034303 * ASCII text, no attributes. Only looks at the first page.
    43044304 *
     
    53655365
    53665366    /*
    5367      * Allocate the VRAM and map the first 256KB of it into GC so we can speed up VGA support.
     5367     * Allocate the VRAM and map the first 512KB of it into GC so we can speed up VGA support.
    53685368     */
    53695369    rc = PDMDevHlpMMIO2Register(pDevIns, 0 /* iRegion */, pThis->vram_size, 0, (void **)&pThis->vram_ptrR3, "VRam");
     
    53715371    pThis->vram_ptrR0 = (RTR0PTR)pThis->vram_ptrR3; /** @todo #1865 Map parts into R0 or just use PGM access (Mac only). */
    53725372
    5373     RTRCPTR pRCMapping = 0;
    5374     rc = PDMDevHlpMMHyperMapMMIO2(pDevIns, 0 /* iRegion */, 0 /* off */,  VGA_MAPPING_SIZE, "VGA VRam", &pRCMapping);
    5375     AssertLogRelMsgRCReturn(rc, ("PDMDevHlpMMHyperMapMMIO2(%#x,) -> %Rrc\n", pThis->vram_size, rc), rc);
    5376     pThis->vram_ptrRC = pRCMapping;
     5373    if (pThis->fGCEnabled)
     5374    {
     5375        RTRCPTR pRCMapping = 0;
     5376        rc = PDMDevHlpMMHyperMapMMIO2(pDevIns, 0 /* iRegion */, 0 /* off */,  VGA_MAPPING_SIZE, "VGA VRam", &pRCMapping);
     5377        AssertLogRelMsgRCReturn(rc, ("PDMDevHlpMMHyperMapMMIO2(%#x,) -> %Rrc\n", VGA_MAPPING_SIZE, rc), rc);
     5378        pThis->vram_ptrRC = pRCMapping;
     5379    }
     5380
     5381#if defined(VBOX_WITH_2X_4GB_ADDR_SPACE)
     5382    if (pThis->fR0Enabled)
     5383    {
     5384        RTR0PTR pR0Mapping = 0;
     5385        rc = PDMDevHlpMMIO2MapKernel(pDevIns, 0 /* iRegion */, 0 /* off */,  VGA_MAPPING_SIZE, "VGA VRam", &pR0Mapping);
     5386        AssertLogRelMsgRCReturn(rc, ("PDMDevHlpMapMMIO2IntoR0(%#x,) -> %Rrc\n", VGA_MAPPING_SIZE, rc), rc);
     5387        pThis->vram_ptrR0 = pR0Mapping;
     5388    }
     5389#endif
    53775390
    53785391    /*
  • trunk/src/VBox/Devices/Makefile.kmk

    r14711 r14827  
    239239DevicesR3_TEMPLATE      = VBOXR3
    240240DevicesR3_SDKS.win      = WINPSDK W2K3DDK
     241DevicesR3_DEFS.darwin   = VBOX_WITH_2X_4GB_ADDR_SPACE
    241242DevicesR3_DEFS         += VBOX_HGCM_HOST_CODE \
    242243                          $(if $(VBOX_WITH_VMI),VBOX_WITH_VMI,)
     
    367368#
    368369VBoxDDGC_TEMPLATE       = VBOXGC
     370VBoxDDGC_SYSSUFF        = .gc
     371VBoxDDGC_DEFS.darwin    = VBOX_WITH_2X_4GB_ADDR_SPACE
    369372VBoxDDGC_DEFS           =
    370 VBoxDDGC_SYSSUFF        = .gc
    371373VBoxDDGC_INCS          := \
    372374        $(PATH_SUB_CURRENT)
     
    438440VBoxDDR0_TEMPLATE       = VBOXR0
    439441VBoxDDR0_SYSSUFF        = .r0
     442VBoxDDR0_DEFS.darwin    = VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 VBOX_WITH_2X_4GB_ADDR_SPACE
    440443VBoxDDR0_DEFS           = IN_RT_R0
    441444VBoxDDR0_INCS          := \
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