Support modular extension of service provider capabilities
To allow a service provider to be scalable in a modular way, the
existing chain-of-resopnsibility facilty provided by the base
service_provider is exploited to allow a set of sub providers
to extend the capabilities of the base provider. The first
use of this will be to support modular extension of the crypto
service provider.
Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: I4369d7a9cb99e54403768a9e3459b0ba1ac8f812
diff --git a/components/service/crypto/provider/crypto_provider.c b/components/service/crypto/provider/crypto_provider.c
index c3d55b5..6777fd2 100644
--- a/components/service/crypto/provider/crypto_provider.c
+++ b/components/service/crypto/provider/crypto_provider.c
@@ -75,6 +75,12 @@
context->serializers[encoding] = serializer;
}
+void crypto_provider_extend(struct crypto_provider *context,
+ struct service_provider *sub_provider)
+{
+ service_provider_extend(&context->base_provider, sub_provider);
+}
+
static const struct crypto_provider_serializer* get_crypto_serializer(void *context,
const struct call_req *req)
{