t4_read_indirect(9)
π t4_read_indirect(9) π
okay so bestie, welcome to the Kernel API Manual β¨ β yes this whole thing lives in section 9 of the man pages, that's the kernel-functions zone, we love that for us π. Today's main character is t4_read_indirect, and honestly? she reads indirect registers. that's the whole vibe. let's get into it π¦
β¨ NAME β¨
t4_read_indirect β read indirectly addressed registers π«
πΈ SYNOPSIS πΈ
void t4_read_indirect (struct adapter *adap , unsigned int addr_reg ,
unsigned int data_reg , u32 *vals , unsigned int nregs , unsigned int
start_idx );
like, six whole parameters. she's a little extra but she delivers π«Ά
π ARGUMENTS π
adapβ the adapter π this is the cxgb4 friend you're doing all of this for.addr_regβ the register holding the indirect address π which register you poke to say "hey, I want that one".data_regβ the register holding the value of the indirect register π the other half of the address/data duo, this one actually hands over the goods.valsβ where the read register values are stored π your output array, your little treasure chest.nregsβ how many indirect registers to read π₯ grabby hands. how many you want.start_idxβ index of first indirect register to read β where the reading begins, bestie.
π¦ DESCRIPTION π¦
Reads registers that are accessed indirectly through an address/data register pair π β¨
that's it, that's the whole thing β and ngl it's kind of iconic in its simplicity. some registers don't have their own lil address you can just read; instead you write the address into addr_reg, then the hardware hands you the value over in data_reg. this function does that little dance for you, nregs times starting at start_idx, and drops the results into vals. no cap. π§
π SEE ALSO π
it's giving extended family reunion π like, the whole cxgb4 crew showed up. every single one of these is linked below, no skipping, we respect our elders π
- Kernel file
./drivers/net/ethernet/chelsio/cxgb4/t4_hw.c t4_wait_op_done_val(9),t4_set_reg_field(9),t4_write_indirect(9),t4_record_mbox(9),t4_wr_mbox_meat_timeout(9),t4_memory_rw_init(9),t4_memory_update_win(9),t4_memory_rw_residual(9),t4_memory_rw(9),t4_get_regs_len(9),t4_get_regs(9),t4_eeprom_ptov(9),t4_seeprom_wp(9),t4_get_raw_vpd_params(9),t4_get_vpd_params(9),t4_get_pfres(9),sf1_read(9),sf1_write(9),flash_wait_op(9),t4_read_flash(9),t4_write_flash(9),t4_get_fw_version(9),t4_get_bs_version(9),t4_get_tp_version(9),t4_get_exprom_version(9),t4_get_vpd_version(9),t4_get_scfg_version(9),t4_get_version_info(9),t4_dump_version_info(9),t4_check_fw_version(9),t4_flash_erase_sectors(9),t4_flash_cfg_addr(9),t4_load_fw(9),t4_phy_fw_ver(9),t4_load_phy_fw(9),t4_fwcache(9),fwcaps16_to_caps32(9),fwcaps32_to_caps16(9),t4_link_acaps(9),t4_link_l1cfg_core(9),t4_restart_aneg(9),t4_handle_intr_status(9),t4_slow_intr_handler(9),t4_intr_enable(9),t4_intr_disable(9),t4_config_rss_range(9),t4_config_glbl_rss(9),t4_config_vi_rss(9),t4_read_rss(9),t4_tp_fw_ldst_rw(9),t4_tp_indirect_rw(9),t4_tp_pio_read(9),t4_tp_pio_write(9),t4_tp_tm_pio_read(9),t4_tp_mib_read(9),t4_read_rss_key(9),t4_write_rss_key(9),t4_read_rss_pf_config(9),t4_read_rss_vf_config(9),t4_read_rss_pf_map(9),t4_read_rss_pf_mask(9),t4_tp_get_tcp_stats(9),t4_tp_get_err_stats(9),t4_tp_get_cpl_stats(9),t4_tp_get_rdma_stats(9),t4_get_fcoe_stats(9),t4_get_usm_stats(9),t4_read_mtu_tbl(9),t4_read_cong_tbl(9),t4_tp_wr_bits_indirect(9),init_cong_ctrl(9),t4_load_mtus(9),t4_get_chan_txrate(9),t4_set_trace_filter(9),t4_get_trace_filter(9),t4_pmtx_get_stats(9),t4_pmrx_get_stats(9),compute_mps_bg_map(9),t4_get_mps_bg_map(9),t4_get_tp_e2c_map(9),t4_get_tp_ch_map(9),t4_get_port_type_description(9),t4_get_port_stats_offset(9),t4_get_port_stats(9),t4_get_lb_stats(9),t4_mdio_rd(9),t4_mdio_wr(9),t4_sge_decode_idma_state(9),t4_sge_ctxt_flush(9),t4_read_sge_dbqtimers(9),t4_fw_hello(9),t4_fw_bye(9),t4_early_init(9),t4_fw_reset(9),t4_fw_halt(9),t4_fw_restart(9),t4_fw_upgrade(9),t4_fl_pkt_align(9),t4_fixup_host_params(9),t4_fw_initialize(9),t4_query_params_rw(9),t4_set_params_timeout(9),t4_set_params(9),t4_cfg_pfvf(9),t4_alloc_vi(9),t4_free_vi(9),t4_set_rxmode(9),t4_free_encap_mac_filt(9),t4_free_raw_mac_filt(9),t4_alloc_encap_mac_filt(9),t4_alloc_raw_mac_filt(9),t4_alloc_mac_filt(9),t4_free_mac_filt(9),t4_change_mac(9),t4_set_addr_hash(9),t4_enable_vi_params(9),t4_enable_vi(9),t4_enable_pi_params(9),t4_identify_port(9),t4_iq_stop(9),t4_iq_free(9),t4_eth_eq_free(9),t4_ctrl_eq_free(9),t4_ofld_eq_free(9),t4_link_down_rc_str(9),fwcap_to_fwspeed(9),lstatus_to_fwcap(9),t4_handle_get_port_info(9),t4_update_port_info(9),t4_get_link_params(9),t4_handle_fw_rpl(9),init_link_config(9),t4_prep_adapter(9),t4_shutdown_adapter(9),t4_bar2_sge_qregs(9),t4_init_devlog_params(9),t4_init_sge_params(9),t4_init_tp_params(9),t4_filter_field_shift(9),t4_init_portinfo(9),t4_read_cimq_cfg(9),t4_read_cim_ibq(9),t4_read_cim_obq(9),t4_cim_read(9),t4_cim_write(9),t4_cim_read_la(9),t4_tp_read_la(9),t4_idma_monitor_init(9),t4_idma_monitor(9),t4_load_cfg(9),t4_set_vf_mac_acl(9),t4_read_pace_tbl(9),t4_get_tx_sched(9),t4_sge_ctxt_rd_bd(9),t4_i2c_rd(9),t4_set_vlan_acl(9),modify_device_id(9),t4_load_boot(9),t4_flash_bootcfg_addr(9)
okay that's the whole page, bestie, you ate that π β¨
mwah π and before you go β little sign-off from the page itself: it comes from ./drivers/net/ethernet/chelsio... and it's dated October 2026, so she's fresh, she's current, she's serving πΈπ¦ 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