fdt_subnode_offset_namelen(9)
π fdt_subnode_offset_namelen β the "find a subnode by substring" girlie π
okay so bestie, this one lives in the Kernel API Manual and it is genuinely so useful. it's fdt_subnode_offset_namelen, and it's basically the main character version of its sibling function that lets you match on just a slice of a name. iykyk. π¦
β¨ SYNOPSIS β¨
int fdt_subnode_offset_namelen (const void *fdt , int parentoffset ,
const char *name , int namelen );
like, look at her. four params, zero drama. π
π ARGUMENTS π
fdtβ pointer to the device tree blob. yes ma'am, that's the blob. π«Άparentoffsetβ structure block offset of a node. it's giving "where we're starting from" energy.nameβ name of the subnode to locate. the thing you're hunting for πnamelenβ number of characters ofnameto consider. how much of the name actually gets to count. no cap.
πΈ DESCRIPTION πΈ
so this function is identical to fdt_subnode_offset, but plot twist: it only examines the first namelen characters of name when it's matching the subnode name. π―
the way that's useful? literally when you wanna find subnodes based on a portion of a larger string β like, say, a full path. you're not matching the whole thing, just the chunk you care about, and she eats that up every single time. obsessed. π₯
β RETURN β
offset of the subnode β or, if your name doesn't show up anywhere:
-FDT_ERR_NOTFOUND
and that's the whole mood. π
π¦ SEE ALSO π¦
kernel file ./scripts/dtc/libfdt/libfdt.h, plus the whole friend group β she does not go anywhere without them:
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(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)
ngl bestie, the -FDT_ERR_NOTFOUND return is the one thing to actually remember β it's not a crash, it's just her way of saying "she's not here rn." π
and that's the page!! π§ sign-off time: this one comes to you from ./scripts/dtc/libfdt, dated October 2026, and it's <rainbow>iconic</rainbow>. 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