fdt_find_max_phandle(9)
π fdt_find_max_phandle β like, the highest phandle in the whole tree
okay so this is a page from the Kernel API Manual, section 9, and it's about one (1) tiny little function that has one (1) tiny little job: go find the biggest phandle in your device tree and hand it back to you. iconic behavior honestly π
β¨ NAME β¨
fdt_find_max_phandle β bestie, it finds and returns the highest phandle in a tree. that's it. that's the whole gig πΈ
π¦ SYNOPSIS π¦
int fdt_find_max_phandle (const void *fdt , uint32_t *phandle );
(yes we're keeping the spacing exactly as-is, don't come for me π)
π ARGUMENTS π
fdtβ pointer to the device tree blob. the whole tree. the main character. you hand it over and it goes digging π³phandleβ the return location for the highest phandle value found in the tree. so like, you give it a spot to write into and it fills it in π
π₯ DESCRIPTION π₯
so fdt_find_max_phandle finds the highest phandle value in the given device tree. literally exactly what it says on the tin, no plot twists.
but here's the part you cannot skip, and i'm saying it with my whole chest:
the value returned in phandle is only valid if the function returns success. like, only then. if the call fails, whatever's sitting in there is not your answer, bestie, do not trust it π check the return value first, always, no cap.
β RETURN β
0 on success, or a negative error code on failure. that's the vibe check. 0 = we ate. negative = nope π«Ά
π SEE ALSO π
Kernel file ./scripts/dtc/libfdt/libfdt.h, plus literally the entire libfdt friend group (iykyk):
fdt_offset_ptr(9), fdt_next_tag(9), fdt_first_subnode(9), fdt_next_subnode(9), fdt_for_each_subnode(9), fdt_header_size(9), fdt_header_size_(9), fdt_check_header(9), fdt_move(9), fdt_check_full(9), fdt_get_string(9), fdt_string(9), fdt_get_max_phandle(9), fdt_generate_phandle(9), fdt_num_mem_rsv(9), fdt_get_mem_rsv(9), fdt_subnode_offset_namelen(9), fdt_subnode_offset(9), fdt_path_offset_namelen(9), fdt_path_offset(9), fdt_get_name(9), fdt_first_property_offset(9), fdt_next_property_offset(9), fdt_for_each_property_offset(9), fdt_get_property_by_offset(9), fdt_get_property_namelen(9), fdt_get_property(9), fdt_getprop_by_offset(9), fdt_getprop_namelen(9), fdt_getprop(9), fdt_get_phandle(9), fdt_get_alias_namelen(9), fdt_get_alias(9), fdt_get_symbol_namelen(9), fdt_get_symbol(9), fdt_get_path(9), fdt_supernode_atdepth_offset(9), fdt_node_depth(9), fdt_parent_offset(9), fdt_node_offset_by_prop_value(9), fdt_node_offset_by_phandle(9), fdt_node_check_compatible(9), fdt_node_offset_by_compatible(9), fdt_stringlist_contains(9), fdt_stringlist_count(9), fdt_stringlist_search(9), fdt_stringlist_get(9), FDT_MAX_NCELLS(9), fdt_address_cells(9), fdt_size_cells(9), fdt_setprop_inplace_namelen_partial(9), fdt_setprop_inplace(9), fdt_setprop_inplace_u32(9), fdt_setprop_inplace_u64(9), fdt_setprop_inplace_cell(9), fdt_nop_property(9), fdt_nop_node(9), fdt_create_with_flags(9), fdt_create(9), fdt_resize(9), fdt_add_reservemap_entry(9), fdt_finish_reservemap(9), fdt_begin_node(9), fdt_property(9), fdt_property_placeholder(9), fdt_end_node(9), fdt_finish(9), fdt_create_empty_tree(9), fdt_open_into(9), fdt_pack(9), fdt_add_mem_rsv(9), fdt_del_mem_rsv(9), fdt_set_name(9), fdt_setprop_namelen(9), fdt_setprop(9), fdt_setprop_placeholder_namelen(9), fdt_setprop_placeholder(9), fdt_setprop_u32(9), fdt_setprop_u64(9), fdt_setprop_cell(9), fdt_setprop_string(9), fdt_setprop_namelen_string(9), fdt_setprop_empty(9), fdt_appendprop(9), fdt_appendprop_u32(9), fdt_appendprop_u64(9), fdt_appendprop_cell(9), fdt_appendprop_string(9), fdt_appendprop_addrrange(9), fdt_delprop(9), fdt_add_subnode_namelen(9), fdt_add_subnode(9), fdt_del_node(9), fdt_overlay_apply(9), fdt_overlay_target_offset(9), fdt_strerror(9)
like i said. the whole group chat π
this little gem lives in ./scripts/dtc/libfdt, and this edition is dated October 2026. that's the source and the date, bestie β we close the page the same way it came in, with a cute little sign-off π§β¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms