fdt_stringlist_get(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay bestie, welcome to fdt_stringlist_get(9) from the Kernel API Manual 🫢 this is the page for how to obtain the string at a given index in a string list β€” yes, the exact string you point at, no cap. This one is lowkey iconic. ✨

πŸŽ€ SYNOPSIS πŸŽ€

like, the signature is literally this, fr fr:

const char * fdt_stringlist_get (const void *fdt , int nodeoffset ,
       const char *property , int index , int *lenp );

🌸 ARGUMENTS 🌸

  • fdt β€” pointer to the device tree blob 🌳
  • nodeoffset β€” offset of a tree node
  • property β€” name of the property containing the string list
  • index β€” index of the string to return
  • lenp β€” return location for the string length or an error code on failure

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here’s the tea β˜•: this will successfully extract strings from properties with non-NUL-terminated values. For example, on small-valued cell properties this function will return the empty string. (Literally "" β€” it’s giving β€œempty string central”, and we respect it. πŸ™ˆ)

If lenp is non-NULL, the length of the string (on success) or a negative error-code (on failure) will be stored in the integer pointer pointed to by lenp. πŸ’…

✨ RETURN ✨

A pointer to the string at the given index in the string list, or NULL on failure. 😭 On success the length of the string will be stored in the memory location pointed to by the lenp parameter, if non-NULL. On failure one of the following negative error codes will be returned in the lenp parameter (if non-NULL):

  • -FDT_ERR_BADVALUE β€” if the property value is not NUL-terminated
  • -FDT_ERR_NOTFOUND β€” if the property does not exist
bestie, watch that lenp β€” it is your error-reporting bestie when things go sideways. 🫢

🌈 SEE ALSO 🌈

Kernel file ./scripts/dtc/libfdt/libfdt.h β€” that’s the source-file bestie β€” plus this whole (9) friend group, all listed exactly (iykyk):

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_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)


and that’s the whole page, bestie πŸ’– this one came from ./scripts/dtc/libfdt, dated October 2026 β€” mwah πŸ’‹πŸ«Ά

πŸ“¦ where this page comes from