diff options
author | Burt P <pburt0@gmail.com> | 2017-07-19 01:23:15 -0500 |
---|---|---|
committer | Leandro Pereira <leandro@hardinfo.org> | 2017-07-19 07:20:40 -0700 |
commit | 36dc312add5605137fbca70bd68f3deb4fb83858 (patch) | |
tree | 4b995171b632d6f22a869920a8abdbcdfa65df4c | |
parent | 9b2982813bdb1241e2149bd48893d03e139d24bb (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.h | 12 | ||||
-rw-r--r-- | modules/devices/devicetree.c | 4 | ||||
-rw-r--r-- | modules/devices/devicetree/dt_util.c | 4 |
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); |