STRUCT SA_CRYPTO_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct sa_crypto_data(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual ✨ β€” this page is literally all about struct sa_crypto_data, which is the driver instance data for the Crypto driver. it's giving "one struct to hold the whole vibe" and honestly? iconic. πŸŽ€


🌸 NAME 🌸

struct sa_crypto_data β€” Crypto driver instance data πŸ¦‹


✨ SYNOPSIS ✨

here's the whole squad, member by member, no cuts, no edits, exactly as it lives πŸ‘‘

struct sa_crypto_data {
    void __iomem *base;
    const struct sa_match_data *match_data;
    struct platform_device  *pdev;
    struct dma_pool         *sc_pool;
    struct device *dev;
    spinlock_t scid_lock;
    u16 sc_id_start;
    u16 sc_id_end;
    u16 sc_id;
    unsigned long   ctx_bm[DIV_ROUND_UP(SA_MAX_NUM_CTX, BITS_PER_LONG)];
    struct sa_tfm_ctx       *ctx;
    struct dma_chan         *dma_rx1;
    struct dma_chan         *dma_rx2;
    struct dma_chan         *dma_tx;
 };

🧚 Members 🧚

okay so this is the part where we meet everyone individually. main character energy for each and every one of them, fr fr:

  • base β€” the base address of the register space. like the home address of the whole operation 🏠
  • pdev β€” the platform device pointer. it's giving "who am I attached to" 🫢
  • sc_pool β€” the security context pool. yes bestie, a whole pool πŸ’…
  • dev β€” the device pointer. lowkey essential 🌟
  • scid_lock β€” the secure context ID lock. πŸ”’ do not skip this one, it's holding down the concurrency situation
  • sc_id_start β€” the starting index for SC ID. where the numbering begins, periodt ⭐
  • sc_id_end β€” the ending index for SC ID. where the numbering wraps up, bye πŸ‘‹
  • sc_id β€” the Security Context ID. the ID itself, the moment ✨
  • ctx_bm β€” a bitmap to keep track of Security context ID's. literally the attendance sheet for which IDs are taken πŸ“‹
  • ctx β€” the SA tfm context pointer πŸ¦‹
  • dma_rx1 β€” pointer to the DMA rx channel for sizes < 256 Bytes. tiny data, dedicated channel, slay πŸ“
  • dma_rx2 β€” pointer to the DMA rx channel for sizes > 256 Bytes. big data gets its own channel, ate πŸ’€
  • dma_tx β€” pointer to the DMA TX channel πŸ”₯
ngl, if you're looking for a write-up of match_data, the original page doesn't give one β€” so I'm not gonna make one up. it's in the struct, it's chilling, that's the tea πŸ™ˆ

πŸ¦‹ SEE ALSO πŸ¦‹

go read these next, bestie, they're all part of the same friend group πŸ’œ β€” kernel file ./drivers/crypto/sa2ul.h plus these icons:

  • struct sa_cmdl_param_info(9)
  • struct sa_cmdl_upd_info(9)
  • struct sa_ctx_info(9)
  • struct sa_tfm_ctx(9)
  • struct sa_sha_req_ctx(9)
  • struct sa_eng_info(9)

and that's the whole page, no cap πŸ’– big kisses from the source at ./drivers/crypto, dated October 2026 β€” catch you in the next manpage, bestie! πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from