1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2#ifndef _UAPI_HISI_QM_H
3#define _UAPI_HISI_QM_H
4
5#include <linux/types.h>
6
7/**
8 * struct hisi_qp_ctx - User data for hisi qp.
9 * @id: qp_index return to user space
10 * @qc_type: Accelerator algorithm type
11 */
12struct hisi_qp_ctx {
13	__u16 id;
14	__u16 qc_type;
15};
16
17/**
18 * struct hisi_qp_info - User data for hisi qp.
19 * @sqe_size: Submission queue element size
20 * @sq_depth: The number of sqe
21 * @cq_depth: The number of cqe
22 * @reserved: Reserved data
23 */
24struct hisi_qp_info {
25	__u32 sqe_size;
26	__u16 sq_depth;
27	__u16 cq_depth;
28	__u64 reserved;
29};
30
31#define HISI_QM_API_VER_BASE "hisi_qm_v1"
32#define HISI_QM_API_VER2_BASE "hisi_qm_v2"
33#define HISI_QM_API_VER3_BASE "hisi_qm_v3"
34
35/* UACCE_CMD_QM_SET_QP_CTX: Set qp algorithm type */
36#define UACCE_CMD_QM_SET_QP_CTX	_IOWR('H', 10, struct hisi_qp_ctx)
37/* UACCE_CMD_QM_SET_QP_INFO: Set qp depth and BD size */
38#define UACCE_CMD_QM_SET_QP_INFO _IOWR('H', 11, struct hisi_qp_info)
39#endif
40