fdt_node_check_compatible(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, we're in the Kernel API Manual and this page is fdt_node_check_compatible(9) β€” it's literally the vibe check for a node's compatible property, and I'm obsessed. 🫢

πŸ¦‹ NAME πŸ¦‹

fdt_node_check_compatible β€” check a node's compatible property. πŸ’…

✨ SYNOPSIS ✨

int fdt_node_check_compatible (const void *fdt , int nodeoffset , const char *compatible );

πŸŽ€ ARGUMENTS πŸŽ€

  • fdt β€” pointer to the device tree blob.
  • nodeoffset β€” offset of a tree node.
  • compatible β€” string to match against.

πŸ’… DESCRIPTION πŸ’…

so here's the tea, bestie: fdt_node_check_compatible returns 0 if the given node contains a compatible property with the given string as one of its elements. it returns non-zero otherwise, or on error. that's it β€” it's giving "is this string in the compatible list or not" and nothing extra. ✨

πŸ”₯ RETURN πŸ”₯

  • 0 β€” if the node has a 'compatible' property listing the given string.
  • 1 β€” if the node has a 'compatible' property, but it does not list the given string.
  • -FDT_ERR_NOTFOUND β€” if the given node has no 'compatible' property.
  • -FDT_ERR_BADOFFSET β€” if nodeoffset does not refer to a BEGIN_NODE tag.
  • -FDT_ERR_BADMAGIC, -FDT_ERR_BADVERSION, -FDT_ERR_BADSTATE, -FDT_ERR_BADSTRUCTURE β€” standard meanings.

🌈 SEE ALSO 🌈

Kernel file: ./scripts/dtc/libfdt/libfdt.h β€” and the whole cross-reference squad is here, no skips, no cap:

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

mwah πŸ’‹ β€” source/version is ./scripts/dtc/libfdt, date is October 2026, and the page is fdt_node_check_compatible(9). periodt. πŸ‘‘

πŸ“¦ where this page comes from