xref: /linux/drivers/crypto/ccree/cc_request_mgr.h (revision 48dea9a700c8728cc31a1dd44588b97578de86ee)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (C) 2012-2019 ARM Limited (or its affiliates). */
3 
4 /* \file cc_request_mgr.h
5  * Request Manager
6  */
7 
8 #ifndef __REQUEST_MGR_H__
9 #define __REQUEST_MGR_H__
10 
11 #include "cc_hw_queue_defs.h"
12 
13 int cc_req_mgr_init(struct cc_drvdata *drvdata);
14 
15 /**
16  * cc_send_request() - Enqueue caller request to crypto hardware.
17  *
18  * @drvdata: Associated device driver context
19  * @cc_req: The request to enqueue
20  * @desc: The crypto sequence
21  * @len: The crypto sequence length
22  * @req: Asynchronous crypto request
23  *
24  * Return:
25  * Returns -EINPROGRESS or error
26  */
27 int cc_send_request(struct cc_drvdata *drvdata, struct cc_crypto_req *cc_req,
28 		    struct cc_hw_desc *desc, unsigned int len,
29 		    struct crypto_async_request *req);
30 
31 int cc_send_sync_request(struct cc_drvdata *drvdata,
32 			 struct cc_crypto_req *cc_req, struct cc_hw_desc *desc,
33 			 unsigned int len);
34 
35 int send_request_init(struct cc_drvdata *drvdata, struct cc_hw_desc *desc,
36 		      unsigned int len);
37 
38 void complete_request(struct cc_drvdata *drvdata);
39 
40 void cc_req_mgr_fini(struct cc_drvdata *drvdata);
41 
42 #endif /*__REQUEST_MGR_H__*/
43