aboutsummaryrefslogtreecommitdiff
path: root/components/service/secure_storage/frontend/secure_storage_provider/secure_storage_provider.h
diff options
context:
space:
mode:
Diffstat (limited to 'components/service/secure_storage/frontend/secure_storage_provider/secure_storage_provider.h')
-rw-r--r--components/service/secure_storage/frontend/secure_storage_provider/secure_storage_provider.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/components/service/secure_storage/frontend/secure_storage_provider/secure_storage_provider.h b/components/service/secure_storage/frontend/secure_storage_provider/secure_storage_provider.h
new file mode 100644
index 000000000..65e49da89
--- /dev/null
+++ b/components/service/secure_storage/frontend/secure_storage_provider/secure_storage_provider.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef SECURE_STORAGE_PROVIDER_H
+#define SECURE_STORAGE_PROVIDER_H
+
+#include <service/common/provider/service_provider.h>
+#include <service/secure_storage/backend/storage_backend.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief A secure storage service provider
+ *
+ * Implements an RPC interface that realizes the secure storage service.
+ * Acts as a storage frontend that may be paired with any storage backend.
+ */
+struct secure_storage_provider {
+ struct service_provider base_provider;
+ struct storage_backend *backend;
+};
+
+struct rpc_interface *secure_storage_provider_init(struct secure_storage_provider *context,
+ struct storage_backend *backend);
+
+void secure_storage_provider_deinit(struct secure_storage_provider *context);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SECURE_STORAGE_PROVIDER_H */