blob: 4dcb59e3ef97103217b1ed12161b67eeb508fcf1 [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
Imre Kis64721422023-07-28 15:18:30 +020010#include "rpc/common/endpoint/rpc_service_interface.h"
Julian Hallead5b622021-11-23 17:31:07 +010011
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 */
Imre Kis64721422023-07-28 15:18:30 +020028struct rpc_service_interface *smm_gateway_create(uint32_t owner_id);
Julian Hallead5b622021-11-23 17:31:07 +010029
30#ifdef __cplusplus
31} /* extern "C" */
32#endif
33
34#endif /* SMM_GATEWAY_H */