/* The common simulator framework for GDB, the GNU Debugger. Copyright 2002-2016 Free Software Foundation, Inc. Contributed by Andrew Cagney and Red Hat. This file is part of GDB. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef HW_TREE #define HW_TREE struct hw *hw_tree_create (SIM_DESC sd, const char *device); void hw_tree_delete (struct hw *root); struct hw *hw_tree_parse (struct hw *root, const char *fmt, ...) __attribute__ ((format (printf, 2, 3))); struct hw *hw_tree_vparse (struct hw *root, const char *fmt, va_list ap); void hw_tree_finish (struct hw *root); typedef void (hw_tree_print_callback) (void *, const char *fmt, ...); void hw_tree_print (struct hw *root, hw_tree_print_callback *print, void *file); /* Tree traversal:: The entire device tree can be traversed using the <> function. The traversal can be in either prefix or postfix order. */ typedef void (hw_tree_traverse_function) (struct hw *device, void *data); void hw_tree_traverse (struct hw *root, hw_tree_traverse_function *prefix, hw_tree_traverse_function *postfix, void *data); /* Tree lookup:: The function <> will attempt to locate the specified device within the tree. If the device is not found a NULL device is returned. */ struct hw * hw_tree_find_device (struct hw *root, const char *path); const struct hw_property *hw_tree_find_property (struct hw *root, const char *path_to_property); int hw_tree_find_boolean_property (struct hw *root, const char *path_to_property); signed_cell hw_tree_find_integer_property (struct hw *root, const char *path_to_property); #if NOT_YET device_instance *hw_tree_find_ihandle_property (struct hw *root, const char *path_to_property); #endif const char *hw_tree_find_string_property (struct hw *root, const char *path_to_property); /* Perform a soft reset on the created tree. */ void hw_tree_reset (struct hw *root); #endif