1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright(c) 2007-2022 Intel Corporation */
3 /* $FreeBSD$ */
4 
5 /**
6  ******************************************************************************
7  * @file lac_sym_queue.h
8  *
9  * @defgroup LacSymQueue Symmetric request queueing functions
10  *
11  * @ingroup LacSym
12  *
13  * Function prototypes for sending/queuing symmetric requests
14  *****************************************************************************/
15 
16 #ifndef LAC_SYM_QUEUE_H
17 #define LAC_SYM_QUEUE_H
18 
19 #include "cpa.h"
20 #include "lac_session.h"
21 #include "lac_sym.h"
22 
23 /**
24 *******************************************************************************
25 * @ingroup LacSymQueue
26 *      Send a request message to the QAT, or queue it if necessary
27 *
28 * @description
29 *      This function will send a request message to the QAT.  However, if a
30 *      blocking condition exists on the session (e.g. partial packet in flight,
31 *      precompute in progress), then the message will instead be pushed on to
32 *      the request queue for the session and will be sent later to the QAT
33 *      once the blocking condition is cleared.
34 *
35 * @param[in]  instanceHandle       Handle for instance of QAT
36 * @param[in]  pRequest             Pointer to request cookie
37 * @param[out] pSessionDesc         Pointer to session descriptor
38 *
39 *
40 * @retval CPA_STATUS_SUCCESS        Success
41 * @retval CPA_STATUS_FAIL           Function failed.
42 * @retval CPA_STATUS_RESOURCE       Problem Acquiring system resource
43 * @retval CPA_STATUS_RETRY          Failed to send message to QAT due to queue
44 *                                   full condition
45 *
46 *****************************************************************************/
47 CpaStatus LacSymQueue_RequestSend(const CpaInstanceHandle instanceHandle,
48 				  lac_sym_bulk_cookie_t *pRequest,
49 				  lac_session_desc_t *pSessionDesc);
50 
51 #endif /* LAC_SYM_QUEUE_H */
52