blob: 71cadaa277df5a98d078191a95bae07e4c01754b [file] [log] [blame]
Julian Hallead5b622021-11-23 17:31:07 +01001/*
2 * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef SMM_GATEWAY_H
8#define SMM_GATEWAY_H
9
10#include <rpc/common/endpoint/rpc_interface.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16/**
17 * \brief Factory method for constructing an smm_gateway
18 *
19 * A common factory method for constructing an smm_gateway. The gateway
20 * presents a set of UEFI SMM service interfaces via the returned
21 * rpc_interface. An environment specific initializer calls this function
22 * to construct the environment independent smm_gateway provider.
23 *
24 * @param[in] owner_id The id of the owning security domain (e.g. partition id)
25 *
26 * \return An rpc_interface or NULL on failure
27 */
28struct rpc_interface *smm_gateway_create(
29 uint32_t owner_id);
30
31#ifdef __cplusplus
32} /* extern "C" */
33#endif
34
35#endif /* SMM_GATEWAY_H */