irdma_sc_dev_init(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– irdma_sc_dev_init β€” irdma_sc_dev_init(9) πŸ’–

okay bestie, welcome to section 9 of the Kernel API Manual, and this is the moment where the control part of the device gets its whole life together ✨ Like, literally. This page lives in the kernel manual pages, and it's about spinning up the control side of an irdma device. no cap, it's giving "first day of school" energy πŸŽ€


🌸 NAME 🌸

irdma_sc_dev_init β€” Initialize control part of device πŸ’…


✨ SYNOPSIS ✨

int irdma_sc_dev_init (enum irdma_vers ver , struct irdma_sc_dev *dev ,
       struct irdma_device_init_info *info );

so it's a int return, it takes three things, and yes the spacing is exactly like that, don't come for me πŸ™ˆ


πŸ¦‹ ARGUMENTS πŸ¦‹

  • ver β€” the version, bestie. like, which version. that one. enum irdma_vers energy πŸ‘‘
  • dev β€” Device pointer 🫢 this is the main character: struct irdma_sc_dev *dev
  • info β€” Device init info πŸ’œ all the setup deets, chillin' in a struct irdma_device_init_info *

πŸ”₯ SEE ALSO πŸ”₯

okay so this list is long long, and honestly it ate. every single one of these is coming along for the ride πŸ’€

first up, the actual source file and then the QP/pd/arp crew:

  • Kernel file ./drivers/infiniband/hw/irdma/ctrl.c 🌈

irdma_get_qp_from_list(9), irdma_sc_suspend_resume_qps(9), irdma_change_l2params(9), irdma_qp_rem_qos(9), irdma_qp_add_qos(9), irdma_sc_pd_init(9), irdma_sc_add_arp_cache_entry(9), irdma_sc_del_arp_cache_entry(9), irdma_sc_manage_apbvt_entry(9), irdma_sc_manage_qhash_table_entry(9), irdma_sc_qp_init(9), irdma_sc_srq_init(9), irdma_sc_srq_create(9), irdma_sc_srq_modify(9), irdma_sc_srq_destroy(9), irdma_sc_qp_create(9), irdma_sc_qp_modify(9), irdma_sc_qp_destroy(9), irdma_sc_get_encoded_ird_size(9), irdma_sc_qp_setctx_roce_gen_2(9), irdma_sc_get_encoded_ird_size_gen_3(9), irdma_sc_qp_setctx_roce_gen_3(9), irdma_sc_add_local_mac_entry(9), irdma_sc_del_local_mac_entry(9), irdma_sc_qp_setctx(9), irdma_sc_alloc_stag(9), irdma_sc_mr_reg_non_shared(9), irdma_sc_dealloc_stag(9), irdma_sc_mw_alloc(9), irdma_sc_mr_fast_register(9), irdma_sc_gen_rts_ae(9), irdma_sc_send_lsmm(9), irdma_sc_send_rtt(9), irdma_iwarp_opcode(9), irdma_locate_mpa(9), irdma_bld_termhdr_ctrl(9), irdma_bld_termhdr_ddp_rdma(9), irdma_bld_terminate_hdr(9), irdma_terminate_send_fin(9), irdma_terminate_connection(9), irdma_terminate_received(9), irdma_sc_vsi_init(9), irdma_get_stats_idx(9), irdma_hw_stats_init_gen1(9), irdma_vsi_stats_init(9), irdma_vsi_stats_free(9), irdma_get_encoded_wqe_size(9), irdma_sc_gather_stats(9), irdma_sc_manage_stats_inst(9), irdma_sc_set_up_map(9), irdma_sc_manage_ws_node(9), irdma_sc_qp_flush_wqes(9), irdma_sc_gen_ae(9), irdma_sc_manage_push_page(9), irdma_sc_suspend_qp(9), irdma_sc_resume_qp(9), irdma_sc_cq_init(9), irdma_sc_cq_create(9), irdma_sc_cq_destroy(9), irdma_sc_cq_resize(9), irdma_sc_cq_modify(9), irdma_sc_get_decoded_ird_size_gen_3(9)

then the CQP fam (they're lowkey everywhere, iykyk):

irdma_check_cqp_progress(9), irdma_get_cqp_reg_info(9), irdma_sc_cqp_def_cmpl_ae_handler(9), irdma_sc_cqp_cleanup_handler(9), irdma_cqp_poll_registers(9), irdma_sc_decode_fpm_commit(9), irdma_sc_parse_fpm_commit_buf(9), irdma_sc_decode_fpm_query(9), irdma_sc_parse_fpm_query_buf(9), irdma_sc_cqp_init(9), irdma_sc_cqp_create(9), irdma_sc_cqp_post_sq(9), irdma_sc_cqp_get_next_send_wqe_idx(9), irdma_sc_cqp_destroy(9), irdma_sc_ccq_arm(9), irdma_sc_process_def_cmpl(9), irdma_sc_process_ooo_cmpl(9), irdma_sc_ccq_get_cqe_info(9), irdma_sc_poll_for_cqp_op_done(9), irdma_sc_manage_hmc_pm_func_table(9), irdma_sc_commit_fpm_val_done(9), irdma_sc_commit_fpm_val(9), irdma_sc_query_fpm_val_done(9), irdma_sc_query_fpm_val(9)

the CEQ / AEQ / CCQ squad, absolute icons ⭐:

irdma_sc_ceq_init(9), irdma_sc_ceq_create(9), irdma_sc_cceq_create_done(9), irdma_sc_cceq_destroy_done(9), irdma_sc_cceq_create(9), irdma_sc_ceq_destroy(9), irdma_sc_process_ceq(9), irdma_sc_cleanup_ceqes(9), irdma_sc_aeq_init(9), irdma_sc_aeq_create(9), irdma_sc_aeq_destroy(9), irdma_sc_get_next_aeqe(9), irdma_sc_repost_aeq_entries(9), irdma_sc_ccq_init(9), irdma_sc_ccq_create_done(9), irdma_sc_ccq_create(9), irdma_sc_ccq_destroy(9)

and the HMC / memory / SDS besties 🧚:

irdma_sc_init_iw_hmc(9), irdma_set_loc_mem(9), irdma_sc_cfg_iw_fpm(9), cqp_sds_wqe_fill(9), irdma_update_pe_sds(9), irdma_update_sds_noccq(9), irdma_sc_static_hmc_pages_allocated(9), irdma_cqp_ring_full(9), irdma_est_sd(9), irdma_sc_query_rdma_features(9), irdma_get_rdma_features(9), irdma_get_rsrc_mem_config(9), irdma_cfg_sd_mem(9), irdma_get_objs_pages(9), irdma_set_host_hmc_rsrc_gen_3(9), irdma_verify_commit_fpm_gen_3(9), irdma_set_loc_hmc_rsrc_gen_3(9), cfg_fpm_value_gen_3(9), irdma_cfg_fpm_val(9)

and the grand finale, command processing + stats πŸ“:

irdma_exec_cqp_cmd(9), irdma_process_cqp_cmd(9), irdma_process_bh(9), irdma_cfg_aeq(9), sc_vsi_update_stats(9), irdma_wait_pe_ready(9), irdma_stat_val(9), irdma_stat_delta(9), irdma_update_stats(9)

like… that's the whole friend group, periodt πŸ’…


okay that's the page!! quick lil sign-off: this beauty ships from ./drivers/infiniband/hw/irdma, it's dated October 2026, and it's irdma_sc_dev_init(9) β€” go initialize that control part, bestie, you're gonna slay πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from