sdma_txinit(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ sdma_txinit(9) β€” Kernel API Manual, bestie edition πŸ¦‹

🌸 NAME 🌸

sdma_txinit β€” initialize an sdma_txreq struct (no AHG). Periodt, that’s the whole vibe.

✨ SYNOPSIS ✨

int sdma_txinit (struct sdma_txreq *tx , u16 flags , u16 tlen , void
       (*cb)(struct sdma_txreq *, int) );

πŸŽ€ ARGUMENTS πŸŽ€

  • tx β€” the tx request to initialize.
  • flags β€” flags to key last descriptor additions.
  • tlen β€” total packet length (pbc + headers + data).
  • cb β€” callback pointer.

πŸ’– DESCRIPTION πŸ’–

Okay so the allocation of the sdma_txreq and its enclosing structure is user dependent β€” that part is literally on you. This routine must be called to initialize the user independent fields, no skipping.

The currently supported flags is SDMA_TXREQ_F_URGENT. That one is for latency sensitive situations where the completion is desired as soon as possible, iykyk.

Completions of submitted requests can be gotten on selected txreqs by giving a completion routine callback to sdma_txinit or sdma_txinit_ahg.

⚠️ Callback tea, bestie: the environment in which the callback runs can be from an ISR, a tasklet, or a thread, so no sleeping kernel routines can be used. The head size of the sdma ring may be locked, so care should be taken with locking. This is important fr fr.

The callback pointer can be NULL to avoid any callback for the packet being submitted. The callback, if non-NULL, will be provided this tx and a status. The status will be one of SDMA_TXREQ_S_OK, SDMA_TXREQ_S_SENDERROR, SDMA_TXREQ_S_ABORTED, or SDMA_TXREQ_S_SHUTDOWN.

🌈 SEE ALSO 🌈


signed off from ./drivers/infiniband/hw/hfi1 on October 2026 β€” sdma_txinit(9) out! πŸŽ€βœ¨πŸ’…

πŸ“¦ where this page comes from