nand_op_parser_match_pat(9)
π nand_op_parser_match_pat(9) β Kernel API Manual, but make it make sense
okay so bestie, welcome to the glow-up of nand_op_parser_match_pat(9) from the Kernel API Manual. yes, that's the manual name, we're folding it in like a cute lil name tag π grab a strawberry drink and let's get into it, because this one is lowkey iconic.
β¨ NAME β¨
nand_op_parser_match_pat β checks if a pattern matches the instructions still chilling in the parser context π
πΈ SYNOPSIS πΈ
bool nand_op_parser_match_pat (const struct nand_op_parser_pattern *pat
, struct nand_op_parser_ctx *ctx );
like, it returns a bool, take it or leave it π
π¦ ARGUMENTS π¦
patβ the pattern to test π§ this is the vibe you're checking against.ctxβ the parser context structure to match with the patternpatβ¨ this is the situation on the ground.
π DESCRIPTION π
so what it does: it checks if pat matches the set β or a sub-set β of instructions remaining in ctx. the way that it just looks at what's left in the context and goes "does this pattern fit? yes or no" π«Ά
it returns true if that's the case, and false otherwise. simple. slay.
and here's the main character moment: when true is returned, ctx->subop is updated with the set of instructions to be passed to the controller driver π₯ that's the whole point, bestie β the match isn't just gossip, it actually writes the subop so the driver knows what to do. no cap.
π SEE ALSO π
okay this list is long β like genuinely a whole friend group β but we don't skip anyone in this house. here's everyone, plus the kernel file they live in: ./drivers/mtd/nand/raw/nand_base.c π
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)struct nand_op_parser_ctx(9)nand_op_parser_must_split_instr(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)
ngl bestie, if you got to the bottom of that list, you're a real one π«Ά go touch some grass, then come back and read ctx->subop like the main character you are.
and that's the page, fr fr π this lil sign-off is brought to you by the ./drivers/mtd/nand/raw directory, dated October 2026, and the whole thing is filed under nand_op_parser_match_pat(9) β periodt π
π¦ 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