add memory_region_add_subregion_overlap
This commit is contained in:
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_aarch64
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_aarch64
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_aarch64
|
#define memory_region_add_subregion memory_region_add_subregion_aarch64
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_aarch64
|
#define memory_region_del_subregion memory_region_del_subregion_aarch64
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_aarch64
|
||||||
#define memory_region_find memory_region_find_aarch64
|
#define memory_region_find memory_region_find_aarch64
|
||||||
#define memory_listener_register memory_listener_register_aarch64
|
#define memory_listener_register memory_listener_register_aarch64
|
||||||
#define memory_listener_unregister memory_listener_unregister_aarch64
|
#define memory_listener_unregister memory_listener_unregister_aarch64
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_arm
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_arm
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_arm
|
#define memory_region_add_subregion memory_region_add_subregion_arm
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_arm
|
#define memory_region_del_subregion memory_region_del_subregion_arm
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_arm
|
||||||
#define memory_region_find memory_region_find_arm
|
#define memory_region_find memory_region_find_arm
|
||||||
#define memory_listener_register memory_listener_register_arm
|
#define memory_listener_register memory_listener_register_arm
|
||||||
#define memory_listener_unregister memory_listener_unregister_arm
|
#define memory_listener_unregister memory_listener_unregister_arm
|
||||||
|
|||||||
@@ -1186,6 +1186,7 @@ MemoryRegion *memory_map(struct uc_struct *uc, hwaddr begin, size_t size, uint32
|
|||||||
MemoryRegion *memory_map_ptr(struct uc_struct *uc, hwaddr begin, size_t size, uint32_t perms, void *ptr);
|
MemoryRegion *memory_map_ptr(struct uc_struct *uc, hwaddr begin, size_t size, uint32_t perms, void *ptr);
|
||||||
MemoryRegion *memory_map_io(struct uc_struct *uc, ram_addr_t begin, size_t size, uc_cb_mmio_read_t read_cb,
|
MemoryRegion *memory_map_io(struct uc_struct *uc, ram_addr_t begin, size_t size, uc_cb_mmio_read_t read_cb,
|
||||||
uc_cb_mmio_write_t write_cb, void *user_data_read, void *user_data_write);
|
uc_cb_mmio_write_t write_cb, void *user_data_read, void *user_data_write);
|
||||||
|
MemoryRegion *memory_cow(struct uc_struct *uc, MemoryRegion *parrent, hwaddr begin, size_t size);
|
||||||
void memory_unmap(struct uc_struct *uc, MemoryRegion *mr);
|
void memory_unmap(struct uc_struct *uc, MemoryRegion *mr);
|
||||||
int memory_free(struct uc_struct *uc);
|
int memory_free(struct uc_struct *uc);
|
||||||
|
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_m68k
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_m68k
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_m68k
|
#define memory_region_add_subregion memory_region_add_subregion_m68k
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_m68k
|
#define memory_region_del_subregion memory_region_del_subregion_m68k
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_m68k
|
||||||
#define memory_region_find memory_region_find_m68k
|
#define memory_region_find memory_region_find_m68k
|
||||||
#define memory_listener_register memory_listener_register_m68k
|
#define memory_listener_register memory_listener_register_m68k
|
||||||
#define memory_listener_unregister memory_listener_unregister_m68k
|
#define memory_listener_unregister memory_listener_unregister_m68k
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_mips
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_mips
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_mips
|
#define memory_region_add_subregion memory_region_add_subregion_mips
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_mips
|
#define memory_region_del_subregion memory_region_del_subregion_mips
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_mips
|
||||||
#define memory_region_find memory_region_find_mips
|
#define memory_region_find memory_region_find_mips
|
||||||
#define memory_listener_register memory_listener_register_mips
|
#define memory_listener_register memory_listener_register_mips
|
||||||
#define memory_listener_unregister memory_listener_unregister_mips
|
#define memory_listener_unregister memory_listener_unregister_mips
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_mips64
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_mips64
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_mips64
|
#define memory_region_add_subregion memory_region_add_subregion_mips64
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_mips64
|
#define memory_region_del_subregion memory_region_del_subregion_mips64
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_mips64
|
||||||
#define memory_region_find memory_region_find_mips64
|
#define memory_region_find memory_region_find_mips64
|
||||||
#define memory_listener_register memory_listener_register_mips64
|
#define memory_listener_register memory_listener_register_mips64
|
||||||
#define memory_listener_unregister memory_listener_unregister_mips64
|
#define memory_listener_unregister memory_listener_unregister_mips64
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_mips64el
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_mips64el
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_mips64el
|
#define memory_region_add_subregion memory_region_add_subregion_mips64el
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_mips64el
|
#define memory_region_del_subregion memory_region_del_subregion_mips64el
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_mips64el
|
||||||
#define memory_region_find memory_region_find_mips64el
|
#define memory_region_find memory_region_find_mips64el
|
||||||
#define memory_listener_register memory_listener_register_mips64el
|
#define memory_listener_register memory_listener_register_mips64el
|
||||||
#define memory_listener_unregister memory_listener_unregister_mips64el
|
#define memory_listener_unregister memory_listener_unregister_mips64el
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_mipsel
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_mipsel
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_mipsel
|
#define memory_region_add_subregion memory_region_add_subregion_mipsel
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_mipsel
|
#define memory_region_del_subregion memory_region_del_subregion_mipsel
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_mipsel
|
||||||
#define memory_region_find memory_region_find_mipsel
|
#define memory_region_find memory_region_find_mipsel
|
||||||
#define memory_listener_register memory_listener_register_mipsel
|
#define memory_listener_register memory_listener_register_mipsel
|
||||||
#define memory_listener_unregister memory_listener_unregister_mipsel
|
#define memory_listener_unregister memory_listener_unregister_mipsel
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_ppc
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_ppc
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_ppc
|
#define memory_region_add_subregion memory_region_add_subregion_ppc
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_ppc
|
#define memory_region_del_subregion memory_region_del_subregion_ppc
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_ppc
|
||||||
#define memory_region_find memory_region_find_ppc
|
#define memory_region_find memory_region_find_ppc
|
||||||
#define memory_listener_register memory_listener_register_ppc
|
#define memory_listener_register memory_listener_register_ppc
|
||||||
#define memory_listener_unregister memory_listener_unregister_ppc
|
#define memory_listener_unregister memory_listener_unregister_ppc
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_ppc64
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_ppc64
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_ppc64
|
#define memory_region_add_subregion memory_region_add_subregion_ppc64
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_ppc64
|
#define memory_region_del_subregion memory_region_del_subregion_ppc64
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_ppc64
|
||||||
#define memory_region_find memory_region_find_ppc64
|
#define memory_region_find memory_region_find_ppc64
|
||||||
#define memory_listener_register memory_listener_register_ppc64
|
#define memory_listener_register memory_listener_register_ppc64
|
||||||
#define memory_listener_unregister memory_listener_unregister_ppc64
|
#define memory_listener_unregister memory_listener_unregister_ppc64
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_riscv32
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_riscv32
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_riscv32
|
#define memory_region_add_subregion memory_region_add_subregion_riscv32
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_riscv32
|
#define memory_region_del_subregion memory_region_del_subregion_riscv32
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_riscv32
|
||||||
#define memory_region_find memory_region_find_riscv32
|
#define memory_region_find memory_region_find_riscv32
|
||||||
#define memory_listener_register memory_listener_register_riscv32
|
#define memory_listener_register memory_listener_register_riscv32
|
||||||
#define memory_listener_unregister memory_listener_unregister_riscv32
|
#define memory_listener_unregister memory_listener_unregister_riscv32
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_riscv64
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_riscv64
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_riscv64
|
#define memory_region_add_subregion memory_region_add_subregion_riscv64
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_riscv64
|
#define memory_region_del_subregion memory_region_del_subregion_riscv64
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_riscv64
|
||||||
#define memory_region_find memory_region_find_riscv64
|
#define memory_region_find memory_region_find_riscv64
|
||||||
#define memory_listener_register memory_listener_register_riscv64
|
#define memory_listener_register memory_listener_register_riscv64
|
||||||
#define memory_listener_unregister memory_listener_unregister_riscv64
|
#define memory_listener_unregister memory_listener_unregister_riscv64
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_s390x
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_s390x
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_s390x
|
#define memory_region_add_subregion memory_region_add_subregion_s390x
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_s390x
|
#define memory_region_del_subregion memory_region_del_subregion_s390x
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_s390x
|
||||||
#define memory_region_find memory_region_find_s390x
|
#define memory_region_find memory_region_find_s390x
|
||||||
#define memory_listener_register memory_listener_register_s390x
|
#define memory_listener_register memory_listener_register_s390x
|
||||||
#define memory_listener_unregister memory_listener_unregister_s390x
|
#define memory_listener_unregister memory_listener_unregister_s390x
|
||||||
|
|||||||
@@ -1116,8 +1116,10 @@ static void memory_region_update_container_subregions(MemoryRegion *subregion)
|
|||||||
memory_region_transaction_begin();
|
memory_region_transaction_begin();
|
||||||
|
|
||||||
QTAILQ_FOREACH(other, &mr->subregions, subregions_link) {
|
QTAILQ_FOREACH(other, &mr->subregions, subregions_link) {
|
||||||
QTAILQ_INSERT_BEFORE(other, subregion, subregions_link);
|
if (subregion->priority >= other->priority) {
|
||||||
goto done;
|
QTAILQ_INSERT_BEFORE(other, subregion, subregions_link);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
QTAILQ_INSERT_TAIL(&mr->subregions, subregion, subregions_link);
|
QTAILQ_INSERT_TAIL(&mr->subregions, subregion, subregions_link);
|
||||||
|
|
||||||
@@ -1141,6 +1143,16 @@ void memory_region_add_subregion(MemoryRegion *mr,
|
|||||||
hwaddr offset,
|
hwaddr offset,
|
||||||
MemoryRegion *subregion)
|
MemoryRegion *subregion)
|
||||||
{
|
{
|
||||||
|
subregion->priority = 0;
|
||||||
|
memory_region_add_subregion_common(mr, offset, subregion);
|
||||||
|
}
|
||||||
|
|
||||||
|
void memory_region_add_subregion_overlap(MemoryRegion *mr,
|
||||||
|
hwaddr offset,
|
||||||
|
MemoryRegion *subregion,
|
||||||
|
int priority)
|
||||||
|
{
|
||||||
|
subregion->priority = priority;
|
||||||
memory_region_add_subregion_common(mr, offset, subregion);
|
memory_region_add_subregion_common(mr, offset, subregion);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_sparc
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_sparc
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_sparc
|
#define memory_region_add_subregion memory_region_add_subregion_sparc
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_sparc
|
#define memory_region_del_subregion memory_region_del_subregion_sparc
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_sparc
|
||||||
#define memory_region_find memory_region_find_sparc
|
#define memory_region_find memory_region_find_sparc
|
||||||
#define memory_listener_register memory_listener_register_sparc
|
#define memory_listener_register memory_listener_register_sparc
|
||||||
#define memory_listener_unregister memory_listener_unregister_sparc
|
#define memory_listener_unregister memory_listener_unregister_sparc
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_sparc64
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_sparc64
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_sparc64
|
#define memory_region_add_subregion memory_region_add_subregion_sparc64
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_sparc64
|
#define memory_region_del_subregion memory_region_del_subregion_sparc64
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_sparc64
|
||||||
#define memory_region_find memory_region_find_sparc64
|
#define memory_region_find memory_region_find_sparc64
|
||||||
#define memory_listener_register memory_listener_register_sparc64
|
#define memory_listener_register memory_listener_register_sparc64
|
||||||
#define memory_listener_unregister memory_listener_unregister_sparc64
|
#define memory_listener_unregister memory_listener_unregister_sparc64
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_tricore
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_tricore
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_tricore
|
#define memory_region_add_subregion memory_region_add_subregion_tricore
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_tricore
|
#define memory_region_del_subregion memory_region_del_subregion_tricore
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_tricore
|
||||||
#define memory_region_find memory_region_find_tricore
|
#define memory_region_find memory_region_find_tricore
|
||||||
#define memory_listener_register memory_listener_register_tricore
|
#define memory_listener_register memory_listener_register_tricore
|
||||||
#define memory_listener_unregister memory_listener_unregister_tricore
|
#define memory_listener_unregister memory_listener_unregister_tricore
|
||||||
|
|||||||
@@ -142,6 +142,7 @@
|
|||||||
#define memory_region_get_ram_addr memory_region_get_ram_addr_x86_64
|
#define memory_region_get_ram_addr memory_region_get_ram_addr_x86_64
|
||||||
#define memory_region_add_subregion memory_region_add_subregion_x86_64
|
#define memory_region_add_subregion memory_region_add_subregion_x86_64
|
||||||
#define memory_region_del_subregion memory_region_del_subregion_x86_64
|
#define memory_region_del_subregion memory_region_del_subregion_x86_64
|
||||||
|
#define memory_region_add_subregion_overlap memory_region_add_subregion_overlap_x86_64
|
||||||
#define memory_region_find memory_region_find_x86_64
|
#define memory_region_find memory_region_find_x86_64
|
||||||
#define memory_listener_register memory_listener_register_x86_64
|
#define memory_listener_register memory_listener_register_x86_64
|
||||||
#define memory_listener_unregister memory_listener_unregister_x86_64
|
#define memory_listener_unregister memory_listener_unregister_x86_64
|
||||||
|
|||||||
@@ -142,6 +142,7 @@ memory_region_from_host \
|
|||||||
memory_region_get_ram_addr \
|
memory_region_get_ram_addr \
|
||||||
memory_region_add_subregion \
|
memory_region_add_subregion \
|
||||||
memory_region_del_subregion \
|
memory_region_del_subregion \
|
||||||
|
memory_region_add_subregion_overlap \
|
||||||
memory_region_find \
|
memory_region_find \
|
||||||
memory_listener_register \
|
memory_listener_register \
|
||||||
memory_listener_unregister \
|
memory_listener_unregister \
|
||||||
|
|||||||
Reference in New Issue
Block a user