@ -578,7 +578,9 @@ MemoryRegion *flatview_translate(FlatView *fv, hwaddr addr, hwaddr *xlat,
is_write , true , & as , attrs ) ;
mr = section . mr ;
if ( xen_enabled ( ) & & memory_access_is_direct ( mr , is_write , attrs ) ) {
if ( xen_map_cache_enabled ( ) & &
memory_access_is_direct ( mr , is_write , attrs ) ) {
/* mapcache: Next page may be unmapped or in a different bucket/VA. */
hwaddr page = ( ( addr & TARGET_PAGE_MASK ) + TARGET_PAGE_SIZE ) - addr ;
* plen = MIN ( page , * plen ) ;
}
@ -2577,7 +2579,7 @@ static void reclaim_ramblock(RAMBlock *block)
{
if ( block - > flags & RAM_PREALLOC ) {
;
} else if ( xen_enabled ( ) ) {
} else if ( xen_map_cache_ enabled ( ) ) {
xen_invalidate_map_cache_entry ( block - > host ) ;
# if !defined(_WIN32) && !defined(EMSCRIPTEN)
} else if ( block - > fd > = 0 ) {
@ -2736,7 +2738,7 @@ static void *qemu_ram_ptr_length(RAMBlock *block, ram_addr_t addr,
len = * size ;
}
if ( xen_enabled ( ) & & block - > host = = NULL ) {
if ( xen_map_cache_ enabled ( ) & & block - > host = = NULL ) {
/* We need to check if the requested address is in the RAM
* because we don ' t want to map the entire memory in QEMU .
* In that case just map the requested area .
@ -2785,7 +2787,7 @@ RAMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset,
RAMBlock * block ;
uint8_t * host = ptr ;
if ( xen_enabled ( ) ) {
if ( xen_map_cache_ enabled ( ) ) {
ram_addr_t ram_addr ;
RCU_READ_LOCK_GUARD ( ) ;
ram_addr = xen_ram_addr_from_mapcache ( ptr ) ;
@ -3787,7 +3789,7 @@ void address_space_unmap(AddressSpace *as, void *buffer, hwaddr len,
if ( is_write ) {
invalidate_and_set_dirty ( mr , addr1 , access_len ) ;
}
if ( xen_enabled ( ) ) {
if ( xen_map_cache_ enabled ( ) ) {
xen_invalidate_map_cache_entry ( buffer ) ;
}
memory_region_unref ( mr ) ;
@ -3898,7 +3900,7 @@ void address_space_cache_destroy(MemoryRegionCache *cache)
return ;
}
if ( xen_enabled ( ) ) {
if ( xen_map_cache_ enabled ( ) ) {
xen_invalidate_map_cache_entry ( cache - > ptr ) ;
}
memory_region_unref ( cache - > mrs . mr ) ;