crypto: engine - support for batch requests
[sfrench/cifs-2.6.git] / include / crypto / engine.h
index b92d7ff1528a81f3e489ca20d35812375bb41b8f..3f06e40d063a6efdf9951d4e499a0979a8ba7812 100644 (file)
@@ -37,6 +37,8 @@
  * @unprepare_crypt_hardware: there are currently no more requests on the
  * queue so the subsystem notifies the driver that it may relax the
  * hardware by issuing this call
+ * @do_batch_requests: execute a batch of requests. Depends on multiple
+ * requests support.
  * @kworker: kthread worker struct for request pump
  * @pump_requests: work struct for scheduling work to the request pump
  * @priv_data: the engine private data
@@ -59,6 +61,8 @@ struct crypto_engine {
 
        int (*prepare_crypt_hardware)(struct crypto_engine *engine);
        int (*unprepare_crypt_hardware)(struct crypto_engine *engine);
+       int (*do_batch_requests)(struct crypto_engine *engine);
+
 
        struct kthread_worker           *kworker;
        struct kthread_work             pump_requests;
@@ -107,6 +111,7 @@ int crypto_engine_stop(struct crypto_engine *engine);
 struct crypto_engine *crypto_engine_alloc_init(struct device *dev, bool rt);
 struct crypto_engine *crypto_engine_alloc_init_and_set(struct device *dev,
                                                       bool retry_support,
+                                                      int (*cbk_do_batch)(struct crypto_engine *engine),
                                                       bool rt, int qlen);
 int crypto_engine_exit(struct crypto_engine *engine);