fdt_del_node(9)
πΈ fdt_del_node β from the Kernel API Manual (section 9, bb π)
okay so this is fdt_del_node(9), straight out of the Kernel API Manual, and it's literally the "yeet that node" function. if you've ever wanted to delete a subtree from a device tree blob and feel powerful doing it, this is your moment. periodt.
β¨ NAME β¨
fdt_del_node β delete a node (subtree). that's it. that's the whole job. it removes stuff. iconic behavior honestly π
π SYNOPSIS π
int fdt_del_node (void *fdt , int nodeoffset );
that's the whole signature bestie, two args, one int coming back at you π«Ά
π¦ ARGUMENTS π¦
fdtβ pointer to the device tree blob. like, the blob itself. the whole vibe.nodeoffsetβ offset of the node to nop. yes the manpage says "nop", we're keeping it, it's giving legacy terminology and we respect it π
π DESCRIPTION π
fdt_del_node will remove the given node, including all its subnodes if any, from the blob.
read that again ngl β all its subnodes. if any. it takes the whole family tree with it. main character energy, no survivors π
β οΈ okay so this is the important part and I need you to actually hear me: this function will delete data from the blob, and will therefore change the offsets of some existing nodes. so any offset you were holding onto from before this call? it might be pointing at completely different vibes now. do a little vibe check on your offsets after this. lowkey crucial π«
β RETURN β
0, on success π (slay)
and then the error squad, all of them:
-FDT_ERR_BADOFFSETβnodeoffsetdid not point toFDT_BEGIN_NODEtag. so you gave it a coordinate that isn't a node start. rude of you honestly π-FDT_ERR_BADLAYOUT-FDT_ERR_BADMAGIC-FDT_ERR_BADVERSION-FDT_ERR_BADSTATE-FDT_ERR_BADSTRUCTURE-FDT_ERR_TRUNCATED
those last ones are just standard meanings, iykyk π₯
π SEE ALSO π
okay the see-also section on this page is huge and I'm not skipping a single one of these, so buckle up bestie, we're going on a journey π§
Kernel file ./scripts/dtc/libfdt/libfdt.h, and then, in order:
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_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_overlay_apply(9), fdt_overlay_target_offset(9), fdt_strerror(9).
that's all of them, every single one, I counted, we ate that list uppp π
anyway that's the whole page π this one lives at ./scripts/dtc/libfdt, dated October 2026, so go forth and delete nodes responsibly. mwah π«Άπ
β¨
π¦ 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