memory: add memory_region_is_mapped() API
which allows to check if MemoryRegion is already mapped. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
		
							parent
							
								
									10b7e74bf2
								
							
						
					
					
						commit
						eed2bacfd2
					
				@ -847,6 +847,14 @@ void memory_region_set_alias_offset(MemoryRegion *mr,
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
bool memory_region_present(MemoryRegion *container, hwaddr addr);
 | 
					bool memory_region_present(MemoryRegion *container, hwaddr addr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * memory_region_is_mapped: returns true if #MemoryRegion is mapped
 | 
				
			||||||
 | 
					 * into any address space.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @mr: a #MemoryRegion which should be checked if it's mapped
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					bool memory_region_is_mapped(MemoryRegion *mr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * memory_region_find: translate an address/size relative to a
 | 
					 * memory_region_find: translate an address/size relative to a
 | 
				
			||||||
 * MemoryRegion into a #MemoryRegionSection.
 | 
					 * MemoryRegion into a #MemoryRegionSection.
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										10
									
								
								memory.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								memory.c
									
									
									
									
									
								
							@ -493,7 +493,7 @@ static AddressSpace *memory_region_to_address_space(MemoryRegion *mr)
 | 
				
			|||||||
            return as;
 | 
					            return as;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    abort();
 | 
					    return NULL;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Render a memory region into the global view.  Ranges in @view obscure
 | 
					/* Render a memory region into the global view.  Ranges in @view obscure
 | 
				
			||||||
@ -1593,6 +1593,11 @@ bool memory_region_present(MemoryRegion *container, hwaddr addr)
 | 
				
			|||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool memory_region_is_mapped(MemoryRegion *mr)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return mr->container ? true : false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MemoryRegionSection memory_region_find(MemoryRegion *mr,
 | 
					MemoryRegionSection memory_region_find(MemoryRegion *mr,
 | 
				
			||||||
                                       hwaddr addr, uint64_t size)
 | 
					                                       hwaddr addr, uint64_t size)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -1610,6 +1615,9 @@ MemoryRegionSection memory_region_find(MemoryRegion *mr,
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    as = memory_region_to_address_space(root);
 | 
					    as = memory_region_to_address_space(root);
 | 
				
			||||||
 | 
					    if (!as) {
 | 
				
			||||||
 | 
					        return ret;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    range = addrrange_make(int128_make64(addr), int128_make64(size));
 | 
					    range = addrrange_make(int128_make64(addr), int128_make64(size));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    view = address_space_get_flatview(as);
 | 
					    view = address_space_get_flatview(as);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user