summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBurt P <pburt0@gmail.com>2017-07-19 01:23:15 -0500
committerLeandro Pereira <leandro@hardinfo.org>2017-07-19 07:20:40 -0700
commit36dc312add5605137fbca70bd68f3deb4fb83858 (patch)
tree4b995171b632d6f22a869920a8abdbcdfa65df4c
parent9b2982813bdb1241e2149bd48893d03e139d24bb (diff)
device tree: code comments and tweak dtr_str()
* dtr_str() requires obj, which knows its dtr. Signed-off-by: Burt P <pburt0@gmail.com>
-rw-r--r--includes/dt_util.h12
-rw-r--r--modules/devices/devicetree.c4
-rw-r--r--modules/devices/devicetree/dt_util.c4
3 files changed, 12 insertions, 8 deletions
diff --git a/includes/dt_util.h b/includes/dt_util.h
index e044def7..fdaf1c4c 100644
--- a/includes/dt_util.h
+++ b/includes/dt_util.h
@@ -42,15 +42,19 @@ dtr_obj *dtr_obj_read(dtr *, const char *dtp);
void dtr_obj_free(dtr_obj *);
int dtr_obj_type(dtr_obj *);
char *dtr_obj_alias(dtr_obj *);
-char *dtr_obj_path(dtr_obj *);
-char *dtr_obj_full_path(dtr_obj *);
+char *dtr_obj_path(dtr_obj *); /* device tree path */
+char *dtr_obj_full_path(dtr_obj *); /* system path */
-char* dtr_str(dtr *, dtr_obj *obj);
+/* find property/node 'name' relative to node
+ * if node is NULL, then from root */
dtr_obj *dtr_get_prop_obj(dtr *, dtr_obj *node, const char *name);
char *dtr_get_prop_str(dtr *, dtr_obj *node, const char *name);
uint32_t dtr_get_prop_u32(dtr *, dtr_obj *node, const char *name);
-static int dtr_guess_type(dtr_obj *obj);
+/* attempts to render the object as a string */
+char* dtr_str(dtr_obj *obj);
+
+int dtr_guess_type(dtr_obj *obj);
char *dtr_elem_phref(dtr *, dt_uint e);
char *dtr_elem_hex(dt_uint e);
char *dtr_elem_byte(uint8_t e);
diff --git a/modules/devices/devicetree.c b/modules/devices/devicetree.c
index b3a9d621..3dc6f60a 100644
--- a/modules/devices/devicetree.c
+++ b/modules/devices/devicetree.c
@@ -106,7 +106,7 @@ gchar *get_node(char *np) {
if (dir) {
while((fn = g_dir_read_name(dir)) != NULL) {
child = dtr_get_prop_obj(dt, node, fn);
- pstr = hardinfo_clean_value(dtr_str(dt, child), 1);
+ pstr = hardinfo_clean_value(dtr_str(child), 1);
lstr = hardinfo_clean_label(fn, 0);
if (dtr_obj_type(child) == DT_NODE) {
tmp = g_strdup_printf("%s%s=%s\n",
@@ -148,7 +148,7 @@ char *get_dt_string(char *path, int decode) {
char *ret = NULL;
if (decode) {
obj = dtr_get_prop_obj(dt, NULL, path);
- ret = dtr_str(dt, obj);
+ ret = dtr_str(obj);
dtr_obj_free(obj);
} else
ret = dtr_get_prop_str(dt, NULL, path);
diff --git a/modules/devices/devicetree/dt_util.c b/modules/devices/devicetree/dt_util.c
index 7c713c4f..3d8f1ce8 100644
--- a/modules/devices/devicetree/dt_util.c
+++ b/modules/devices/devicetree/dt_util.c
@@ -454,7 +454,7 @@ char *dtr_list_str0(const char *data, uint32_t length) {
return strdup(ret);
}
-char* dtr_str(dtr *s, dtr_obj *obj) {
+char* dtr_str(dtr_obj *obj) {
char *ret;
int type;
@@ -484,7 +484,7 @@ char* dtr_str(dtr *s, dtr_obj *obj) {
ret = dtr_list_hex(obj->data, obj->length / 4);
break;
case DTP_PH_REF:
- ret = dtr_elem_phref(s, *obj->data_int);
+ ret = dtr_elem_phref(obj->dt, *obj->data_int);
break;
case DTP_UINT:
ret = dtr_elem_uint(*obj->data_int);