fdt_setprop_namelen(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– fdt_setprop_namelen πŸ’–

okay so bestie, this one's from the Kernel API Manual β€” fdt_setprop_namelen(9) β€” and it's genuinely iconic for anyone messing with device tree blobs. pull up a chair πŸŽ€


✨ NAME ✨

fdt_setprop_namelen β€” create or change a property, but you get to say exactly how long the name is πŸ’…


🌸 SYNOPSIS 🌸

int fdt_setprop_namelen (void *fdt , int nodeoffset , const char *name ,
int namelen , const void *val , int len );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • fdt β€” pointer to the device tree blob. like, the whole tree, bestie, that's the thing πŸ’–
  • nodeoffset β€” offset of the node whose property you wanna change
  • name β€” name of the property you're changing
  • namelen β€” length of the name. yes, you have to tell it. no, it won't guess 🫢
  • val β€” pointer to the data you want the property value set to
  • len β€” length of the property value

🧚 DESCRIPTION 🧚

okay so fdt_setprop_namelen sets the value of the named property in the given node to the given value and length, and β€” this is the cute part β€” it creates the property if it doesn't already exist. slay πŸ’…βœ¨

⚠️ heads up bestie: this function may insert or delete data from the blob, which means it will change the offsets of some existing nodes. so any offsets you were holding onto? yeah, vibe check failed, they might be stale now 😭

πŸ”₯ RETURN πŸ”₯

  • 0 β€” on success, we love to see it πŸ‘‘
  • -FDT_ERR_NOSPACE β€” there's insufficient free space in the blob to contain the new property value. too full, no room, tragic πŸ’€
  • -FDT_ERR_BADOFFSET β€” nodeoffset did not point to FDT_BEGIN_NODE tag
  • -FDT_ERR_BADLAYOUT, -FDT_ERR_BADMAGIC, -FDT_ERR_BADVERSION, -FDT_ERR_BADSTATE, -FDT_ERR_BADSTRUCTURE, -FDT_ERR_BADLAYOUT, -FDT_ERR_TRUNCATED β€” standard meanings πŸ’–

(yes, -FDT_ERR_BADLAYOUT is in there twice. not me fixing it, that's literally what it says πŸ™ˆ)


🌈 SEE ALSO 🌈

Kernel file ./scripts/dtc/libfdt/libfdt.h

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(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, that's a whole friend group right there 🫢


mwah πŸ’‹ this page lives in ./scripts/dtc/libfdt, dated October 2026 β€” go read it, ily, bye πŸŽ€βœ¨

πŸ“¦ where this page comes from