mpi3mr_bsg_build_sgl(9)
π mpi3mr_bsg_build_sgl β SGL construction for MPI commands β¨
okay bestie, welcome to the Kernel API Manual page for mpi3mr_bsg_build_sgl, which β say it with me β is all about SGL construction for MPI commands. no cap, that's literally the whole name. π
β¨ SYNOPSIS β¨
int mpi3mr_bsg_build_sgl (struct mpi3mr_ioc *mrioc , u8 *mpi_req , u32
sgl_offset , struct mpi3mr_buf_map *drv_bufs , u8 bufcnt , u8 is_rmc ,
u8 is_rmr , u8 num_datasges );
like yes, that's a whole lot of arguments. we're gonna go through every single one, don't worry. π«Ά
πΈ ARGUMENTS πΈ
mriocβ your adapter instance reference. the main character of the hardware world, honestly. πmpi_reqβ the MPI request. this is where the SGEs are getting placed, periodt.sgl_offsetβ the offset where the SGL starts inside the MPI request. like a little bookmark. πdrv_bufsβ DMA address of the buffers that are gonna get placed in the SGL. the whole reason we're here. β¨bufcntβ number of DMA buffers. count 'em. π§is_rmcβ does the buffer list have a management command buffer? yes or no, queen.is_rmrβ does the buffer list have a management response buffer? again β yes or no. πnum_datasgesβ number of data buffers in the list. the data ones specifically, iykyk. π¦
π DESCRIPTION π
okay so here's the vibe: this function takes the DMA address of the given buffers and places them into the given MPI request β in the proper format, as SGEs. that's it. that's the function. it's giving "glorified formatter" and honestly we respect it. π
like, somebody's gotta do it, and it ate. π₯
β RETURN β
0on success π-1on failure π
that's the whole return situation. very demure, very binary. π
π SEE ALSO π
bestie, buckle up, this list is long. but every single one of these is iconic in its own right, so here we go:
Kernel file ./drivers/scsi/mpi3mr/mpi3mr_app.c
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_get_nvme_data_fmt(9)mpi3mr_build_nvme_sgl(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)
okay that was a lot but we got through it together π«Άβ¨
ngl, if you're reading this at 3am in a kernel tree, hydrate, bestie. π
and that's the page!! this lil masterpiece lives over in ./drivers/scsi/mpi3mr, dated October 2026 β mwah, xoxo, go build some SGLs π
ππ¦
π¦ 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