fdt_generate_phandle(9)
β¨ fdt_generate_phandle(9) β¨
okay so bestie, welcome to the Kernel API Manual entry for fdt_generate_phandle π this one's short and sweet and honestly kinda iconic β it just hands you a fresh phandle like it's passing you a boba π§
π NAME π
fdt_generate_phandle β hands you a brand-new, never-been-used phandle for a device tree blob. no cap, that's literally it π
πΈ SYNOPSIS πΈ
int fdt_generate_phandle (const void *fdt , uint32_t *phandle );
π¦ ARGUMENTS π¦
fdtβ pointer to the device tree blob. like, the whole vibe you're working with π«Άphandleβ the return location for the new phandle. you give it a spot, it fills it in β¨
π DESCRIPTION π
so what happens is: it walks the device tree blob πΆββοΈ and hunts for the highest phandle value it can find. and then β slay β on success, the new, unused phandle value gets returned in the phandle parameter. and what is that value exactly? it's one higher than the previously highest phandle value in the device tree blob. one. higher. periodt π₯
she scoped out the whole tree first, found the top dog, and then went one past it. main character energy fr fr π
β RETURN β
0 on success, or a negative error-code if it fails π that's the whole vibe check.
π SEE ALSO π
the kernel file lives at ./scripts/dtc/libfdt/libfdt.h and honestly here's the whole friend group π«Ά:
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_find_max_phandle(9)fdt_get_max_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)
and that's the whole page bestie ππ this one came from ./scripts/dtc/libfdt, dated October 2026 β go off, king πβ¨
π¦ 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