STRUCT SEC_HW_SGL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay bestie, meet struct sec_hw_sgl(9) from the Kernel API Manual β€” she is literally one hardware SGL entry, and we are going to get into every single field together. no skipping, no cap. πŸ’…


✨ SYNOPSIS ✨

here’s the shape of her, exactly as she is:

struct sec_hw_sgl {
    dma_addr_t next_sgl;
    u16 entry_sum_in_chain;
    u16 entry_sum_in_sgl;
    u32 flag;
    u64 serial_num;
    u32 cpuid;
    u32 data_bytes_in_sgl;
    struct sec_hw_sgl *next;
    u64 reserved;
    struct sec_hw_sge  sge_entries[SEC_MAX_SGE_NUM];
    u8 node[16];
 };

πŸŽ€ Members πŸŽ€

vibe check on every member, one by one:

  • next_sgl β€” the next entry if we need to chain a dma address. it’s Null if last. 🫢
  • entry_sum_in_chain β€” the full count of SGEs β€” only matters for first SGL. noted, bestie.
  • entry_sum_in_sgl β€” the number of SGEs in this SGL element.
  • flag β€” unused in skciphers. periodt.
  • serial_num β€” also unused in skciphers (the original spells it β€œUnsued in skciphers” 😭 iconic typo energy, but the meaning is still β€œunused”).
  • cpuid β€” currently unused.
  • data_bytes_in_sgl β€” count of bytes from all SGEs in this SGL.
  • next β€” virtual address used to stash the next sgl β€” useful in completion.
  • reserved β€” a reserved field not currently used.
  • sge_entries β€” the (up to) 64 Scatter Gather Entries, representing IOVs. she ate.
  • node β€” currently unused.

πŸ”Ž SEE ALSO πŸ”Ž

kernel file ./drivers/crypto/hisilicon/sec/sec_drv.h β€” go peek at these cuties:

  • struct sec_queue_ring_cmd(9)
  • struct sec_alg_tfm_ctx(9)
  • struct sec_request(9)
  • struct sec_request_el(9)
  • struct sec_queue(9)
  • struct sec_hw_sge(9)
  • struct sec_dev_info(9)

okay that’s the whole page, bestie πŸ’– β€” source/version vibe: ./drivers/crypto/hisilicon/sec, October 2026, struct sec_hw_sgl(9). byeee πŸ‘‘βœ¨

πŸ“¦ where this page comes from