// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later /* Copyright 2015-2017 IBM Corp. */ #include #include #include "../include/device.h" /* dump_dt() is used in hdata/test/hdata_to_dt.c and core/test/run-device.c * this file is directly #included in both */ static void indent_num(unsigned indent) { unsigned int i; for (i = 0; i < indent; i++) putc(' ', stdout); } static void dump_val(unsigned indent, const void *prop, size_t size) { size_t i; int width = 78 - indent; for (i = 0; i < size; i++) { printf("%02x", ((unsigned char *)prop)[i]); width -= 2; if(width < 2) { printf("\n"); indent_num(indent); width = 80 - indent; } } } void dump_dt(const struct dt_node *root, unsigned indent, bool show_props); void dump_dt(const struct dt_node *root, unsigned indent, bool show_props) { const struct dt_node *i; const struct dt_property *p; indent_num(indent); printf("node: %s\n", root->name); if (show_props) { list_for_each(&root->properties, p, list) { indent_num(indent); printf("prop: %s size: %zu val: ", p->name, p->len); dump_val(indent, p->prop, p->len); printf("\n"); } } list_for_each(&root->children, i, list) dump_dt(i, indent + 2, show_props); }