brintos

brintos / linux-shallow public Read only

0
0
Text · 3.2 KiB · 404e32c Raw
124 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/* Copyright(c) 2022 Intel Corporation */3#ifndef _QAT_COMP_REQ_H_4#define _QAT_COMP_REQ_H_5 6#include "icp_qat_fw_comp.h"7 8#define QAT_COMP_REQ_SIZE (sizeof(struct icp_qat_fw_comp_req))9#define QAT_COMP_CTX_SIZE (QAT_COMP_REQ_SIZE * 2)10 11static inline void qat_comp_create_req(void *ctx, void *req, u64 src, u32 slen,12				       u64 dst, u32 dlen, u64 opaque)13{14	struct icp_qat_fw_comp_req *fw_tmpl = ctx;15	struct icp_qat_fw_comp_req *fw_req = req;16	struct icp_qat_fw_comp_req_params *req_pars = &fw_req->comp_pars;17 18	memcpy(fw_req, fw_tmpl, sizeof(*fw_req));19	fw_req->comn_mid.src_data_addr = src;20	fw_req->comn_mid.src_length = slen;21	fw_req->comn_mid.dest_data_addr = dst;22	fw_req->comn_mid.dst_length = dlen;23	fw_req->comn_mid.opaque_data = opaque;24	req_pars->comp_len = slen;25	req_pars->out_buffer_sz = dlen;26}27 28static inline void qat_comp_override_dst(void *req, u64 dst, u32 dlen)29{30	struct icp_qat_fw_comp_req *fw_req = req;31	struct icp_qat_fw_comp_req_params *req_pars = &fw_req->comp_pars;32 33	fw_req->comn_mid.dest_data_addr = dst;34	fw_req->comn_mid.dst_length = dlen;35	req_pars->out_buffer_sz = dlen;36}37 38static inline void qat_comp_create_compression_req(void *ctx, void *req,39						   u64 src, u32 slen,40						   u64 dst, u32 dlen,41						   u64 opaque)42{43	qat_comp_create_req(ctx, req, src, slen, dst, dlen, opaque);44}45 46static inline void qat_comp_create_decompression_req(void *ctx, void *req,47						     u64 src, u32 slen,48						     u64 dst, u32 dlen,49						     u64 opaque)50{51	struct icp_qat_fw_comp_req *fw_tmpl = ctx;52 53	fw_tmpl++;54	qat_comp_create_req(fw_tmpl, req, src, slen, dst, dlen, opaque);55}56 57static inline u32 qat_comp_get_consumed_ctr(void *resp)58{59	struct icp_qat_fw_comp_resp *qat_resp = resp;60 61	return qat_resp->comp_resp_pars.input_byte_counter;62}63 64static inline u32 qat_comp_get_produced_ctr(void *resp)65{66	struct icp_qat_fw_comp_resp *qat_resp = resp;67 68	return qat_resp->comp_resp_pars.output_byte_counter;69}70 71static inline u32 qat_comp_get_produced_adler32(void *resp)72{73	struct icp_qat_fw_comp_resp *qat_resp = resp;74 75	return qat_resp->comp_resp_pars.crc.legacy.curr_adler_32;76}77 78static inline u64 qat_comp_get_opaque(void *resp)79{80	struct icp_qat_fw_comp_resp *qat_resp = resp;81 82	return qat_resp->opaque_data;83}84 85static inline s8 qat_comp_get_cmp_err(void *resp)86{87	struct icp_qat_fw_comp_resp *qat_resp = resp;88 89	return qat_resp->comn_resp.comn_error.cmp_err_code;90}91 92static inline s8 qat_comp_get_xlt_err(void *resp)93{94	struct icp_qat_fw_comp_resp *qat_resp = resp;95 96	return qat_resp->comn_resp.comn_error.xlat_err_code;97}98 99static inline s8 qat_comp_get_cmp_status(void *resp)100{101	struct icp_qat_fw_comp_resp *qat_resp = resp;102	u8 stat_filed = qat_resp->comn_resp.comn_status;103 104	return ICP_QAT_FW_COMN_RESP_CMP_STAT_GET(stat_filed);105}106 107static inline s8 qat_comp_get_xlt_status(void *resp)108{109	struct icp_qat_fw_comp_resp *qat_resp = resp;110	u8 stat_filed = qat_resp->comn_resp.comn_status;111 112	return ICP_QAT_FW_COMN_RESP_XLAT_STAT_GET(stat_filed);113}114 115static inline u8 qat_comp_get_cmp_cnv_flag(void *resp)116{117	struct icp_qat_fw_comp_resp *qat_resp = resp;118	u8 flags = qat_resp->comn_resp.hdr_flags;119 120	return ICP_QAT_FW_COMN_HDR_CNV_FLAG_GET(flags);121}122 123#endif124