mpi3mr_build_nvme_sgl(9)
π mpi3mr_build_nvme_sgl β¨
Okay so bestie, welcome to the Kernel API Manual entry for mpi3mr_build_nvme_sgl β yes that's a mouthful, iykyk, we're getting through it together π«Ά
πΈ NAME πΈ
mpi3mr_build_nvme_sgl β the SGL constructor for the NVMe encapsulated request, no cap. It literally builds the thing. Iconic behavior.
β¨ SYNOPSIS β¨
int mpi3mr_build_nvme_sgl (struct mpi3mr_ioc *mrioc , struct
mpi3_nvme_encapsulated_request *nvme_encap_request , struct
mpi3mr_buf_map *drv_bufs , u8 bufcnt );
Four args, one int coming back at you. Slay.
π ARGUMENTS π
mriocβ your adapter instance reference, the main character of this whole situation πnvme_encap_requestβ the NVMe encapsulated MPI request; this is the vessel we're filling updrv_bufsβ the DMA address of the buffers that are gonna be placed in the sgl. Yes, the buffers go in the sgl. That's the whole vibe.bufcntβ au8, the number of DMA buffers. Count them. There'sbufcntof them π
π¦ DESCRIPTION π¦
So what this function actually does: it takes the DMA address of the buffers you handed over and places them in proper format as SGEs inside the given NVMe encapsulated request. That's it. That's the function. It formats. It places. It slays β¨
The way that it's just a formatter for SGE placement in an encapsulated request⦠lowkey obsessed with the specificity ngl.
π₯ RETURN π₯
0on success β we love a win π-1on failure β π but like, at least it told you
π SEE ALSO π
Alright bestie, buckle up, this list is long long. But every single one matters so here we go π
Kernel file ./drivers/scsi/mpi3mr/mpi3mr_app.c β go read it, it's giving source of truth π
And then the whole friend group:
mpi3mr_alloc_trace_buffer(9)mpi3mr_alloc_diag_bufs(9)mpi3mr_issue_diag_buf_post(9)mpi3mr_post_diag_bufs(9)mpi3mr_issue_diag_buf_release(9)mpi3mr_process_trigger(9)mpi3mr_global_trigger(9)mpi3mr_scsisense_trigger(9)mpi3mr_event_trigger(9)mpi3mr_reply_trigger(9)mpi3mr_get_num_trigger(9)mpi3mr_refresh_trigger(9)mpi3mr_release_diag_bufs(9)mpi3mr_set_trigger_data_in_hdb(9)mpi3mr_set_trigger_data_in_all_hdb(9)mpi3mr_hdbstatuschg_evt_th(9)mpi3mr_diag_buffer_for_type(9)mpi3mr_bsg_pel_abort(9)mpi3mr_bsg_verify_adapter(9)mpi3mr_bsg_refresh_hdb_triggers(9)mpi3mr_bsg_upload_hdb(9)mpi3mr_bsg_repost_hdb(9)mpi3mr_bsg_query_hdb(9)mpi3mr_enable_logdata(9)mpi3mr_get_logdata(9)mpi3mr_bsg_pel_enable(9)mpi3mr_get_all_tgt_info(9)mpi3mr_get_change_count(9)mpi3mr_bsg_adp_reset(9)mpi3mr_bsg_populate_adpinfo(9)mpi3mr_bsg_process_drv_cmds(9)mpi3mr_total_num_ioctl_sges(9)mpi3mr_bsg_build_sgl(9)mpi3mr_get_nvme_data_fmt(9)mpi3mr_build_nvme_prp(9)mpi3mr_map_data_buffer_dma(9)mpi3mr_bsg_process_mpt_cmds(9)mpi3mr_app_save_logdata_th(9)mpi3mr_bsg_request(9)mpi3mr_bsg_exit(9)mpi3mr_bsg_node_release(9)mpi3mr_bsg_init(9)version_fw_show(9)fw_queue_depth_show(9)op_req_q_count_show(9)reply_queue_count_show(9)reply_qfull_count_show(9)logging_level_show(9)logging_level_store(9)adp_state_show(9)fwfault_count_show(9)sas_address_show(9)device_handle_show(9)persistent_id_show(9)sas_ncq_prio_supported_show(9)sas_ncq_prio_enable_show(9)
Fifty-seven whole references, bestie. Fifty-seven. We read them all. Periodt π
and that's the page!! sign-off time π§ this one came from ./drivers/scsi/mpi3mr and it's dated October 2026 β put that in your calendar and your heart ππΈπ¦
π¦ 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