mpi3mr_total_num_ioctl_sges(9)
π mpi3mr_total_num_ioctl_sges(9) β the Kernel API Manual, bestie edition π
okay so this is a page from the Kernel API Manual (section 9, kernel developer land, not your "how do I use ls" zone β¨) and it's all about mpi3mr_total_num_ioctl_sges. yes that's a mouthful, we love her anyway π«Ά
β¨ NAME β¨
mpi3mr_total_num_ioctl_sges β literally just counts how many SGEs you need π
no cap, that's the whole job.
πΈ SYNOPSIS πΈ
u16 mpi3mr_total_num_ioctl_sges (struct mpi3mr_buf_map *drv_bufs , u8
bufcnt );
that's the signature, copy it exactly, do not freestyle it π she returns a u16, she takes two args, that's the vibe.
π¦ ARGUMENTS π¦
drv_bufsβ the DMA address of the buffers that are gonna get placed in the sgl. like, the actual spot in memory where your buffer descriptors live π§bufcntβ how many DMA buffers you're working with. the count. the number.u8sized so don't go feral with it β
π DESCRIPTION π
so here's the tea β β this function returns the total number of data SGEs required for the list of data buffer descriptors you hand it.
and the details matter, bestie, so let's be precise:
- it includes zero length SGEs β
- it excludes the management request and response buffer β
that's it. that's the whole function. she's a counter, she's iconic, she minds her business π
lowkey the important bit is that "includes zero length SGEs" and "excludes the management request and response buffer" β if you get those two backwards your sgl math is gonna be a whole mess π
π₯ RETURN π₯
returns the number of SGE elements needed β as a u16, so plan accordingly π
π SEE ALSO π
the kernel file where all this lives:
Kernel file ./drivers/scsi/mpi3mr/mpi3mr_app.c
and the whole extended friend group (yes, all of them, don't skip, we support the whole cast π):
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_bsg_build_sgl(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)
and that's the page!! π« quick sign-off so nobody comes for me: this one lives under ./drivers/scsi/mpi3mr and the date on it is October 2026 β go read the source, it's giving main character energy, 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