UNION IONIC_DEV_CMD_REGS(9)
π union ionic_dev_cmd_regs β Kernel API Manual, but make it make sense π
okay bestie, sit down, hydrate, and let me tell you about union ionic_dev_cmd_regs(9) β it's the Device command register format (read-write) and it is, no cap, the main character of getting your commands to the NIC. this is the page for the Kernel API Manual, and honestly? she's iconic. π
β¨ NAME β¨
union ionic_dev_cmd_regs β the Device command register format (read-write). yes that's the whole vibe. it's a union, she's read-write, she contains multitudes. π
β¨ SYNOPSIS β¨
here's the whole layout, exactly as it lives, do not touch, do not "clean up":
union ionic_dev_cmd_regs {
struct {
u32 doorbell;
u32 done;
union ionic_dev_cmd cmd;
union ionic_dev_cmd_comp comp;
u8 rsvd[48];
u32 data[478];
};
u32 words[512];
};
lowkey beautiful. it's giving "two ways to look at the same memory" and I am obsessed. π¦
β¨ Members β¨
{unnamed_struct}β anonymous π«₯ (yes really, that's the whole description, she's mysterious, she's unnamed, she's that girl)doorbellβ Device Cmd Doorbell, write-only. so listen: you write a1here to signal the device to processcmd, and then you polldonefor completion. that's the whole dance. write-only, so don't be out here trying to read it, bestie. πdoneβ the Done indicator.bit 0 == 1when the command is complete. that's your little green checkmark. πΈcmdβ the Opcode-specific command bytes. this is what you're actually asking for.compβ the Opcode-specific response bytes. this is what the device yells back.rsvdβ reserved byte(s). do not touch. not yours. leave her alone. πdataβ Opcode-specific side-data. the little bonus content. the director's commentary.wordsβ word access to struct contents. same memory, different outfit. slay. π
β οΈ real talk:doorbellis write-only andrsvdis reserved β those aren't suggestions, that's the whole rule. anddonecompletes atbit 0 == 1, so check the bit, not the vibe.
β¨ SEE ALSO β¨
okay so this is the part where the page just, like, lists everyone at the function. and I mean everyone. here's the whole friend group, no one gets left out, starting with the source file itself:
- Kernel file
./drivers/net/ethernet/pensando/ionic/ionic_if.h
and then, in order, the entire extended universe:
struct ionic_admin_cmd(9)struct ionic_admin_comp(9)struct ionic_nop_cmd(9)struct ionic_nop_comp(9)struct ionic_dev_init_cmd(9)struct ionic_dev_init_comp(9)struct ionic_dev_reset_cmd(9)struct ionic_dev_reset_comp(9)struct ionic_dev_identify_cmd(9)struct ionic_dev_identify_comp(9)union ionic_drv_identity(9)enum ionic_dev_capability(9)union ionic_dev_identity(9)struct ionic_lif_identify_cmd(9)struct ionic_lif_identify_comp(9)enum ionic_lif_capability(9)enum ionic_logical_qtype(9)enum ionic_q_feature(9)enum ionic_rxq_feature(9)enum ionic_txq_feature(9)enum ionic_hwstamp_bits(9)struct ionic_lif_logical_qtype(9)enum ionic_lif_state(9)union ionic_lif_config(9)enum ionic_lif_rdma_cap_stats(9)union ionic_lif_identity(9)struct ionic_lif_init_cmd(9)struct ionic_lif_init_comp(9)struct ionic_q_identify_cmd(9)struct ionic_q_identify_comp(9)union ionic_q_identity(9)struct ionic_q_init_cmd(9)struct ionic_q_init_comp(9)struct ionic_txq_desc(9)struct ionic_txq_sg_elem(9)struct ionic_txq_sg_desc(9)struct ionic_txq_comp(9)struct ionic_rxq_desc(9)struct ionic_rxq_sg_elem(9)struct ionic_rxq_sg_desc(9)struct ionic_rxq_comp(9)enum ionic_pkt_class(9)struct ionic_q_control_cmd(9)enum ionic_phy_type(9)enum ionic_xcvr_state(9)enum ionic_port_type(9)enum ionic_port_admin_state(9)enum ionic_port_oper_status(9)enum ionic_port_fec_type(9)enum ionic_port_pause_type(9)enum ionic_port_loopback_mode(9)struct ionic_xcvr_status(9)union ionic_port_config(9)struct ionic_port_status(9)struct ionic_port_identify_cmd(9)struct ionic_port_identify_comp(9)struct ionic_port_init_cmd(9)struct ionic_port_init_comp(9)struct ionic_port_reset_cmd(9)struct ionic_port_reset_comp(9)enum ionic_stats_ctl_cmd(9)enum ionic_txstamp_mode(9)enum ionic_port_attr(9)struct ionic_port_setattr_cmd(9)struct ionic_port_setattr_comp(9)struct ionic_port_getattr_cmd(9)struct ionic_port_getattr_comp(9)struct ionic_lif_status(9)struct ionic_lif_reset_cmd(9)enum ionic_dev_attr(9)struct ionic_dev_setattr_cmd(9)struct ionic_dev_setattr_comp(9)struct ionic_dev_getattr_cmd(9)struct ionic_dev_getattr_comp(9)enum ionic_lif_attr(9)struct ionic_lif_setattr_cmd(9)struct ionic_lif_setattr_comp(9)struct ionic_lif_getattr_cmd(9)struct ionic_lif_getattr_comp(9)struct ionic_lif_setphc_cmd(9)struct ionic_rx_mode_set_cmd(9)struct ionic_rx_filter_add_cmd(9)struct ionic_rx_filter_add_comp(9)struct ionic_rx_filter_del_cmd(9)enum ionic_vf_link_status(9)struct ionic_vf_setattr_cmd(9)struct ionic_vf_getattr_cmd(9)struct ionic_vf_ctrl_cmd(9)struct ionic_vf_ctrl_comp(9)struct ionic_discover_cmb_cmd(9)struct ionic_discover_cmb_comp(9)union ionic_cmb_region(9)union ionic_discover_cmb_identity(9)struct ionic_qos_identify_cmd(9)struct ionic_qos_identify_comp(9)enum ionic_qos_class_type(9)enum ionic_qos_sched_type(9)union ionic_qos_config(9)union ionic_qos_identity(9)struct ionic_qos_init_cmd(9)struct ionic_qos_reset_cmd(9)struct ionic_qos_clear_stats_cmd(9)struct ionic_fw_download_cmd(9)enum ionic_fw_control_oper(9)struct ionic_fw_control_cmd(9)struct ionic_fw_control_comp(9)struct ionic_rdma_reset_cmd(9)struct ionic_rdma_queue_cmd(9)struct ionic_notifyq_event(9)struct ionic_link_change_event(9)struct ionic_reset_event(9)struct ionic_heartbeat_event(9)struct ionic_log_event(9)struct ionic_xcvr_event(9)union ionic_port_identity(9)struct ionic_port_info(9)struct ionic_lif_info(9)struct ionic_hwstamp_regs(9)union ionic_dev_info_regs(9)union ionic_dev_regs(9)struct ionic_doorbell(9)
like I said. everyone. and honestly? they all ate. π₯
and that's the page, bestie β go forth, ring that doorbell with a 1, poll your done bit 0, and be the main character of your own command processing. π§ββοΈ
sign-off cuteness: this little love letter comes from./drivers/net/ethernet/pensand...and it's dated October 2026 β til then, stay hydrated, read your reserved bytes, and don't touchrsvd. 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