fdt_open_into(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… fdt_open_into β€” the Kernel API Manual moment πŸŽ€

okay so bestie, welcome to fdt_open_into(9), straight out of the Kernel API Manual. this is the glow-up page: we're taking your device tree and moving it somewhere it can actually be edited. main character relocation energy. ✨


🌸 NAME 🌸

fdt_open_into β€” move a device tree into a new buffer and make it editable. it's giving "fresh start, new apartment, now you can redecorate". πŸ¦‹


⭐ SYNOPSIS ⭐

int fdt_open_into (const void *fdt , void *buf , int bufsize );

πŸŽ€ ARGUMENTS πŸŽ€

  • fdt β€” Pointer to the device tree to move. this is the tree's current address, its little home before the move. 🏠
  • buf β€” Buffer where the editable tree should be placed. the new spot. think: the cute new apartment, but for bytes. πŸ’–
  • bufsize β€” Size of the buffer at buf. yes, you have to tell it. no, it can't just guess. πŸ™ˆ

πŸ¦‹ DESCRIPTION πŸ¦‹

so fdt_open_into moves and reorganizes the device tree blob from fdt into buf, converting it to a format suitable for read-write operations. literally a whole transformation arc. 🧚

the new buffer should allow space for modifications β€” no cap, if you size it too tight you're gonna have a bad time, so leave room for your edits. plan ahead, bestie. πŸ’…


πŸ”₯ RETURN πŸ”₯

  • 0 β€” on success. slay. βœ…
  • -FDT_ERR_NOSPACE β€” if bufsize is too small. 😭 the buffer said "no ❀️" β€” not enough room.
  • -FDT_ERR_BADMAGIC β€” standard meaning.
  • -FDT_ERR_BADVERSION β€” standard meaning.
  • -FDT_ERR_BADSTATE β€” standard meaning.
  • -FDT_ERR_BADSTRUCTURE β€” standard meaning.
  • -FDT_ERR_TRUNCATED β€” standard meaning.
bestie note: those last ones are the "standard meanings" crew β€” the page literally just says standard meanings for them, so that's what you get. i don't make the rules, i just relay them. 🫢

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./scripts/dtc/libfdt/libfdt.h, plus the whole entire 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_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_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 friend group. 🌈


okay that's the page!! 🫢 this one lives at ./scripts/dtc/libfdt, and it's stamped October 2026, page fdt_open_into(9) β€” mwah, go forth and move your trees. πŸ’œπŸ“

πŸ“¦ where this page comes from