STRUCT LIBIE_CTLQ_XN_SEND_PARAMS(9)
π struct libie_ctlq_xn_send_params(9) π
okay so this is the Kernel API Manual, bestie, and today we're doing a vibe check on a struct β yes, a whole struct β and honestly it's giving "let me introduce you to my little friend" energy. sit down, grab a strawberry π, and let's get into it.
β¨ NAME β¨
struct libie_ctlq_xn_send_params β literally the structure that represents an Xn send entry. that's it, that's the whole personality π
πΈ SYNOPSIS πΈ
struct libie_ctlq_xn_send_params {
void (*resp_cb)(void *ctx, struct kvec *mem, int status);
void (*rel_tx_buf)(const void *buf_va);
struct libie_ctlq_xn_manager *xnm;
struct libie_ctlq_info *ctlq;
struct libie_ctlq_msg *ctlq_msg;
struct kvec send_buf;
struct kvec recv_mem;
void *send_ctx;
u64 timeout_ms;
u32 chnl_opcode;
};
look at all those fields. main character struct fr fr π
π¦ Members π¦
okay so here's the member-by-member breakdown, no skipping, we don't do that here π
resp_cbβ a non-sleeping callback that handles the response to an async message. non-sleeping, okay?? do not put it to bed π΄rel_tx_bufβ another non-sleeping callback, this one's whole job is freeing the send buffer. it's giving "cleanup crew" energy π§Ήxnmβ the Xn manager, aka the one that processes Xn entries. the boss of this whole situation.ctlqβ send control queue information. queue info goes here πctlq_msgβ control queue message information. message info goes here πsend_bufβ the buffer carrying your outgoing message data. heads up though: buffers larger thanLIBIE_CP_TX_COPYBREAKbytes will always be consumed. always. no cap. π₯recv_memβ the receive buffer, where the good stuff comes back πsend_ctxβ context for the callback function. it's the callback's emotional support context, honestly π«Άtimeout_msβ the virtchnl transaction timeout, in msecs. don't wait forever, bestie β°chnl_opcodeβ the virtchnl message opcode. the little tag that says what kind of message this is οΏ½οΏ½
π SEE ALSO π
go check out the kernel file ./include/linux/net/intel/libie/controlq.h enum β it's right there and it's iconic. then there's this whole friend group:
libie_ctlq_type(9)struct libie_ctlq_ctx(9)struct libie_ctlq_reg(9)struct libie_cp_dma_mem(9)struct libie_ctlq_msg(9)struct libie_ctlq_create_info(9)struct libie_ctlq_info(9)struct libie_ctlq_desc(9)struct libie_ctlq_clean_params(9)libie_ctlq_release_rx_buf(9)enum libie_ctlq_xn_state(9)struct libie_ctlq_xn(9)struct libie_ctlq_xn_manager(9)libie_cp_can_send_onstack(9)struct libie_ctlq_xn_recv_params(9)struct libie_ctlq_xn_init_params(9)
aaaand that's the page!! π this came from ./include/linux/net/intel/libie, dated October 2026, and its whole name is struct libie..._send_params(9) because it's β¨mysteriousβ¨ like that. mwah π bye bestie, go read the source, it's good for you π¦β¨
π¦ 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