qla29xx_buil..._crc_2_iocbs(9)
π qla29xx_build_scsi_crc_2_iocbs(9) β Kernel API Manual β¨
okay so bestie, this is a page from the Kernel API Manual, and the function we're stanning today is qla29xx_build_scsi_crc_2_iocbs. She lives in the kernel, she builds IOCBs, and she's about to make your whole extended-ring situation make sense. let's go π
πΈ NAME πΈ
qla29xx_build_scsi_crc_2_iocbs β builds an IOCB command, specifically the kind that utilizes Command Type CRC_2 IOCB types on the 29xx extended ring. no cap, that's literally her whole job π
π¦ SYNOPSIS π¦
int qla29xx_build_scsi_crc_2_iocbs (srb_t *sp , struct
cmd_type_crc_2_ext *cmd_pkt , uint16_t tot_dsds , uint16_t tot_prot_dsds
, uint16_t fw_prot_opts );
she returns an int, and she takes five (5) whole arguments. yes, five. we'll get to all of them, don't worry π«Ά
β¨ ARGUMENTS β¨
spβ the SRB command that needs processing. this is the main character of the operation, honestly πcmd_pktβ the Command type CRC_2 extended IOCB. yup, it's astruct cmd_type_crc_2_ext *and it's doing exactly what it says on the tin.tot_dsdsβ total number of segments to transfer. the whole headcount,uint16_tstyle.tot_prot_dsdsβ total number of segments with protection information. so like, the segments that brought their protection info to the party π‘οΈfw_prot_optsβ protection options that get passed to the firmware. firmware's getting the tea, fr fr β
π DESCRIPTION π
Returns 0 if successful, 1 otherwise.
that's it. that's the description. she's direct, she's efficient, she ate and left no crumbs πβ¨
ngl bestie, always check that return value β0is the slay outcome,1means something did not go the way we wanted π
π₯ SEE ALSO π₯
the whole squad, in no particular order but also in exactly this order:
- Kernel file
./drivers/scsi/qla2xxx/qla_iocb.cβ that's the home address, go visit π qla2x00_get_cmd_direction(9)qla2x00_calc_iocbs_32(9)qla2x00_calc_iocbs_64(9)qla2x00_prep_cont_type0_iocb(9)qla2x00_prep_cont_type1_iocb(9)qla2x00_build_scsi_iocbs_64(9)qla2x00_start_scsi(9)qla2x00_start_iocbs(9)__qla2x00_marker(9)β yes she starts with a double underscore, she's built different π«‘qla24xx_build_scsi_iocbs(9)qla24xx_build_scsi_crc_2_iocbs(9)qla24xx_start_scsi(9)qla24xx_dif_start_scsi(9)qla2xxx_start_scsi_mq(9)qla2xxx_dif_start_scsi_mq(9)qla_start_scsi_type6(9)qla2900_prep_cont_type1_iocb(9)qla29xx_build_scsi_type_6_iocbs(9)qla29xx_build_scsi_iocbs(9)qla29xx_copy_dif_iocb_data(9)
that's twenty (20) related functions, and yes, reading them all is the vibe check you didn't know you needed ππ
okay that's the whole page!! written down, nothing skipped, all facts intact, zero crumbs left π
kisses!! she's documented from ./drivers/scsi/qla2xxx, dated October 2026, and the manual name is qla29xx_buil..._crc_2_iocbs(9) β go forth and build those CRC_2 IOCBs, bestie, 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