Linux-libre 5.4.47-gnu
[librecmc/linux-libre.git] / drivers / crypto / hisilicon / sgl.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (c) 2019 HiSilicon Limited. */
3 #ifndef HISI_ACC_SGL_H
4 #define HISI_ACC_SGL_H
5
6 struct hisi_acc_sgl_pool {
7         struct hisi_acc_hw_sgl *sgl;
8         dma_addr_t sgl_dma;
9         size_t size;
10         u32 count;
11         size_t sgl_size;
12 };
13
14 struct hisi_acc_hw_sgl *
15 hisi_acc_sg_buf_map_to_hw_sgl(struct device *dev,
16                               struct scatterlist *sgl,
17                               struct hisi_acc_sgl_pool *pool,
18                               u32 index, dma_addr_t *hw_sgl_dma);
19 void hisi_acc_sg_buf_unmap(struct device *dev, struct scatterlist *sgl,
20                            struct hisi_acc_hw_sgl *hw_sgl);
21 int hisi_acc_create_sgl_pool(struct device *dev, struct hisi_acc_sgl_pool *pool,
22                              u32 count);
23 void hisi_acc_free_sgl_pool(struct device *dev, struct hisi_acc_sgl_pool *pool);
24 #endif