Signed-off-by: Taras Kondratiuk <taras.kondrat...@linaro.org>
---
 .../linux-generic/include/odp_crypto_internal.h    |  1 +
 platform/linux-generic/odp_crypto.c                | 28 +++++++++++++++++-----
 2 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/platform/linux-generic/include/odp_crypto_internal.h 
b/platform/linux-generic/include/odp_crypto_internal.h
index 04db333..6ecfe80 100644
--- a/platform/linux-generic/include/odp_crypto_internal.h
+++ b/platform/linux-generic/include/odp_crypto_internal.h
@@ -69,6 +69,7 @@ typedef struct odp_crypto_generic_op_result {
        uint32_t magic;
        odp_crypto_compl_status_t cipher;
        odp_crypto_compl_status_t auth;
+       void* op_context;
 } odp_crypto_generic_op_result_t;
 
 /**
diff --git a/platform/linux-generic/odp_crypto.c 
b/platform/linux-generic/odp_crypto.c
index a2d4ab8..e605d59 100644
--- a/platform/linux-generic/odp_crypto.c
+++ b/platform/linux-generic/odp_crypto.c
@@ -446,17 +446,33 @@ odp_crypto_get_operation_compl_status(odp_buffer_t 
completion_event,
 
 
 void
-odp_crypto_set_operation_compl_ctx(odp_buffer_t completion_event ODP_UNUSED,
-                                  void *ctx ODP_UNUSED)
+odp_crypto_set_operation_compl_ctx(odp_buffer_t completion_event,
+                                  void *ctx)
 {
-       ODP_UNIMPLEMENTED();
+       odp_crypto_generic_op_result_t *result;
+
+       result = get_op_result_from_buffer(completion_event);
+       /*
+        * Completion event magic can't be checked here, because it is filled
+        * later in odp_crypto_operation() function.
+        */
+       ODP_ASSERT(odp_buffer_type(completion_event == ODP_BUFFER_TYPE_PACKET),
+                       "Completion is not a packet");
+
+       result->op_context = ctx;
 }
 
 void
-*odp_crypto_get_operation_compl_ctx(odp_buffer_t completion_event ODP_UNUSED)
+*odp_crypto_get_operation_compl_ctx(odp_buffer_t completion_event)
 {
-       ODP_UNIMPLEMENTED();
-       return NULL;
+       odp_crypto_generic_op_result_t *result;
+
+       result = get_op_result_from_buffer(completion_event);
+       ODP_ASSERT(OP_RESULT_MAGIC == result->magic, "Bad completion magic");
+       ODP_ASSERT(odp_buffer_type(completion_event == ODP_BUFFER_TYPE_PACKET),
+                       "Completion is not a packet");
+
+       return result->op_context;
 }
 
 odp_packet_t
-- 
1.9.1


_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to