lpfc_bg_err_opcodes(9)
π
lpfc_bg_err_opcodes β from the Kernel API Manual, bestie π
okay so real talk, this is a page straight out of the Kernel API Manual, and it's lowkey one of those tiny functions that does one extremely specific thing and does it with main character energy. no cap. β¨
β¨ NAME β¨
lpfc_bg_err_opcodes β figure out (reDetermine, if we're being fancy πΈ) the BlockGuard opcodes that go with the specified SCSI command, specifically so you can force a guard tag error. yes bestie, on purpose. it's giving chaos on purpose π
π¦ SYNOPSIS π¦
int lpfc_bg_err_opcodes (struct lpfc_hba *phba , struct scsi_cmnd *sc ,
uint8_t *txop , uint8_t *rxop );
look at that signature. four args, returns an int, very demure, very mindful π«Ά
πΈ ARGUMENTS πΈ
phbaβ The Hba for which this call is being executed. your whole adapter, the icon πscβ The SCSI command to examine. this is the one we're snooping on πtxopβ (out) BlockGuard operation for transmitted data. an output param, so it gets written to, not read from π€rxopβ (out) BlockGuard operation for received data. same deal, the other direction π₯
bothtxopandrxopare (out) params, meaning the function fills them in for you. don't come in with your own values and expect them to survive, that's not the vibe π
β RETURN β
zero on success; non-zero if tx and/or rx op cannot be determined. so like, 0 = slay, anything else = we couldn't figure out the opcodes, no biggie π
π SEE ALSO π
the kernel file in question, first of all:
Kernel file ./drivers/scsi/lpfc/lpfc_scsi.c
and then the entire extended friend group, fr fr, absolutely iconic lineup, every single one of them:
lpfc_sli4_set_rsp_sgl_last(9)lpfc_rampdown_queue_depth(9)lpfc_ramp_down_queue_handler(9)lpfc_scsi_dev_block(9)lpfc_new_scsi_buf_s3(9)lpfc_sli4_vport_delete_fcp_xri_aborted(9)lpfc_sli4_io_xri_aborted(9)lpfc_get_scsi_buf_s3(9)lpfc_get_scsi_buf_s4(9)lpfc_get_scsi_buf(9)lpfc_release_scsi_buf_s3(9)lpfc_release_scsi_buf_s4(9)lpfc_release_scsi_buf(9)lpfc_fcpcmd_to_iocb(9)lpfc_scsi_prep_dma_buf_s3(9)lpfc_bg_err_inject(9)lpfc_sc_to_bg_opcodes(9)lpfc_bg_setup_bpl(9)lpfc_bg_setup_bpl_prot(9)lpfc_bg_setup_sgl(9)lpfc_bg_setup_sgl_prot(9)lpfc_prot_group_type(9)lpfc_bg_scsi_adjust_dl(9)lpfc_bg_scsi_prep_dma_buf_s3(9)lpfc_scsi_prep_dma_buf_s4(9)lpfc_bg_scsi_prep_dma_buf_s4(9)lpfc_scsi_prep_dma_buf(9)lpfc_bg_scsi_prep_dma_buf(9)lpfc_scsi_prep_cmnd_buf(9)lpfc_send_scsi_error_event(9)lpfc_scsi_unprep_dma_buf(9)lpfc_unblock_requests(9)lpfc_block_requests(9)lpfc_update_cmf_cmpl(9)lpfc_update_cmf_cmd(9)lpfc_handle_fcp_err(9)lpfc_fcp_io_cmd_wqe_cmpl(9)lpfc_scsi_cmd_iocb_cmpl(9)lpfc_scsi_prep_cmnd_buf_s3(9)lpfc_scsi_prep_cmnd_buf_s4(9)lpfc_scsi_prep_cmnd(9)lpfc_scsi_prep_task_mgmt_cmd_s3(9)lpfc_scsi_prep_task_mgmt_cmd_s4(9)lpfc_scsi_api_table_setup(9)lpfc_tskmgmt_def_cmpl(9)lpfc_check_pci_resettable(9)lpfc_info(9)lpfc_poll_rearm_timer(9)lpfc_poll_start_timer(9)lpfc_poll_timeout(9)lpfc_queuecommand(9)lpfc_abort_handler(9)lpfc_check_fcp_rsp(9)lpfc_send_taskmgmt(9)lpfc_chk_tgt_mapped(9)lpfc_reset_flush_io_context(9)lpfc_device_reset_handler(9)lpfc_target_reset_handler(9)lpfc_host_reset_handler(9)lpfc_sdev_init(9)lpfc_sdev_configure(9)lpfc_sdev_destroy(9)lpfc_create_device_data(9)lpfc_delete_device_data(9)__lpfc_get_device_data(9)lpfc_find_next_oas_lun(9)lpfc_enable_oas_lun(9)lpfc_disable_oas_lun(9)
like, sixty-eight cross-references? the way this page is basically a group chat invite list ππ
okay and finally, the sign-off, because every queen has a credits roll π
this one lives under ./drivers/scsi/lpfc, dated October 2026, and yes, it answers to the name lpfc_bg_err_opcodes(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