mpi3mr_build_nvme_prp(9)
π mpi3mr_build_nvme_prp β the PRP constructor for NVME encapsulated request β¨
Okay bestie, so this page is from the Kernel API Manual, and it's literally about mpi3mr_build_nvme_prp. Yes that's a mouthful, no I will not be pronouncing it out loud. Anyway, let's get into it π«Ά
πΈ SYNOPSIS πΈ
int mpi3mr_build_nvme_prp (struct mpi3mr_ioc *mrioc , struct
mpi3_nvme_encapsulated_request *nvme_encap_request , struct
mpi3mr_buf_map *drv_bufs , u8 bufcnt );
That's the whole vibe β returns an int, takes four things. Four! We love a tidy signature π
π ARGUMENTS π
mriocβ your adapter instance reference, aka the whole reason we're here πnvme_encap_requestβ the NVMe encapsulated MPI request itself, the main character of this function ngldrv_bufsβ the DMA address of the buffers that are gonna get placed in the SGLbufcntβ how many DMA buffers we're talking, it's au8so keep it cute and small π
π¦ DESCRIPTION π¦
So like, what does it actually do? It takes the DMA address of the given buffers and places them in proper format as PRP entries inside the given NVMe encapsulated request. That's it, that's the whole job. Not me being obsessed with a formatting function but honestly? Iconic. β¨
β RETURN β
0on success π-1on failure π
No in-betweens, no "well actually", just two options and honestly that's refreshing.
π SEE ALSO π
Alright bestie, buckle up, this list is LONG and I'm not skipping a single one β every single cross-reference is coming with us π
The kernel file lives at ./drivers/scsi/mpi3mr/mpi3mr_app.c, and then we've got:
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_sgl(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)
Like I said. Every. Single. One. π«‘
Word of advice bestie: PRP entries are not a vibe you wanna freestyle. Use the function, get your 0, move on. π
Okay that's the page! Signing off from ./drivers/scsi/mpi3mr, dated October 2026 β that's the source and the date, bestie, all wrapped up with a bow πβ¨ Byeee π¦π
π¦ 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