caam_jr_enqueue(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… caam_jr_enqueue

okay bestie, this is caam_jr_enqueue from the Kernel API Manual, and it's basically the β€œdrop your job descriptor in the ring” function. slay.

🌸 NAME 🌸

caam_jr_enqueue β€” Enqueue a job descriptor head. Returns -EINPROGRESS if OK, -ENOSPC if the queue is full, -EIO if it cannot map the caller's descriptor. periodt.

✨ SYNOPSIS ✨

int caam_jr_enqueue (struct device *dev , u32 *desc , void (*cbk)(struct
device *dev, u32 *desc, u32 status, void *areq) , void *areq );

πŸŽ€ ARGUMENTS πŸŽ€

  • dev β€” struct device of the job ring to be used. this is the ring you're handing your job to, bestie.
  • desc β€” points to a job descriptor that execute our request. read this twice: All descriptors (and all referenced data) must be in a DMAable region, and all data references must be physical addresses accessible to CAAM (i.e. within a PAMU window granted to it).
  • cbk β€” pointer to a callback function to be invoked upon completion of this request. This has the form: callback(struct device *dev, u32 *desc, u32 stat, void *arg) where:
    • dev: contains the job ring device that processed this response.
    • desc: descriptor that initiated the request, same as "desc" being argued to caam_jr_enqueue.
    • status: untranslated status received from CAAM. See the reference manual for a detailed description of error meaning, or see the JRSTA definitions in the register header file
    • areq: optional pointer to an argument passed with the original request
  • areq β€” optional pointer to a user argument for use at callback time. lowkey just your little callback stash.

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./drivers/crypto/caam/jr.c β€” plus caam_jr_alloc(9), caam_jr_free(9).

πŸ‘‘ bestie note: the desc situation is not a vibe-check-optional thing β€” all descriptors and referenced data have to be DMAable, and every data reference has to be a physical address accessible to CAAM, i.e. inside a PAMU window granted to it. no cap.

mwah πŸ’– this iconic page comes from ./drivers/crypto/caam, dated October 2026, and it's caam_jr_enqueue(9) β€” periodt. πŸŽ€

πŸ“¦ where this page comes from