1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright(c) 2007-2022 Intel Corporation */
3 /* $FreeBSD$ */
4 /**
5 *****************************************************************************
6 * @file sal_qat_cmn_msg.c
7 *
8 * @ingroup SalQatCmnMessage
9 *
10 * @description
11 * Implementation for populating the common (across services) QAT structures.
12 *
13 *****************************************************************************/
14 #ifndef SAL_QAT_CMN_MSG_H
15 #define SAL_QAT_CMN_MSG_H
16 /*
17 *******************************************************************************
18 * Include public/global header files
19 *******************************************************************************
20 */
21 #include "cpa.h"
22
23 /*
24 *******************************************************************************
25 * Include private header files
26 *******************************************************************************
27 */
28 #include "lac_common.h"
29 #include "icp_accel_devices.h"
30 #include "qat_utils.h"
31
32 #include "cpa_cy_sym.h"
33 #include "lac_mem.h"
34 #include "lac_mem_pools.h"
35 #include "lac_list.h"
36 #include "icp_adf_transport.h"
37 #include "icp_adf_transport_dp.h"
38
39 #include "icp_qat_hw.h"
40 #include "icp_qat_fw.h"
41 #include "icp_qat_fw_la.h"
42
43 /**
44 ******************************************************************************
45 * @ingroup SalQatCmnMessage
46 * content descriptor info structure
47 *
48 * @description
49 * This structure contains generic information on the content descriptor
50 *
51 *****************************************************************************/
52 typedef struct sal_qat_content_desc_info_s {
53 CpaPhysicalAddr hardwareSetupBlockPhys;
54 /**< Physical address of hardware setup block of the content descriptor
55 */
56 void *pData;
57 /**< Virtual Pointer to the hardware setup block of the content
58 * descriptor */
59 Cpa8U hwBlkSzQuadWords;
60 /**< Hardware Setup Block size in quad words */
61 } sal_qat_content_desc_info_t;
62
63 /**
64 *******************************************************************************
65 * @ingroup SalQatCmnMessage
66 * Lookaside response handler function type
67 *
68 * @description
69 * This type definition specifies the function prototype for handling the
70 * response messages for a specific symmetric operation
71 *
72 * @param[in] lacCmdId Look Aside Command ID
73 *
74 * @param[in] pOpaqueData Pointer to Opaque Data
75 *
76 * @param[in] cmnRespFlags Common Response flags
77 *
78 * @return void
79 *
80 *****************************************************************************/
81 typedef void (*sal_qat_resp_handler_func_t)(icp_qat_fw_la_cmd_id_t lacCmdId,
82 void *pOpaqueData,
83 icp_qat_fw_comn_flags cmnRespFlags);
84
85 /********************************************************************
86 * @ingroup SalQatMsg_CmnHdrWrite
87 *
88 * @description
89 * This function fills in all fields in the icp_qat_fw_comn_req_hdr_t
90 * section of the Request Msg. Build LW0 + LW1 -
91 * service part of the request
92 *
93 * @param[in] pMsg Pointer to 128B Request Msg buffer
94 * @param[in] serviceType type of service request
95 * @param[in] serviceCmdId id for the type of service request
96 * @param[in] cmnFlags common request flags
97 * @param[in] serviceCmdFlags service command flahgs
98 *
99 * @return
100 * None
101 *
102 *****************************************/
103 void SalQatMsg_CmnHdrWrite(icp_qat_fw_comn_req_t *pMsg,
104 icp_qat_fw_comn_request_id_t serviceType,
105 uint8_t serviceCmdId,
106 icp_qat_fw_comn_flags cmnFlags,
107 icp_qat_fw_serv_specif_flags serviceCmdFlags);
108
109 /********************************************************************
110 * @ingroup SalQatMsg_CmnMidWrite
111 *
112 * @description
113 * This function fills in all fields in the icp_qat_fw_comn_req_mid_t
114 * section of the Request Msg and the corresponding SGL/Flat flag
115 * in the Hdr.
116 *
117 * @param[in] pReq Pointer to 128B Request Msg buffer
118 * @param[in] pOpaqueData Pointer to opaque data used by callback
119 * @param[in] bufferFormat src and dst Buffers are either SGL or Flat
120 format
121 * @param[in] pSrcBuffer Address of source buffer
122 * @param[in] pDstBuffer Address of destination buffer
123 * @param[in] pSrcLength Length of source buffer
124 * @param[in] pDstLength Length of destination buffer
125 *
126
127 * @assumptions
128 * All fields in mid section are zero before fn is called
129
130 * @return
131 * None
132 *
133 *****************************************/
134 void SalQatMsg_CmnMidWrite(icp_qat_fw_la_bulk_req_t *pReq,
135 const void *pOpaqueData,
136 Cpa8U bufferFormat,
137 Cpa64U srcBuffer,
138 Cpa64U dstBuffer,
139 Cpa32U srcLength,
140 Cpa32U dstLength);
141
142 /********************************************************************
143 * @ingroup SalQatMsg_ContentDescHdrWrite
144 *
145 * @description
146 * This function fills in all fields in the
147 *icp_qat_fw_comn_req_hdr_cd_pars_t
148 * section of the Request Msg.
149 *
150 * @param[in] pMsg Pointer to 128B Request Msg buffer.
151 * @param[in] pContentDescInfo content descripter info.
152 *
153 * @return
154 * none
155 *
156 *****************************************/
157 void SalQatMsg_ContentDescHdrWrite(
158 icp_qat_fw_comn_req_t *pMsg,
159 const sal_qat_content_desc_info_t *pContentDescInfo);
160
161 /********************************************************************
162 * @ingroup SalQatMsg_CtrlBlkSetToReserved
163 *
164 * @description
165 * This function set the whole contrle block to a reserved state.
166 *
167 * @param[in] _pMsg Pointer to 128B Request Msg buffer.
168 *
169 * @return
170 * none
171 *
172 *****************************************/
173 void SalQatMsg_CtrlBlkSetToReserved(icp_qat_fw_comn_req_t *_pMsg);
174
175 /********************************************************************
176 * @ingroup SalQatMsg_transPutMsg
177 *
178 * @description
179 *
180 *
181 * @param[in] trans_handle
182 * @param[in] pqat_msg
183 * @param[in] size_in_lws
184 * @param[in] service
185 *
186 * @return
187 * CpaStatus
188 *
189 *****************************************/
190 CpaStatus SalQatMsg_transPutMsg(icp_comms_trans_handle trans_handle,
191 void *pqat_msg,
192 Cpa32U size_in_lws,
193 Cpa8U service);
194
195 /********************************************************************
196 * @ingroup SalQatMsg_updateQueueTail
197 *
198 * @description
199 *
200 *
201 * @param[in] trans_handle
202 *
203 *
204 * @return
205 * CpaStatus
206 *
207 *****************************************/
208 void SalQatMsg_updateQueueTail(icp_comms_trans_handle trans_hnd);
209 #endif
Cache object: f564a1f117d5374534ed0f249b45c0e8
|