STRUCT IDPF_REG_OPS(9)
π struct idpf_reg_ops(9) π
okay so bestie, welcome to the struct idpf_reg_ops(9) page from the Kernel API Manual β this is the glow-up doc for a struct full of device specific register operation function pointers. it's giving "the plug board for register poking" and honestly? iconic. π
β¨ NAME β¨
struct idpf_reg_ops β device specific register operation function pointers. literally the little black book of "who do i call to touch which register" π
πΈ SYNOPSIS πΈ
struct idpf_reg_ops {
void (*ctlq_reg_init)(struct libie_mmio_info *mmio, struct
libie_ctlq_create_info *cctlq_info);
int (*intr_reg_init)(struct idpf_vport *vport, struct
idpf_q_vec_rsrc *rsrc);
void (*mb_intr_reg_init)(struct idpf_adapter *adapter);
void (*reset_reg_init)(struct idpf_adapter *adapter);
void (*trigger_reset)(struct idpf_adapter *adapter, enum idpf_flags
trig_cause);
void (*ptp_reg_init)(const struct idpf_adapter *adapter);
};
π Members π
ctlq_reg_initβ mailbox control queue register initialization. the control-queue setup girlie π¦intr_reg_initβ traffic interrupt register initialization. yes, the traffic interrupts, she's busy π₯mb_intr_reg_initβ mailbox interrupt register initialization. mailbox but make it interrupt β¨reset_reg_initβ reset register initialization. setting the stage for a fresh start πΈtrigger_resetβ trigger a reset to occur. no cap, this one actually makes the reset happen πptp_reg_initβ PTP register initialization. precision time protocol gets her own dedicated pointer, as she deserves π
π«Ά SEE ALSO π«Ά
Kernel file ./drivers/net/ethernet/intel/idpf/idpf.h
and the whole friend group π (they all said "not me being referenced"):
struct idpf_mac_filter(9)enum idpf_state(9)enum idpf_flags(9)enum idpf_cap_field(9)enum idpf_vport_state(9)struct idpf_netdev_priv(9)struct idpf_reset_reg(9)struct idpf_vport_max_q(9)struct idpf_dev_ops(9)enum idpf_vport_reset_cause(9)enum idpf_vport_flags(9)struct idpf_tstamp_stats(9)struct idpf_q_vec_rsrc(9)struct idpf_vport(9)enum idpf_user_flags(9)struct idpf_rss_data(9)struct idpf_q_coalesce(9)struct idpf_vport_user_config_data(9)enum idpf_vport_config_flags(9)struct idpf_avail_queue_info(9)struct idpf_vector_info(9)struct idpf_vector_lifo(9)struct idpf_queue_id_reg_chunk(9)struct idpf_queue_id_reg_info(9)struct idpf_vport_config(9)struct idpf_adapter(9)idpf_is_queue_model_split(9)idpf_is_rdma_cap_ena(9)idpf_get_reserved_vecs(9)idpf_get_reserved_rdma_vecs(9)idpf_get_default_vports(9)idpf_get_max_vports(9)idpf_get_max_tx_bufs(9)idpf_get_min_tx_pkt_len(9)idpf_is_reset_detected(9)idpf_is_reset_in_prog(9)idpf_netdev_to_vport(9)idpf_netdev_to_adapter(9)idpf_is_feature_ena(9)idpf_get_max_tx_hdr_size(9)idpf_vport_ctrl_lock(9)idpf_vport_ctrl_unlock(9)
bestie reminder: those function pointers are device specific β which is the whole point, so don't go assuming one device's register dance works on another. iykyk π§
and that's the page!! π this little gem lives in ./drivers/net/ethernet/intel/idpf, dated October 2026 β mwah, go read the actual idpf code, she ate ππβ
π¦ 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