提交 b0225c2c 编写于 作者: P Peter Crosthwaite 提交者: Paolo Bonzini

memory: Use canonical path component as the name

Rather than having the name as separate state. This prepares support
for creating a MemoryRegion dynamically (i.e. without
memory_region_init() and friends) and the MemoryRegion still getting
a usable name.
Signed-off-by: NPeter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
上级 3fb18b4d
...@@ -162,7 +162,6 @@ struct MemoryRegion { ...@@ -162,7 +162,6 @@ struct MemoryRegion {
QTAILQ_HEAD(subregions, MemoryRegion) subregions; QTAILQ_HEAD(subregions, MemoryRegion) subregions;
QTAILQ_ENTRY(MemoryRegion) subregions_link; QTAILQ_ENTRY(MemoryRegion) subregions_link;
QTAILQ_HEAD(coalesced_ranges, CoalescedMemoryRange) coalesced; QTAILQ_HEAD(coalesced_ranges, CoalescedMemoryRange) coalesced;
const char *name;
uint8_t dirty_log_mask; uint8_t dirty_log_mask;
unsigned ioeventfd_nb; unsigned ioeventfd_nb;
MemoryRegionIoeventfd *ioeventfds; MemoryRegionIoeventfd *ioeventfds;
......
...@@ -915,7 +915,6 @@ void memory_region_init(MemoryRegion *mr, ...@@ -915,7 +915,6 @@ void memory_region_init(MemoryRegion *mr,
if (size == UINT64_MAX) { if (size == UINT64_MAX) {
mr->size = int128_2_64(); mr->size = int128_2_64();
} }
mr->name = g_strdup(name);
if (name) { if (name) {
object_property_add_child_array(owner, name, OBJECT(mr)); object_property_add_child_array(owner, name, OBJECT(mr));
...@@ -1260,7 +1259,6 @@ static void memory_region_finalize(Object *obj) ...@@ -1260,7 +1259,6 @@ static void memory_region_finalize(Object *obj)
assert(memory_region_transaction_depth == 0); assert(memory_region_transaction_depth == 0);
mr->destructor(mr); mr->destructor(mr);
memory_region_clear_coalescing(mr); memory_region_clear_coalescing(mr);
g_free((char *)mr->name);
g_free(mr->ioeventfds); g_free(mr->ioeventfds);
} }
...@@ -1310,7 +1308,7 @@ uint64_t memory_region_size(MemoryRegion *mr) ...@@ -1310,7 +1308,7 @@ uint64_t memory_region_size(MemoryRegion *mr)
const char *memory_region_name(const MemoryRegion *mr) const char *memory_region_name(const MemoryRegion *mr)
{ {
return mr->name; return object_get_canonical_path_component(OBJECT(mr));
} }
bool memory_region_is_ram(MemoryRegion *mr) bool memory_region_is_ram(MemoryRegion *mr)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册