aboutsummaryrefslogtreecommitdiff
path: root/modules/devices/devicetree.c
diff options
context:
space:
mode:
authorBurt P <pburt0@gmail.com>2017-07-22 03:03:53 -0500
committerLeandro A. F. Pereira <leandro@hardinfo.org>2017-07-22 14:24:27 -0700
commit9870e396bc02f3717cf9fc1000436c46f1dcf1eb (patch)
tree1c7ea92a1fb905240ad9a165a1d56998abe37ce5 /modules/devices/devicetree.c
parentca4a9ce41de942241b6a26ad83a5218d2d735b2e (diff)
device tree: group interrupt specifiers' values using #interrupt-cells
Also, add a message log to the dtr object. Signed-off-by: Burt P <pburt0@gmail.com>
Diffstat (limited to 'modules/devices/devicetree.c')
-rw-r--r--modules/devices/devicetree.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/modules/devices/devicetree.c b/modules/devices/devicetree.c
index 7252323b..c6207972 100644
--- a/modules/devices/devicetree.c
+++ b/modules/devices/devicetree.c
@@ -260,20 +260,44 @@ void add_keys(char *np) {
g_dir_close(dir);
}
+char *msg_section(int dump) {
+ gchar *aslbl = NULL;
+ gchar *messages = dtr_messages(dt);
+ gchar *ret = g_strdup_printf("[%s]\n", _("Messages"));
+ gchar **lines = g_strsplit(messages, "\n", 0);
+ int i = 0;
+ while(lines[i] != NULL) {
+ aslbl = hardinfo_clean_label(lines[i], 0);
+ ret = appf(ret, "%s=\n", aslbl);
+ g_free(aslbl);
+ i++;
+ }
+ g_strfreev(lines);
+ if (dump)
+ printf(messages);
+ g_free(messages);
+ return ret;
+}
+
void __scan_dtree()
{
dt = dtr_new(NULL);
gchar *summary = get_summary();
gchar *maps = dtr_maps_info(dt);
+ gchar *messages = NULL;
dtree_info = g_strdup("[Device Tree]\n");
mi_add("Summary", summary);
mi_add("Maps", maps);
add_keys("/");
+ messages = msg_section(0);
+ mi_add("Messages", messages);
//printf("%s\n", dtree_info);
+
g_free(summary);
g_free(maps);
+ g_free(messages);
dtr_free(dt);
}