* Peter Xu (pet...@redhat.com) wrote: > We were dumping RW bits for each memory region, that might be confusing. > It'll make more sense to dump the memory region type directly rather > than the RW bits since that's how the bits are derived. > > Meanwhile, with some slight cleanup in the function. > > Signed-off-by: Peter Xu <pet...@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > --- > memory.c | 48 +++++++++++++++++++++++++++--------------------- > 1 file changed, 27 insertions(+), 21 deletions(-) > > diff --git a/memory.c b/memory.c > index 2bfc37f..c42bde4 100644 > --- a/memory.c > +++ b/memory.c > @@ -2450,6 +2450,21 @@ void address_space_destroy(AddressSpace *as) > call_rcu(as, do_address_space_destroy, rcu); > } > > +static const char *memory_region_type(MemoryRegion *mr) > +{ > + if (memory_region_is_ram_device(mr)) { > + return "ramd"; > + } else if (memory_region_is_romd(mr)) { > + return "romd"; > + } else if (memory_region_is_rom(mr)) { > + return "rom"; > + } else if (memory_region_is_ram(mr)) { > + return "ram"; > + } else { > + return "i/o"; > + } > +} > + > typedef struct MemoryRegionList MemoryRegionList; > > struct MemoryRegionList { > @@ -2459,6 +2474,10 @@ struct MemoryRegionList { > > typedef QTAILQ_HEAD(queue, MemoryRegionList) MemoryRegionListHead; > > +#define MR_SIZE(size) (int128_nz(size) ? (hwaddr)int128_get64( \ > + int128_sub((size), int128_one())) : 0) > +#define MTREE_INDENT " " > + > static void mtree_print_mr(fprintf_function mon_printf, void *f, > const MemoryRegion *mr, unsigned int level, > hwaddr base, > @@ -2474,7 +2493,7 @@ static void mtree_print_mr(fprintf_function mon_printf, > void *f, > } > > for (i = 0; i < level; i++) { > - mon_printf(f, " "); > + mon_printf(f, MTREE_INDENT); > } > > if (mr->alias) { > @@ -2494,37 +2513,24 @@ static void mtree_print_mr(fprintf_function > mon_printf, void *f, > QTAILQ_INSERT_TAIL(alias_print_queue, ml, queue); > } > mon_printf(f, TARGET_FMT_plx "-" TARGET_FMT_plx > - " (prio %d, %c%c): alias %s @%s " TARGET_FMT_plx > + " (prio %d, %s): alias %s @%s " TARGET_FMT_plx > "-" TARGET_FMT_plx "%s\n", > base + mr->addr, > - base + mr->addr > - + (int128_nz(mr->size) ? > - (hwaddr)int128_get64(int128_sub(mr->size, > - int128_one())) : 0), > + base + mr->addr + MR_SIZE(mr->size), > mr->priority, > - mr->romd_mode ? 'R' : '-', > - !mr->readonly && !(mr->rom_device && mr->romd_mode) ? 'W' > - : '-', > + memory_region_type((MemoryRegion *)mr), > memory_region_name(mr), > memory_region_name(mr->alias), > mr->alias_offset, > - mr->alias_offset > - + (int128_nz(mr->size) ? > - (hwaddr)int128_get64(int128_sub(mr->size, > - int128_one())) : 0), > + mr->alias_offset + MR_SIZE(mr->size), > mr->enabled ? "" : " [disabled]"); > } else { > mon_printf(f, > - TARGET_FMT_plx "-" TARGET_FMT_plx " (prio %d, %c%c): > %s%s\n", > + TARGET_FMT_plx "-" TARGET_FMT_plx " (prio %d, %s): > %s%s\n", > base + mr->addr, > - base + mr->addr > - + (int128_nz(mr->size) ? > - (hwaddr)int128_get64(int128_sub(mr->size, > - int128_one())) : 0), > + base + mr->addr + MR_SIZE(mr->size), > mr->priority, > - mr->romd_mode ? 'R' : '-', > - !mr->readonly && !(mr->rom_device && mr->romd_mode) ? 'W' > - : '-', > + memory_region_type((MemoryRegion *)mr), > memory_region_name(mr), > mr->enabled ? "" : " [disabled]"); > } > -- > 2.7.4 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK