nand_op_par..._split_instr(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

okay so bestie, welcome to the nand_op_par..._split_instr(9) page from the Kernel API Manual πŸ’– this is all about nand_op_parser_must_split_instr β€” Checks if an instruction must be split. no cap, that's literally the whole vibe.

🌸 SYNOPSIS 🌸

bool nand_op_parser_must_split_instr (const struct
nand_op_parser_pattern_elem *pat , const struct nand_op_instr *instr ,
unsigned int *start_offset );

πŸŽ€ ARGUMENTS πŸŽ€

  • pat β€” the parser pattern element that matches instr. it's giving β€œthis is the pattern bestie we're checking against.”
  • instr β€” pointer to the instruction to check. yes, the actual instruction in question πŸ‘€
  • start_offset β€” this is an in/out parameter, bestie. If instr has already been split, then start_offset is the offset from which to start (either an address cycle or an offset in the data buffer). Conversely, if the function returns true (ie. instr must be split), this parameter is updated to point to the first data/address cycle that has not been taken care of. in/out means it comes in with info and leaves with new info β€” main character energy fr fr.

πŸ¦‹ DESCRIPTION πŸ¦‹

Some NAND controllers are limited and cannot send X address cycles with a unique operation, or cannot read/write more than Y bytes at the same time. In this case, split the instruction that does not fit in a single controller-operation into two or more chunks. it's giving β€œthis instruction is too big for one operation, so we're breaking it down.”

Returns true if the instruction must be split, false otherwise. The start_offset parameter is also updated to the offset at which the next bundle of instruction must start (if an address or a data instruction). so yeah, it tells you where the next little chunk should begin ✨

🌈 SEE ALSO 🌈

okay bestie, the whole squad is here β€” go read these too, iykyk πŸ’…

Kernel file ./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_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 page, bestie 🫢 this iconic little manual lives in ./drivers/mtd/nand/raw and is dated October 2026 β€” slay πŸ’…βœ¨

πŸ“¦ where this page comes from