fdt_check_header(9)
π fdt_check_header β sanity check a device tree header
Okay bestie, welcome to the Kernel API Manual page for fdt_check_header(9) β yes that's a section 9 manpage, yes we're doing kernel dev now, and yes you're gonna slay it. π¦
β¨ NAME β¨
fdt_check_header β the vibe check for a device tree header. Like, it literally sanity checks it. π
πΈ SYNOPSIS πΈ
int fdt_check_header (const void *fdt );
π ARGUMENTS π
fdtβ a pointer to some data that might be a flattened device tree. Emphasis on might, bestie. We don't know yet. That's the whole point of this function. π
β DESCRIPTION β
So here's the tea: fdt_check_header looks at the buffer you handed it and checks that it contains what appears to be a flattened device tree β and that the header inside holds valid information (to the extent that anyone can even tell that from the header alone). π₯
The way it's giving "first impressions only" β it's not doing a full deep dive, it's just checking the header. That's the extent. That's what can be determined from the header alone. No cap. π
π RETURN π
0β slay! The buffer appears to contain a valid device tree. β-FDT_ERR_BADMAGIC,-FDT_ERR_BADVERSION,-FDT_ERR_BADSTATE,-FDT_ERR_TRUNCATEDβ the standard meanings, as above. π
π§ SEE ALSO π§
Oh you thought that was it? Bestie, the family tree is huge. Gather round. π
Kernel file ./scripts/dtc/libfdt/libfdt.h, plus:
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_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(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)
I told you it was a lot. πβ¨
Lowkey reminder bestie: this only checks the header, not the whole tree. If you want the full deep scan, that's a different function (fdt_check_full(9), it's literally right there in the list π).
That's the whole page, mwah π β brought to you by ./scripts/dtc/libfdt, dated October 2026. Go forth and validate those headers, icon. π«Άπ
π¦ 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