fdt_getprop_by_offset(9)
β¨ NAME β¨
fdt_getprop_by_offset β grab the value of a property that lives at a specific offset π
okay so picture this: you've got a device tree blob, you've got an offset, and you want the property sitting right there. That's the whole gig. No cap.
π SYNOPSIS π
const void * fdt_getprop_by_offset (const void *fdt , int offset , const char **namep , int *lenp );
πΈ ARGUMENTS πΈ
fdtβ pointer to the device tree blob π¦offsetβ the offset of the property you wanna read, bestienamepβ pointer to a string variable (heads up: it will be overwritten βοΈ) orNULLlenpβ pointer to an integer variable (also getting overwritten, sorry not sorry) orNULL
π DESCRIPTION π
So fdt_getprop_by_offset retrieves a pointer to the value of the property located at structure block offset 'offset'. And the way that this is a pointer within the device blob itself, not a copy of the value β like, you're getting a VIP pass straight into the blob, not a photocopy π«Ά.
If lenp is non-NULL, the length of the property value is also returned, in the integer pointed to by lenp. Iconic.
If namep is non-NULL, the property's name will also be returned in the char * pointed to by namep β and again, this is a pointer to within the device tree's string block, not a new copy of the name. Zero duplication, we love an efficient queen π.
π₯ RETURN π₯
- pointer to the property's value
- if
lenpis non-NULL,*lenpcontains the length of the property value (>=0) - if
namepis non-NULL,*namepcontains a pointer to the property name
And then there's the sad path π β NULL, on error:
- if
lenpis non-NULL,*lenpcontains an error code (<0):-FDT_ERR_BADOFFSETβ nodeoffset did not point toFDT_PROPtag π-FDT_ERR_BADMAGIC,-FDT_ERR_BADVERSION,-FDT_ERR_BADSTATE,-FDT_ERR_BADSTRUCTURE,-FDT_ERR_TRUNCATEDβ standard meanings
fr fr, always check that return value. ANULLwith a negative*lenpis the function telling you something went wrong, and ignoring it is not the vibe π.
π¦ SEE ALSO π¦
Kernel file ./scripts/dtc/libfdt/libfdt.h β and honestly, the whole friend group showed up to this one:
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_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)
That's the whole group chat, bestie β go say hi π.
and that's the page!! π brought to you by ./scripts/dtc/libfdt, dated October 2026, starring fdt_getprop_by_offset(9) as the main character β¨ iykyk π
π¦ 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