|
|
@@ -65,6 +65,36 @@ struct talitos_desc {
|
|
|
|
|
|
#define TALITOS_DESC_SIZE (sizeof(struct talitos_desc) - sizeof(__be32))
|
|
|
|
|
|
+/*
|
|
|
+ * talitos_edesc - s/w-extended descriptor
|
|
|
+ * @src_nents: number of segments in input scatterlist
|
|
|
+ * @dst_nents: number of segments in output scatterlist
|
|
|
+ * @icv_ool: whether ICV is out-of-line
|
|
|
+ * @iv_dma: dma address of iv for checking continuity and link table
|
|
|
+ * @dma_len: length of dma mapped link_tbl space
|
|
|
+ * @dma_link_tbl: bus physical address of link_tbl/buf
|
|
|
+ * @desc: h/w descriptor
|
|
|
+ * @link_tbl: input and output h/w link tables (if {src,dst}_nents > 1) (SEC2)
|
|
|
+ * @buf: input and output buffeur (if {src,dst}_nents > 1) (SEC1)
|
|
|
+ *
|
|
|
+ * if decrypting (with authcheck), or either one of src_nents or dst_nents
|
|
|
+ * is greater than 1, an integrity check value is concatenated to the end
|
|
|
+ * of link_tbl data
|
|
|
+ */
|
|
|
+struct talitos_edesc {
|
|
|
+ int src_nents;
|
|
|
+ int dst_nents;
|
|
|
+ bool icv_ool;
|
|
|
+ dma_addr_t iv_dma;
|
|
|
+ int dma_len;
|
|
|
+ dma_addr_t dma_link_tbl;
|
|
|
+ struct talitos_desc desc;
|
|
|
+ union {
|
|
|
+ struct talitos_ptr link_tbl[0];
|
|
|
+ u8 buf[0];
|
|
|
+ };
|
|
|
+};
|
|
|
+
|
|
|
/**
|
|
|
* talitos_request - descriptor submission request
|
|
|
* @desc: descriptor pointer (kernel virtual)
|