STRUCT QCE_DEVICE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so welcome to the Kernel API Manual bestie, this page is struct qce_device(9) β€” the crypto engine device structure. that's it, that's the vibe. it's the big ol' struct that holds a QCE crypto engine together πŸŽ€


✨ SYNOPSIS ✨

here's the whole struct, laid out exactly like this, no notes:

struct qce_device {
    struct crypto_queue queue;
    struct mutex lock;
    struct work_struct done_work;
    struct crypto_async_request *req;
    int result;
    void __iomem *base;
    struct device *dev;
    struct clk *core, *iface, *bus;
    struct icc_path *mem_path;
    struct qce_dma_data dma;
    int burst_size;
    unsigned int pipe_pair_id;
    int (*async_req_enqueue)(struct qce_device *qce, struct crypto_async_request *req);
    void (*async_req_done)(struct qce_device *qce, int ret);
 };

like… look at her. main character struct energy fr fr πŸ‘‘


🌸 MEMBERS 🌸

  • queue β€” the crypto request queue. the little lineup where requests wait their turn 🧚
  • lock β€” the lock protects queue and req. yes both. it's giving bodyguard πŸ’…
  • done_work β€” workqueue context. that's where the finishing-up happens ✨
  • req β€” current active request. the one actually on stage rn 🎀
  • result β€” result of current transform. the vibe check report card πŸ“‹
  • base β€” virtual IO base. the address-y home base 🏠
  • dev β€” pointer to device structure. hi device bestie 🫢
  • core β€” core device clock ⏰
  • iface β€” interface clock ⏰
  • bus β€” bus clock ⏰ (three clocks, three emoji, we love a trio)
  • dma β€” pointer to dma data πŸ“¦
  • burst_size β€” the crypto burst size πŸ”₯
  • pipe_pair_id β€” which pipe pair id the device using 🚰
  • async_req_enqueue β€” invoked by every algorithm to enqueue a request πŸ“₯
  • async_req_done β€” invoked by every algorithm to finish its request πŸ“€
not me noticing mem_path is sitting up there in the struct but the Members list lowkey doesn't spell it out πŸ˜­πŸ™ˆ it's in the struct, it's an struct icc_path *mem_path;, and that's literally all this page gives us. no cap.

πŸ‘‘ SEE ALSO πŸ‘‘

  • Kernel file ./drivers/crypto/qce/core.h
  • struct qce_algo_ops(9)

alright bestie that's the whole page, go forth and enqueue responsibly πŸ¦‹πŸ’œ

this has been struct qce_device(9) from the Kernel API Manual, straight outta ./drivers/crypto/qce, dated October 2026 β€” periodt. 🌈⭐

πŸ“¦ where this page comes from