18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/* Copyright (C) 2012-2019 ARM Limited (or its affiliates). */
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ci/* \file cc_request_mgr.h
58c2ecf20Sopenharmony_ci * Request Manager
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#ifndef __REQUEST_MGR_H__
98c2ecf20Sopenharmony_ci#define __REQUEST_MGR_H__
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#include "cc_hw_queue_defs.h"
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ciint cc_req_mgr_init(struct cc_drvdata *drvdata);
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci/**
168c2ecf20Sopenharmony_ci * cc_send_request() - Enqueue caller request to crypto hardware.
178c2ecf20Sopenharmony_ci *
188c2ecf20Sopenharmony_ci * @drvdata: Associated device driver context
198c2ecf20Sopenharmony_ci * @cc_req: The request to enqueue
208c2ecf20Sopenharmony_ci * @desc: The crypto sequence
218c2ecf20Sopenharmony_ci * @len: The crypto sequence length
228c2ecf20Sopenharmony_ci * @req: Asynchronous crypto request
238c2ecf20Sopenharmony_ci *
248c2ecf20Sopenharmony_ci * Return:
258c2ecf20Sopenharmony_ci * Returns -EINPROGRESS or error
268c2ecf20Sopenharmony_ci */
278c2ecf20Sopenharmony_ciint cc_send_request(struct cc_drvdata *drvdata, struct cc_crypto_req *cc_req,
288c2ecf20Sopenharmony_ci		    struct cc_hw_desc *desc, unsigned int len,
298c2ecf20Sopenharmony_ci		    struct crypto_async_request *req);
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ciint cc_send_sync_request(struct cc_drvdata *drvdata,
328c2ecf20Sopenharmony_ci			 struct cc_crypto_req *cc_req, struct cc_hw_desc *desc,
338c2ecf20Sopenharmony_ci			 unsigned int len);
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciint send_request_init(struct cc_drvdata *drvdata, struct cc_hw_desc *desc,
368c2ecf20Sopenharmony_ci		      unsigned int len);
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_civoid complete_request(struct cc_drvdata *drvdata);
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_civoid cc_req_mgr_fini(struct cc_drvdata *drvdata);
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci#endif /*__REQUEST_MGR_H__*/
43