diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2011-08-10 14:48:18 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-08-17 09:36:35 +0200 |
commit | 79884012c66390845b977cd1cab2db1f9cd0a3b5 (patch) | |
tree | 88668b8a3086a829c5b0a4f2da10762ec323d311 | |
parent | c574a0d1f1ef61889c9a5e378bcb814e218665e8 (diff) | |
download | barebox-79884012c66390845b977cd1cab2db1f9cd0a3b5.tar.gz barebox-79884012c66390845b977cd1cab2db1f9cd0a3b5.tar.xz |
devinfo: beautify output
Files associated to a device showed up in a long list. Instead,
print them in seperate lines and also show offset/size information
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | drivers/base/driver.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/drivers/base/driver.c b/drivers/base/driver.c index b8b2f39604..0b80103144 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c @@ -283,32 +283,33 @@ void devices_shutdown(void) } #ifdef CONFIG_CMD_DEVINFO -static int do_devinfo_subtree(struct device_d *dev, int depth, char edge) +static int do_devinfo_subtree(struct device_d *dev, int depth) { struct device_d *child; struct cdev *cdev; int i; for (i = 0; i < depth; i++) - printf("| "); + printf(" "); - printf("%c----%s", edge, dev_name(dev)); + printf("`---- %s", dev_name(dev)); if (!list_empty(&dev->cdevs)) { - printf(" ("); + printf("\n"); list_for_each_entry(cdev, &dev->cdevs, devices_list) { - printf("%s", cdev->name); - if (!list_is_last(&cdev->devices_list, &dev->cdevs)) - printf(", "); + for (i = 0; i < depth + 1; i++) + printf(" "); + printf("`---- 0x%08lx-0x%08lx: /dev/%s\n", + cdev->offset, + cdev->offset + cdev->size - 1, + cdev->name); } - printf(")"); + } else { + printf("\n"); } - printf("\n"); if (!list_empty(&dev->children)) { device_for_each_child(dev, child) { - do_devinfo_subtree(child, depth + 1, - list_is_last(&child->sibling, - &dev->children) ? '`' : '|'); + do_devinfo_subtree(child, depth + 1); } } @@ -328,7 +329,7 @@ static int do_devinfo(struct command *cmdtp, int argc, char *argv[]) for_each_device(dev) { if (!dev->parent) - do_devinfo_subtree(dev, 0, '|'); + do_devinfo_subtree(dev, 0); } printf("\ndrivers:\n"); |