Lines Matching +full:in +full:- +full:tree
1 // SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
3 * libfdt - Flat Device Tree manipulation
54 err = -FDT_ERR_BADOFFSET; in fdt_get_string()
58 len = totalsize - absoffset; in fdt_get_string()
66 if ((fdt_size_dt_strings(fdt) - stroffset) < len) in fdt_get_string()
67 len = fdt_size_dt_strings(fdt) - stroffset; in fdt_get_string()
70 unsigned int sw_stroffset = -stroffset; in fdt_get_string()
78 err = -FDT_ERR_INTERNAL; in fdt_get_string()
86 err = -FDT_ERR_TRUNCATED; in fdt_get_string()
91 *lenp = n - s; in fdt_get_string()
117 int offset = -1; in fdt_find_max_phandle()
124 if (offset == -FDT_ERR_NOTFOUND) in fdt_find_max_phandle()
152 return -FDT_ERR_NOPHANDLES; in fdt_generate_phandle()
168 if (absoffset > fdt_totalsize(fdt) - in fdt_mem_rsv()
182 return -FDT_ERR_BADOFFSET; in fdt_get_mem_rsv()
184 *address = fdt64_ld_(&re->address); in fdt_get_mem_rsv()
185 *size = fdt64_ld_(&re->size); in fdt_get_mem_rsv()
195 if (fdt64_ld_(&re->size) == 0) in fdt_num_mem_rsv()
198 return -FDT_ERR_TRUNCATED; in fdt_num_mem_rsv()
212 return -FDT_ERR_BADSTRUCTURE; in nextprop_()
222 return -FDT_ERR_NOTFOUND; in nextprop_()
240 return -FDT_ERR_NOTFOUND; in fdt_subnode_offset_namelen()
260 const char *q = memchr(path, '/', end - p); in fdt_path_offset_namelen()
265 p = fdt_get_alias_namelen(fdt, p, q - p); in fdt_path_offset_namelen()
267 return -FDT_ERR_BADPATH; in fdt_path_offset_namelen()
281 q = memchr(p, '/', end - p); in fdt_path_offset_namelen()
285 offset = fdt_subnode_offset_namelen(fdt, offset, p, q-p); in fdt_path_offset_namelen()
310 nameptr = nh->name; in fdt_get_name()
315 * give only the leaf name (after all /). The actual tree in fdt_get_name()
321 err = -FDT_ERR_BADSTRUCTURE; in fdt_get_name()
373 *lenp = fdt32_ld_(&prop->len); in fdt_get_property_by_offset_()
387 *lenp = -FDT_ERR_BADVERSION; in fdt_get_property_by_offset()
408 offset = -FDT_ERR_INTERNAL; in fdt_get_property_namelen_()
411 if (fdt_string_eq_(fdt, fdt32_ld_(&prop->nameoff), in fdt_get_property_namelen_()
434 *lenp = -FDT_ERR_BADVERSION; in fdt_get_property_namelen()
464 (poffset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8) in fdt_getprop_namelen()
465 return prop->data + 4; in fdt_getprop_namelen()
466 return prop->data; in fdt_getprop_namelen()
482 name = fdt_get_string(fdt, fdt32_ld_(&prop->nameoff), in fdt_getprop_by_offset()
491 *namep = fdt_string(fdt, fdt32_ld_(&prop->nameoff)); in fdt_getprop_by_offset()
497 (offset + sizeof(*prop)) % 8 && fdt32_ld_(&prop->len) >= 8) in fdt_getprop_by_offset()
498 return prop->data + 4; in fdt_getprop_by_offset()
499 return prop->data; in fdt_getprop_by_offset()
513 /* FIXME: This is a bit sub-optimal, since we potentially scan in fdt_get_phandle()
551 return -FDT_ERR_NOSPACE; in fdt_get_path()
558 p--; in fdt_get_path()
559 } while (buf[p-1] != '/'); in fdt_get_path()
560 pdepth--; in fdt_get_path()
577 return -FDT_ERR_NOSPACE; in fdt_get_path()
580 p--; in fdt_get_path()
586 if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0)) in fdt_get_path()
587 return -FDT_ERR_BADOFFSET; in fdt_get_path()
588 else if (offset == -FDT_ERR_BADOFFSET) in fdt_get_path()
589 return -FDT_ERR_BADSTRUCTURE; in fdt_get_path()
598 int supernodeoffset = -FDT_ERR_INTERNAL; in fdt_supernode_atdepth_offset()
603 return -FDT_ERR_NOTFOUND; in fdt_supernode_atdepth_offset()
616 return -FDT_ERR_NOTFOUND; in fdt_supernode_atdepth_offset()
623 if ((offset == -FDT_ERR_NOTFOUND) || (offset >= 0)) in fdt_supernode_atdepth_offset()
624 return -FDT_ERR_BADOFFSET; in fdt_supernode_atdepth_offset()
625 else if (offset == -FDT_ERR_BADOFFSET) in fdt_supernode_atdepth_offset()
626 return -FDT_ERR_BADSTRUCTURE; in fdt_supernode_atdepth_offset()
640 -FDT_ERR_INTERNAL; in fdt_node_depth()
651 nodedepth - 1, NULL); in fdt_parent_offset()
665 * property of a node in fdt_getprop(), then if that didn't in fdt_node_offset_by_prop_value()
686 return -FDT_ERR_BADPHANDLE; in fdt_node_offset_by_phandle()
691 * potentially scan each property of a node in in fdt_node_offset_by_phandle()
696 for (offset = fdt_next_node(fdt, -1, NULL); in fdt_node_offset_by_phandle()
717 listlen -= (p-strlist) + 1; in fdt_stringlist_contains()
735 length = strnlen(list, end - list) + 1; in fdt_stringlist_count()
737 /* Abort if the last string isn't properly NUL-terminated. */ in fdt_stringlist_count()
739 return -FDT_ERR_BADVALUE; in fdt_stringlist_count()
762 length = strnlen(list, end - list) + 1; in fdt_stringlist_search()
764 /* Abort if the last string isn't properly NUL-terminated. */ in fdt_stringlist_search()
766 return -FDT_ERR_BADVALUE; in fdt_stringlist_search()
775 return -FDT_ERR_NOTFOUND; in fdt_stringlist_search()
796 length = strnlen(list, end - list) + 1; in fdt_stringlist_get()
798 /* Abort if the last string isn't properly NUL-terminated. */ in fdt_stringlist_get()
801 *lenp = -FDT_ERR_BADVALUE; in fdt_stringlist_get()
808 *lenp = length - 1; in fdt_stringlist_get()
814 idx--; in fdt_stringlist_get()
818 *lenp = -FDT_ERR_NOTFOUND; in fdt_stringlist_get()
844 * property of a node in fdt_node_check_compatible(), then if in fdt_node_offset_by_compatible()
852 if ((err < 0) && (err != -FDT_ERR_NOTFOUND)) in fdt_node_offset_by_compatible()