blob: cb43e1132538e8a84e5ebf3257e7a3ed7fa8ead8 [file] [log] [blame]
Mate Toth-Pal2611c552023-02-28 10:28:32 +01001/*
2 * SPDX-License-Identifier: BSD-3-Clause
3 * SPDX-FileCopyrightText: Copyright TF-RMM Contributors.
4 */
5
6#include <host_rmi_wrappers.h>
7
8/* Declaring SMC handler */
9void handle_ns_smc(unsigned long function_id,
10 unsigned long arg0,
11 unsigned long arg1,
12 unsigned long arg2,
13 unsigned long arg3,
14 unsigned long arg4,
15 unsigned long arg5,
16 struct smc_result *ret);
17
18void host_rmi_granule_delegate(void *granule_address, struct smc_result *ret)
19{
20 handle_ns_smc(SMC_RMM_GRANULE_DELEGATE,
21 (uintptr_t)granule_address,
22 0, 0, 0, 0, 0,
23 ret);
24}
25
26void host_rmi_granule_undelegate(void *granule_address, struct smc_result *ret)
27{
28 handle_ns_smc(SMC_RMM_GRANULE_UNDELEGATE,
29 (uintptr_t)granule_address,
30 0, 0, 0, 0, 0,
31 ret);
32}
33
34void host_rmi_realm_create(void *rd, void *params_ptr, struct smc_result *ret)
35{
36 handle_ns_smc(SMC_RMM_REALM_CREATE,
37 (uintptr_t)rd,
38 (uintptr_t)params_ptr,
39 0, 0, 0, 0,
40 ret);
41}
42
43void host_rmi_realm_destroy(void *rd, struct smc_result *ret)
44{
45 handle_ns_smc(SMC_RMM_REALM_DESTROY,
46 (uintptr_t)rd,
47 0, 0, 0, 0, 0,
48 ret);
49}
50
51void host_rmi_rtt_create(void *rtt, void *rd, void *ipa, unsigned int level, struct smc_result *ret)
52{
53 handle_ns_smc(SMC_RMM_RTT_CREATE,
54 (uintptr_t)rtt,
55 (uintptr_t)rd,
56 (uintptr_t)ipa,
57 level,
58 0, 0,
59 ret);
60}
61
62void host_rmi_rtt_destroy(void *rtt, void *rd, void *ipa,
63 unsigned int level, struct smc_result *ret)
64{
65 handle_ns_smc(SMC_RMM_RTT_DESTROY,
66 (uintptr_t)rtt,
67 (uintptr_t)rd,
68 (uintptr_t)ipa,
69 level,
70 0, 0,
71 ret);
72}
73
74void host_rmi_rec_aux_count(void *rd, struct smc_result *ret)
75{
76 handle_ns_smc(SMC_RMM_REC_AUX_COUNT,
77 (uintptr_t)rd,
78 0, 0, 0, 0, 0,
79 ret);
80}
81
82void host_rmi_rec_create(void *rec, void *rd, void *params_ptr, struct smc_result *ret)
83{
84 handle_ns_smc(SMC_RMM_REC_CREATE,
85 (uintptr_t)rec,
86 (uintptr_t)rd,
87 (uintptr_t)params_ptr,
88 0, 0, 0,
89 ret);
90}
91
92void host_rmi_rec_destroy(void *rec, struct smc_result *ret)
93{
94 handle_ns_smc(SMC_RMM_REC_DESTROY,
95 (uintptr_t)rec,
96 0, 0, 0, 0, 0,
97 ret);
98}
99
100void host_rmi_realm_activate(void *rd, struct smc_result *ret)
101{
102 handle_ns_smc(SMC_RMM_REALM_ACTIVATE,
103 (uintptr_t)rd,
104 0, 0, 0, 0, 0,
105 ret);
106}
107
108void host_rmi_rec_enter(void *rec, void *run_ptr, struct smc_result *ret)
109{
110 handle_ns_smc(SMC_RMM_REC_ENTER,
111 (uintptr_t)rec,
112 (uintptr_t)run_ptr,
113 0, 0, 0, 0,
114 ret);
115}