[PATCH] memory_display: add padding to simplify counting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Trying to count single bytes (e.g. when adding an offset) in 'word' or
'byte' output mode is not easy in the current formatting, and (at least
for me) has a high chance of miscounting or losing track of groups:

    barebox@boardname:/ md -b 0x149983f0+32
    149983f0: 18 00 00 00 00 00 0d 86 00 00 00 00 00 00 00 00    ................
    14998400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

    barebox@boardname:/ md -w 0x149983f0+32
    149983f0: 0018 0000 0000 860d 0000 0000 0000 0000            ................
    14998400: 0000 0000 0000 0000 0000 0000 0000 0000            ................

With an additional space after 8 bytes, counting becomes easier:

    barebox@boardname:/ md -b 0x149983f0+32
    149983f0: 18 00 00 00 00 00 0d 86  00 00 00 00 00 00 00 00   ................
    14998400: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................

    barebox@boardname:/ md -w 0x149983f0+32
    149983f0: 0018 0000 0000 860d  0000 0000 0000 0000           ................
    14998400: 0000 0000 0000 0000  0000 0000 0000 0000           ................

The 'quad' and 'long' output modes stay the same and are already much
more easier to count because they build bigger and therefore less groups
of bytes per line.

Signed-off-by: Roland Hieber <r.hieber@xxxxxxxxxxxxxx>
---
 common/memory_display.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/common/memory_display.c b/common/memory_display.c
index ea91985e5d..30821cced4 100644
--- a/common/memory_display.c
+++ b/common/memory_display.c
@@ -55,23 +55,27 @@ int memory_display(const void *addr, loff_t offs, unsigned nbytes, int size, int
 			} else if (size == 2) {
 				uint16_t res;
 				data_abort_mask();
 				res = *((uint16_t *)addr);
 				if (swab)
 					res = __swab16(res);
+				if (i > 1 && i % 8 == 0)
+					count -= printf(" ");
 				if (data_abort_unmask()) {
 					res = 0xffff;
 					count -= printf(" xxxx");
 				} else {
 					count -= printf(" %04x", res);
 				}
 				*usp++ = res;
 			} else {
 				uint8_t res;
 				data_abort_mask();
 				res = *((uint8_t *)addr);
+				if (i > 1 && i % 8 == 0)
+					count -= printf(" ");
 				if (data_abort_unmask()) {
 					res = 0xff;
 					count -= printf(" xx");
 				} else {
 					count -= printf(" %02x", res);
 				}
-- 
2.19.1


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux