STRUCT NAND_OP_PARSER_CTX(9)
π struct nand_op_parser_ctx(9) π
okay bestie, welcome to the Kernel API Manual β yes we're reading kernel docs for fun now, that's the energy we're on π
πΈ NAME πΈ
struct nand_op_parser_ctx β literally just the context the parser uses, no cap π«Ά
β¨ SYNOPSIS β¨
struct nand_op_parser_ctx {
const struct nand_op_instr *instrs;
unsigned int ninstrs;
struct nand_subop subop;
};
look at that little struct, so tidy, so iconic π
π Members π
instrsβ the array of all the instructions that gotta be addressed, every single one, no skipping πninstrsβ the length of theinstrsarray. like, how many are in there. the count. the vibes check π¦subopβ the sub-operation that gets passed along to the NAND controller π
π¦ Description π¦
so the core uses this structure to split NAND operations into sub-operations that the NAND controller can actually handle. that's it, that's the whole thing β chef's kiss, it ate π₯
β SEE ALSO β
Kernel file ./drivers/mtd/nand/raw/nand_base.c β and bestie, there's a whole friend group here, I'm not leaving anybody out π:
nand_extract_bits(9),nand_select_target(9),nand_deselect_target(9),nand_release_device(9)nand_bbm_get_next_page(9),nand_block_bad(9),nand_region_is_secured(9)nand_get_device(9),nand_check_wp(9)nand_fill_oob(9),nand_do_write_oob(9)nand_default_block_markbad(9),nand_markbad_bbm(9),nand_block_markbad_lowlevel(9),nand_block_isreserved(9),nand_block_checkbad(9)nand_soft_waitrdy(9),nand_gpio_waitrdy(9),panic_nand_wait(9)nand_reset_interface(9),nand_setup_interface(9)nand_choose_best_sdr_timings(9),nand_choose_best_nvddr_timings(9),nand_choose_best_timings(9),nand_choose_interface_config(9)nand_fill_column_cycles(9)nand_read_page_op(9),nand_read_param_page_op(9),nand_change_read_column_op(9),nand_read_oob_op(9)nand_prog_page_begin_op(9),nand_prog_page_end_op(9),nand_prog_page_op(9),nand_change_write_column_op(9)nand_readid_op(9),nand_status_op(9),nand_exit_status_op(9),nand_erase_op(9)nand_set_features_op(9),nand_get_features_op(9),nand_reset_op(9)nand_read_data_op(9),nand_write_data_op(9)nand_op_parser_must_split_instr(9),nand_op_parser_match_pat(9),nand_op_parser_exec_op(9)nand_subop_get_addr_start_off(9),nand_subop_get_num_addr_cyc(9),nand_subop_get_data_start_off(9),nand_subop_get_data_len(9)nand_reset(9),nand_get_features(9),nand_set_features(9)nand_read_page_raw_notsupp(9),nand_read_page_raw(9),nand_monolithic_read_page_raw(9),nand_read_page_raw_syndrome(9),nand_read_page_swecc(9),nand_read_subpage(9),nand_read_page_hwecc(9),nand_read_page_hwecc_oob_first(9),nand_read_page_syndrome(9),nand_transfer_oob(9),nand_setup_read_retry(9),nand_do_read_ops(9)nand_read_oob_std(9),nand_read_oob_syndrome(9),nand_write_oob_std(9),nand_write_oob_syndrome(9),nand_do_read_oob(9),nand_read_oob(9)nand_write_page_raw_notsupp(9),nand_write_page_raw(9),nand_monolithic_write_page_raw(9),nand_write_page_raw_syndrome(9),nand_write_page_swecc(9),nand_write_page_hwecc(9),nand_write_subpage_hwecc(9),nand_write_page_syndrome(9),nand_write_page(9),nand_do_write_ops(9),panic_nand_write(9),nand_write_oob(9)nand_erase(9),nand_erase_nand(9)nand_sync(9),nand_block_isbad(9),nand_block_markbad(9)nand_suspend(9),nand_resume(9),nand_shutdown(9),nand_lock(9),nand_unlock(9)rawnand_dt_parse_gpio_cs(9)nand_scan_ident(9),nand_check_ecc_caps(9),nand_match_ecc_req(9),nand_maximize_ecc(9),nand_ecc_choose_conf(9),nand_scan_tail(9),nand_scan_with_ids(9),nand_cleanup(9)
and that's the whole page, bestie, you understood it, I'm so proud π₯Ήπ
sign-off time π this one came from ./drivers/mtd/nand/raw, dated October 2026, out of the Kernel API Manual, and it's titled struct nand_op_parser_ctx(9) β mwah, 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