blob: 59366e4ea3f09705e6f4d35cac86d4e8ec829efe [file] [log] [blame]
Imre Kisca48b872023-10-17 18:32:01 +02001/*
2 * Copyright (c) 2023, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef RPMB_PROVIDER_H_
8#define RPMB_PROVIDER_H_
9
10#include "service/common/provider/service_provider.h"
11#include "service/rpmb/backend/rpmb_backend.h"
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17/**
18 * \brief RPMB service provider
19 */
20struct rpmb_provider {
21 struct service_provider base_provider;
22 struct rpmb_backend *backend;
23};
24
25/**
26 * \brief Initializes the RPMB service provider
27 *
28 * \param context[in] Provider context
29 * \param backend[in] RPMB backend
30 * \param service_uuid[in] Service UUID
31 * \return struct rpc_service_interface* RPC service interface or NULL on error
32 */
33struct rpc_service_interface *rpmb_provider_init(struct rpmb_provider *context,
34 struct rpmb_backend *backend,
35 const struct rpc_uuid *service_uuid);
36
37/**
38 * \brief Deinitializes the RPMB service provider
39 *
40 * \param context[in] Provider context
41 */
42void rpmb_provider_deinit(struct rpmb_provider *context);
43
44#ifdef __cplusplus
45}
46#endif
47
48#endif /* RPMB_PROVIDER_H_ */