nanddev_pos_next_eraseblock(9)
πΈ nanddev_pos_next_eraseblock β the kernel API manual page, but make it make sense π
okay bestie, so this is nanddev_pos_next_eraseblock(9) from the Kernel API Manual, and it's genuinely one of the shorter ones β a little one-job function that lowkey carries a whole iteration loop on its back. let's get into it π«Ά
β¨ NAME β¨
nanddev_pos_next_eraseblock β move a position to the next eraseblock. that's it. that's the whole job. slay π
β¨ SYNOPSIS β¨
void nanddev_pos_next_eraseblock (struct nand_device *nand , struct
nand_pos *pos );
so it returns void (nothing comes back out, she just does the thing in place π) and she takes exactly two arguments. no cap.
β¨ ARGUMENTS β¨
nandβ the NAND device. yeah, the actual device struct, the main character of this whole file πposβ the position to update. this is the one getting scooted forward, we're editing her in place, no copy returned, iykyk π
β¨ DESCRIPTION β¨
okay so here's the vibe: this function updates pos so it points to the start of the next eraseblock. that's the entire personality.
and the reason you'd ever want that? it's useful when you want to iterate over all eraseblocks of a NAND device β like, walk the whole thing, block by block, no skipping, no drama. it's giving "for loop but classy" β¨π¦
heads up bestie: it's avoidfunction and it mutatesposdirectly, so there's no return value to check. the update happens on the position you handed in, periodt π
β¨ SEE ALSO β¨
this is the part where the manual just dumps the entire friend group at you π β all from the kernel file ./include/linux/mtd/nand.h:
struct nand_memory_organization(9)struct nand_row_converter(9)struct nand_pos(9)enum nand_page_io_req_type(9)struct nand_page_io_req(9)enum nand_ecc_engine_type(9)enum nand_ecc_placement(9)enum nand_ecc_algo(9)struct nand_ecc_props(9)struct nand_bbt(9)struct nand_ops(9)struct nand_ecc_context(9)struct nand_ecc_engine_ops(9)enum nand_ecc_engine_integration(9)struct nand_ecc_engine(9)struct nand_ecc_req_tweak_ctx(9)struct nand_ecc(9)struct nand_device(9)struct nand_io_iter(9)mtd_to_nanddev(9)nanddev_to_mtd(9)nanddev_page_size(9)nanddev_per_page_oobsize(9)nanddev_pages_per_eraseblock(9)nanddev_pages_per_target(9)nanddev_eraseblocks_per_lun(9)nanddev_eraseblocks_per_target(9)nanddev_target_size(9)nanddev_neraseblocks(9)nanddev_size(9)nanddev_get_memorg(9)nanddev_get_ecc_conf(9)nanddev_get_ecc_nsteps(9)nanddev_get_ecc_bytes_per_step(9)nanddev_get_ecc_requirements(9)nanddev_set_ecc_requirements(9)nanddev_register(9)nanddev_unregister(9)nanddev_set_of_node(9)nanddev_get_of_node(9)nanddev_offs_to_pos(9)nanddev_pos_cmp(9)nanddev_pos_to_offs(9)nanddev_pos_to_row(9)nanddev_pos_next_target(9)nanddev_pos_next_lun(9)nanddev_pos_next_page(9)nanddev_bbt_pos_to_entry(9)nanddev_bbt_is_initialized(9)
like I said. the whole group chat. scroll responsibly π
and that's the page!! she lives in./include/linux/mtd, dated October 2026, and this wasnanddev_pos_next_eraseblock(9)from the Kernel API Manual β mwah, go iterate some eraseblocks, bestie πβ¨π
π¦ 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