srpt_get_desc_tbl(9)
β¨ NAME β¨
okay bestie, welcome to srpt_get_desc_tbl(9) from the Kernel API Manual π β the function that is literally here to parse the data descriptors of a SRP_CMD request. No cap. π¦
π SYNOPSIS π
int srpt_get_desc_tbl (struct srpt_recv_ioctx *recv_ioctx , struct
srpt_send_ioctx *ioctx , struct srp_cmd *srp_cmd , enum
dma_data_direction *dir , struct scatterlist **sg , unsigned int *sg_cnt
, u64 *data_len , u16 imm_data_offset );
π«Ά ARGUMENTS π«Ά
okay, meet the cast, they all matter: π
recv_ioctxβ I/O context associated with the received commandsrp_cmd.ioctxβ I/O context that will be used for responding to the initiator.srp_cmdβ Pointer to theSRP_CMDrequest data.dirβ Pointer to the variable to which the transfer direction will be written.sgβ[out]scatterlist for the parsedSRP_CMD.sg_cntβ[out]length ofsg.data_lenβ Pointer to the variable to which the total data length of all descriptors in theSRP_CMDrequest will be written.imm_data_offsetβ[in]Offset inSRP_CMDrequests at which immediate data starts.
π DESCRIPTION π
okay so this function initializes ioctx->nrbuf and ioctx->r_bufs. That is the main-character job, periodt. π
It returns -EINVAL when the SRP_CMD request contains inconsistent descriptors; -ENOMEM when memory allocation fails; and zero upon success. π«‘
π SEE ALSO π
the kernel file is right here, bestie:
- Kernel file
./drivers/infiniband/ulp/srpt/ib_srpt.c
and the whole friend group is tagging along: π
srpt_event_handler(9),srpt_srq_event(9),srpt_qp_event(9),srpt_set_ioc(9),srpt_get_class_port_info(9),srpt_get_iou(9),srpt_get_ioc(9),srpt_get_svc_entries(9),srpt_mgmt_method_get(9),srpt_mad_send_handler(9),srpt_mad_recv_handler(9)srpt_refresh_port(9),srpt_unregister_mad_agent(9),srpt_alloc_ioctx(9),srpt_free_ioctx(9),srpt_alloc_ioctx_ring(9),srpt_free_ioctx_ring(9),srpt_set_cmd_state(9),srpt_test_and_set_cmd_state(9),srpt_post_recv(9),srpt_zerolength_write(9),srpt_init_ch_qp(9)srpt_ch_qp_rtr(9),srpt_ch_qp_rts(9),srpt_ch_qp_err(9),srpt_get_send_ioctx(9),srpt_abort_cmd(9),srpt_rdma_read_done(9),srpt_build_cmd_rsp(9),srpt_build_tskmgmt_rsp(9),srpt_handle_cmd(9),srpt_handle_tsk_mgmt(9),srpt_handle_new_iu(9)srpt_send_done(9),srpt_create_ch_ib(9),srpt_close_ch(9),srpt_cm_req_recv(9),srpt_cm_rtu_recv(9),srpt_cm_handler(9),srpt_queue_response(9),srpt_release_sport(9),srpt_lookup_port(9),srpt_add_one(9),srpt_remove_one(9)srpt_close_session(9),srpt_parse_i_port_id(9),srpt_make_tpg(9),srpt_drop_tpg(9),srpt_make_tport(9),srpt_drop_tport(9),srpt_init_module(9)
and that is the whole page, bestie π«Ά β source ./drivers/infiniband/ulp/srpt, date October 2026, page srpt_get_desc_tbl(9). πβ¨
π¦ 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