STRUCT NAND_OP_PARSER_PATTERN_ELEM(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct nand_op_parser_pattern_elem(9) β€” from the Kernel API Manual, bestie

okay so picture this: you're deep in the ./include/linux/mtd/rawnand.h universe and you meet this little guy β€” struct nand_op_parser_pattern_elem, aka one single element of a pattern ✨ that's literally the NAME, no cap.

She's a tiny struct but she's main character energy in the NAND op parser, so let's get into it 🫢


✨ SYNOPSIS ✨

like, here's her whole gorgeous shape, verbatim, don't touch:

struct nand_op_parser_pattern_elem {
    enum nand_op_instr_type type;
    bool optional;
    union {
      struct nand_op_parser_addr_constraints addr;
      struct nand_op_parser_data_constraints data;
    } ctx;
 };

πŸŽ€ MEMBERS πŸŽ€

  • type β€” the instruction type πŸ’« (the original says "instructuction type", and honestly? iconic typo, we keep the meaning: it's the type of instruction).
  • optional β€” a bool that tells you whether this element of the pattern is optional or mandatory. choose your own adventure vibes 🌸
  • ctx β€” the union holding either the address constraint or the data constraint. she contains multitudes πŸ’œ
  • ctx.addr β€” the address constraint, which is about the number of cycles ⏱️
  • ctx.data β€” the data constraint, which is about the data length πŸ“
ngl the union is doing a lot of work here β€” addr and data share the same ctx spot, so it's one or the other, not both. that's just what a union is, bestie, no drama πŸ’€

πŸ’– SEE ALSO πŸ’–

okay this is the friendship circle and it is LONG, so buckle up, we're listing every single one fr fr:

  • Kernel file ./include/linux/mtd/rawnand.h
  • struct nand_parameters(9)
  • struct nand_id(9)
  • struct nand_ecc_step_info(9)
  • struct nand_ecc_caps(9)
  • struct nand_ecc_ctrl(9)
  • struct nand_sdr_timings(9)
  • struct nand_nvddr_timings(9)
  • enum nand_interface_type(9)
  • struct nand_interface_config(9)
  • nand_interface_is_sdr(9)
  • nand_interface_is_nvddr(9)
  • nand_get_sdr_timings(9)
  • nand_get_nvddr_timings(9)
  • struct nand_op_cmd_instr(9)
  • struct nand_op_addr_instr(9)
  • struct nand_op_data_instr(9)
  • struct nand_op_waitrdy_instr(9)
  • enum nand_op_instr_type(9)
  • struct nand_op_instr(9)
  • struct nand_subop(9)
  • struct nand_op_parser_addr_constraints(9)
  • struct nand_op_parser_data_constraints(9)
  • struct nand_op_parser_pattern(9)
  • struct nand_op_parser(9)
  • struct nand_operation(9)
  • struct nand_controller_ops(9)
  • struct nand_controller(9)
  • struct nand_legacy(9)
  • struct nand_chip_ops(9)
  • struct nand_manufacturer(9)
  • struct nand_secure_region(9)
  • struct nand_chip(9)
  • nand_get_interface_config(9)
  • struct nand_flash_dev(9)
  • nand_opcode_8bits(9)
  • nand_get_data_buf(9)

go read them all, i'll wait πŸ’…


and that's the whole vibe check, bestie πŸ¦‹ this page came straight out of the ./include/linux/mtd corner of the kernel, dated October 2026, and she answers to the name struct nand_...pattern_elem(9). mwah, slay, periodt πŸ’–πŸŽ€

πŸ“¦ where this page comes from