mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
exec: hide mr->ram_addr from qemu_get_ram_ptr users
Let users of qemu_get_ram_ptr and qemu_ram_ptr_length pass in an address that is relative to the MemoryRegion. This basically means what address_space_translate returns. Because the semantics of the second parameter change, rename the function to qemu_map_ram_ptr. Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
07bdaa4196
commit
0878d0e11b
4 changed files with 31 additions and 54 deletions
|
@ -328,23 +328,10 @@ def qlist_foreach(head, field_str):
|
|||
yield var
|
||||
|
||||
|
||||
def qemu_get_ram_block(ram_addr):
|
||||
"""Returns the RAMBlock struct to which the given address belongs."""
|
||||
|
||||
ram_blocks = gdb.parse_and_eval("ram_list.blocks")
|
||||
|
||||
for block in qlist_foreach(ram_blocks, "next"):
|
||||
if (ram_addr - block["offset"]) < block["used_length"]:
|
||||
return block
|
||||
|
||||
raise gdb.GdbError("Bad ram offset %x" % ram_addr)
|
||||
|
||||
|
||||
def qemu_get_ram_ptr(ram_addr):
|
||||
def qemu_map_ram_ptr(block, offset):
|
||||
"""Returns qemu vaddr for given guest physical address."""
|
||||
|
||||
block = qemu_get_ram_block(ram_addr)
|
||||
return block["host"] + (ram_addr - block["offset"])
|
||||
return block["host"] + offset
|
||||
|
||||
|
||||
def memory_region_get_ram_ptr(memory_region):
|
||||
|
@ -352,7 +339,7 @@ def memory_region_get_ram_ptr(memory_region):
|
|||
return (memory_region_get_ram_ptr(memory_region["alias"].dereference())
|
||||
+ memory_region["alias_offset"])
|
||||
|
||||
return qemu_get_ram_ptr(memory_region["ram_block"]["offset"])
|
||||
return qemu_map_ram_ptr(memory_region["ram_block"], 0)
|
||||
|
||||
|
||||
def get_guest_phys_blocks():
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue