tree_find_string_property(device *root, const char *path_to_property) { name_specifier spec; if (!split_property_specifier(root, path_to_property, &spec)) device_error(root, "Invalid property path %s", path_to_property); root = split_find_device(root, &spec); return device_find_string_property(root, spec.property); }
const struct hw_property * hw_tree_find_property (struct hw *root, const char *path_to_property) { name_specifier spec; if (!split_property_specifier (root, path_to_property, &spec)) hw_abort (root, "Invalid property path %s", path_to_property); root = split_find_device (root, &spec); if (spec.name != NULL) return NULL; /* not a leaf */ return hw_find_property (root, spec.property); }
const char * hw_tree_find_string_property (struct hw *root, const char *path_to_property) { name_specifier spec; if (!split_property_specifier (root, path_to_property, &spec)) hw_abort (root, "Invalid property path %s", path_to_property); root = split_find_device (root, &spec); if (spec.name != NULL) hw_abort (root, "device \"%s\" not found (property \"%s\")", spec.name, path_to_property); return hw_find_string_property (root, spec.property); }