fdt_move(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… fdt_move(9) β€” from the Kernel API Manual ✨

okay bestie, welcome to fdt_move(9), straight out of the Kernel API Manual. this one is short and sweet and honestly kind of a slay πŸŽ€


🌸 NAME 🌸

fdt_move β€” move a device tree around in memory πŸ¦‹


✨ SYNOPSIS ✨

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

πŸŽ€ ARGUMENTS πŸŽ€

  • fdt β€” pointer to the device tree you wanna move, bestie 🌈
  • buf β€” pointer to the memory where the device tree is gonna live after the move 🫢
  • bufsize β€” how big that memory space at buf actually is, no cap πŸ“

πŸ’– DESCRIPTION πŸ’–

so like, fdt_move relocates the device tree blob that's sitting at fdt over to the buffer at buf β€” assuming it can, of course β€” where the buffer is bufsize big πŸ’…

and here's the iconic part: the buffer may overlap with the existing device tree blob at fdt. literally overlapping is fine, she doesn't care πŸ™ˆ so because of that:

fdt_move(fdt, fdt, fdt_totalsize(fdt))

should always succeed. always always. periodt ✨


πŸ”₯ RETURN πŸ”₯

  • 0 β€” success, we ate πŸ‘‘
  • -FDT_ERR_NOSPACE β€” bufsize is not enough to contain the device tree, she's too big for the venue 😭
  • -FDT_ERR_BADMAGIC β€” standard meaning πŸ’€
  • -FDT_ERR_BADVERSION β€” standard meaning πŸ’€
  • -FDT_ERR_BADSTATE β€” standard meaning πŸ’€
ngl "standard meanings" is doing a lot of heavy lifting there but that's what the page says, so that's what you get πŸ“

πŸ¦‹ SEE ALSO πŸ¦‹

in the kernel file ./scripts/dtc/libfdt/libfdt.h β€” and okay this list is long, so buckle up bestie, we're going through all of it 🌸: 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_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_del_node(9), fdt_overlay_apply(9), fdt_overlay_target_offset(9), fdt_strerror(9)

like I said. long list. but every single one is there, you're welcome πŸ«ΆπŸ’œ


and that's the whole page, bestie β€” brought to you by ./scripts/dtc/libfdt, dated October 2026 🌈 mwah, go move some device trees πŸ’…βœ¨

πŸ“¦ where this page comes from