fdt_setprop_inplace(9)
π
fdt_setprop_inplace β the fdt_setprop_inplace(9) situation, explained
okay so bestie, this is a page straight out of the Kernel API Manual and it's genuinely one of my faves because it's so polite. It changes a property's value without ever touching its size β like swapping the photo in a frame you already hung, no new nails required π
β¨ NAME β¨
fdt_setprop_inplace β change a property's value, but not its size
β¨ SYNOPSIS β¨
int fdt_setprop_inplace (void *fdt , int nodeoffset , const char *name ,
const void *val , int len );
β¨ ARGUMENTS β¨
fdtβ pointer to the device tree blob π¦nodeoffsetβ offset of the node whose property you're changingnameβ name of the property you're changingvalβ pointer to data to replace the property value withlenβ length of the property value
β¨ DESCRIPTION β¨
So fdt_setprop_inplace replaces the value of a given property with the data in val, of length len. The catch β and it's the catch, no cap β is that this function cannot change the size of a property, so it only works if len is exactly equal to the current length of the property. Length mismatch? It's giving "not today." π
The other iconic thing: this function alters only the bytes in the blob that contain the given property value. It will not alter or move any other part of the tree. No domino effects, no chain reaction, just a little local glow-up β¨ Since it's not shifting anything around, the offsets of everything else stay exactly where they were β main character energy, but make it considerate π
β¨ RETURN β¨
0β on success, slay π-FDT_ERR_NOSPACEβ iflenis not equal to the property's current length-FDT_ERR_NOTFOUNDβ node does not have the named property-FDT_ERR_BADOFFSETβnodeoffsetdid not point toFDT_BEGIN_NODEtag-FDT_ERR_BADMAGIC,-FDT_ERR_BADVERSION,-FDT_ERR_BADSTATE,-FDT_ERR_BADSTRUCTURE,-FDT_ERR_TRUNCATEDβ standard meanings
fr fr, don't ignore those error codes, they're literally telling you what went wrong π
β¨ SEE ALSO β¨
Kernel file ./scripts/dtc/libfdt/libfdt.h, plus the whole 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_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)
π«Ά the cute sign-off π«Ά
This lil masterpiece lives in ./scripts/dtc/libfdt, and it was dated October 2026 β mark your calendars bestie, because that's when the vibes were officially enshrined β¨π Go forth and set your props in place, and remember: size stays the same, always. periodt π
π
π¦ 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