fdt_add_mem_rsv(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ fdt_add_mem_rsv πŸ’–

okay so bestie, this is a page from the Kernel API Manual (yes, the fdt_add_mem_rsv(9) one) and it's honestly such a little icon. it does exactly one job and it does it slayfully: it adds ONE memory reserve map entry. that's it. that's the whole vibe. πŸŽ€


🌸 NAME 🌸

fdt_add_mem_rsv β€” add one memory reserve map entry ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

int fdt_add_mem_rsv (void *fdt , uint64_t address , uint64_t size );

πŸ’œ ARGUMENTS πŸ’œ

  • fdt β€” pointer to the device tree blob 🫢 (the whole thing, the main character)
  • address β€” 64-bit start address of the reserve map entry πŸ“
  • size β€” 64-bit size of the reserved region πŸ“

🌈 DESCRIPTION 🌈

so what it does is: adds a reserve map entry to the given blob, reserving a region at address of length size. literally just "hey, this chunk? hands off." πŸ’…

and here's the tea β€” this function will insert data into the reserve map, which means it will change the indexes of some entries in the table. like, not a drill, the indexes move. ngl that's the part you gotta remember πŸ‘€


πŸ”₯ RETURN πŸ”₯

  • 0 β€” on success, we love to see it πŸ‘‘
  • -FDT_ERR_NOSPACE β€” there is insufficient free space in the blob to contain the new reservation entry 😭
  • -FDT_ERR_BADMAGIC
  • -FDT_ERR_BADVERSION
  • -FDT_ERR_BADSTATE
  • -FDT_ERR_BADSTRUCTURE
  • -FDT_ERR_BADLAYOUT
  • -FDT_ERR_TRUNCATED β€” these all have standard meanings, iykyk 🧚

⭐ SEE ALSO ⭐

fr fr, the whole friend group is here β€” Kernel file ./scripts/dtc/libfdt/libfdt.h and all of these besties:

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_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_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 page bestie, go reserve some memory and be iconic about it πŸ’…βœ¨

mwah πŸ’‹ β€” this lil page lives in ./scripts/dtc/libfdt, dated October 2026, and it's filed under fdt_add_mem_rsv(9). periodt. πŸ“
πŸ“¦ where this page comes from