lpfcdiag_loop_get_xri(9)
π lpfcdiag_loop_get_xri(9) β bestie edition πΈ
okay so this is a page from the Kernel API Manual, and the star of the show is lpfcdiag_loop_get_xri β she's the one who goes and gets the transmit and receive ids for you. literally doing the most so you don't have to π«Ά
β¨ NAME β¨
lpfcdiag_loop_get_xri β obtains the transmit and receive ids π
β¨ SYNOPSIS β¨
int lpfcdiag_loop_get_xri (struct lpfc_hba *phba , uint16_t rpi ,
uint16_t *txxri , uint16_t * rxxri );
like, look at her signature. four whole arguments. she's an icon and she knows it π
β¨ ARGUMENTS β¨
phbaβ Pointer to HBA context object. this is the main-character struct, the whole vibe of the call rides on her πrpiβ Remote port login id. auint16_t, short and sweet πtxxriβ Pointer to transmit exchange id. notice the pointer β she's gonna write into this, so keep it valid, no cap πrxxriβ Pointer to response exchabge id. (yes, the original says "exchabge" β we're respecting her spelling era π) also a pointer, also gets written into π¦
π friendly little note-taker moment:txxriandrxxriare pointers, so whatever they point at needs to actually exist. she's filling them in, not making them out of thin air.
β¨ DESCRIPTION β¨
so the whole point: this function obtains the transmit and receive ids that are required to send an unsolicited ct command with a payload. that's the mission. that's what she does π₯
and here's the cute little trick β a special lpfc FsType and CmdRsp flags are used so that the unsolicited response handler is able to process the ct command sent on the same port. same port, same handler, one big happy family π§ like, the flags are the glue bestie, iykyk β
β¨ SEE ALSO β¨
the Kernel file ./drivers/scsi/lpfc/lpfc_bsg.c β go read her, she's the vibe check for this whole area of the tree π
and then the extended friend group, all of them, in order, no one left out π:
lpfc_bsg_send_mgmt_cmd_cmp(9)lpfc_bsg_send_mgmt_cmd(9)lpfc_bsg_rport_els_cmp(9)lpfc_bsg_rport_els(9)lpfc_bsg_event_free(9)lpfc_bsg_event_ref(9)lpfc_bsg_event_unref(9)lpfc_bsg_event_new(9)diag_cmd_data_free(9)lpfc_bsg_ct_unsol_abort(9)lpfc_bsg_hba_set_event(9)lpfc_bsg_hba_get_event(9)lpfc_issue_ct_rsp_cmp(9)lpfc_issue_ct_rsp(9)lpfc_bsg_send_mgmt_rsp(9)lpfc_bsg_diag_mode_enter(9)lpfc_bsg_diag_mode_exit(9)lpfc_sli3_bsg_diag_loopback_mode(9)lpfc_sli4_bsg_set_link_diag_state(9)lpfc_sli4_bsg_set_loopback_mode(9)lpfc_sli4_diag_fcport_reg_setup(9)lpfc_sli4_bsg_diag_loopback_mode(9)lpfc_bsg_diag_loopback_mode(9)lpfc_sli4_bsg_diag_mode_end(9)lpfc_sli4_bsg_link_diag_test(9)lpfcdiag_loop_self_reg(9)lpfcdiag_loop_self_unreg(9)lpfc_bsg_dma_page_alloc(9)lpfc_bsg_dma_page_free(9)lpfc_bsg_dma_page_list_free(9)diag_cmd_data_alloc(9)lpfcdiag_sli3_loop_post_rxbufs(9)lpfc_bsg_diag_loopback_run(9)lpfc_bsg_get_dfc_rev(9)lpfc_bsg_issue_mbox_cmpl(9)lpfc_bsg_check_cmd_access(9)lpfc_bsg_mbox_ext_session_reset(9)lpfc_rd_obj_emb0_handle_job(9)lpfc_bsg_issue_mbox_ext_handle_job(9)lpfc_bsg_issue_read_mbox_ext_cmpl(9)lpfc_bsg_issue_write_mbox_ext_cmpl(9)lpfc_bsg_sli_cfg_read_cmd_ext(9)lpfc_bsg_sli_cfg_write_cmd_ext(9)lpfc_bsg_handle_sli_cfg_mbox(9)lpfc_bsg_mbox_ext_abort(9)lpfc_bsg_read_ebuf_get(9)lpfc_bsg_write_ebuf_set(9)lpfc_bsg_handle_sli_cfg_ebuf(9)lpfc_bsg_handle_sli_cfg_ext(9)lpfc_bsg_issue_mbox(9)lpfc_bsg_mbox_cmd(9)lpfc_check_fwlog_support(9)lpfc_bsg_get_ras_config(9)lpfc_bsg_set_ras_config(9)lpfc_bsg_get_ras_lwpd(9)lpfc_bsg_get_ras_fwlog(9)lpfc_bsg_hst_vendor(9)lpfc_bsg_request(9)lpfc_bsg_timeout(9)
and that's the whole page, bestie, no notes, she ate π β¨
πΈ little sign-off before you close the tab: this one lives under ./drivers/scsi/lpfc and the date on her birth certificate is October 2026. go forth and get those xris π¦π
π¦ 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