ice_sq_send_cmd(9)
π ice_sq_send_cmd β the kernel API manual, bestie edition π
okay so this is ice_sq_send_cmd(9) from the Kernel API Manual, and it's literally the main character of the transmit side of a control queue. stay with me, you're gonna slay this π
β¨ NAME β¨
ice_sq_send_cmd β send command to a control queue π¦
β¨ SYNOPSIS β¨
int ice_sq_send_cmd (struct ice_hw *hw , struct ice_ctl_q_info *cq ,
struct libie_aq_desc *desc , void *buf , u16 buf_size , struct ice_sq_cd
*cd );
β¨ ARGUMENTS β¨
hwβ pointer to the HW struct. the hardware vibes, essential, no cap π«Άcqβ pointer to the specific Control queue. like, which queue, be specific bestie πΈdescβ a prefilled descriptor describing the command. you do the filling before you call, okay? it's already dressed, you're just sending it out πbufβ buffer to use for indirect commands (orNULLfor direct commands). yes,NULLis valid here, that's the direct-command life πbuf_sizeβ size of buffer for indirect commands (or0for direct commands). pair it up withbuf, they're a matching set πcdβ pointer to command details structure π
β¨ DESCRIPTION β¨
Main command for the transmit side of a control queue. literally the icon, the moment π₯
Here's the whole glow-up it does for you:
- it puts the command on the queue π₯
- it bumps the tail π
- it waits for processing of the command β³ (yes, actual waiting, be patient)
- it captures command status and results πΈ
- etc. β¨
so yeah. it's the "send the thing and stick around to see what happened" function. very responsible of it, honestly π§
β¨ SEE ALSO β¨
Kernel file ./drivers/net/ethernet/intel/ice/ice_controlq.c
and like, the entire friend group π:
ice_adminq_init_regs(9)ice_mailbox_init_regs(9)ice_sb_init_regs(9)ice_check_sq_alive(9)ice_alloc_ctrlq_sq_ring(9)ice_alloc_ctrlq_rq_ring(9)ice_free_cq_ring(9)ice_alloc_rq_bufs(9)ice_alloc_sq_bufs(9)ice_cfg_sq_regs(9)ice_cfg_rq_regs(9)ice_init_sq(9)ice_init_rq(9)ice_shutdown_sq(9)ice_aq_ver_check(9)ice_shutdown_rq(9)ice_init_check_adminq(9)ice_init_ctrlq(9)ice_is_sbq_supported(9)ice_get_sbq(9)ice_shutdown_ctrlq(9)ice_shutdown_all_ctrlq(9)ice_init_all_ctrlq(9)ice_init_ctrlq_locks(9)ice_create_all_ctrlq(9)ice_destroy_ctrlq_locks(9)ice_destroy_all_ctrlq(9)ice_clean_sq(9)ice_ctl_q_str(9)ice_debug_cq(9)ice_sq_done(9)ice_fill_dflt_direct_cmd_desc(9)ice_clean_rq_elem(9)
and that's the whole page, bestie. this one lives in ./drivers/net/ethernet/intel/ice, dated October 2026 β so go forth, send those commands, and remember: bump the tail responsibly πβπ
π¦ 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