fdt_finish(9)
π fdt_finish(9) β Kernel API Manual π
okay so bestie, welcome to the glow-up page for fdt_finish(9) β yes that's the manual section in the parentheses, we're being official today β¨
πΈ NAME πΈ
fdt_finish β the moment where your device tree creation arc finally gets its main character finale π
β¨ SYNOPSIS β¨
int fdt_finish (void *fdt );
like, that's it. one function. one pointer. one little completion ceremony π
π¦ ARGUMENTS π¦
fdtβ a pointer to the device tree blob π«Ά literally just hand it the blob and let it cook.
π DESCRIPTION π
so fdt_finish is the finishing bestie. it completes the whole device tree creation process that you started earlier with fdt_create. think of it like the last brush of lip gloss before you walk out the door π
this function finalizes the device tree blob and makes it ready for use. after you call it, the blob is complete, and you can use it with the libfdt read-only and read-write functions β but not with the sequential write functions. ngl that part matters, so don't come for me if you try it π
β RETURN β
0β on success, slay π β¨-FDT_ERR_BADSTATEβ when the sequential write process is incomplete π like bestie the story isn't finished yet, you can't end the chapter early
π SEE ALSO π
the Kernel file ./scripts/dtc/libfdt/libfdt.h and honestly the entire extended universe of libfdt lore, iykyk β here's the full squad, no cap, every single one π«Ά
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_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_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, you ate that ππ
shoutout to ./scripts/dtc/libfdt for birthing this iconic file, dated October 2026 β mwah, xoxo π
π¦ 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