diff options
-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); |