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