blob: e9e49fc46f08bfa9a0797c103b2ae79aaf88713e [file] [log] [blame]
Soby Mathewb4c6df42022-11-09 11:13:29 +00001/*
2 * SPDX-License-Identifier: BSD-3-Clause
3 * SPDX-FileCopyrightText: Copyright TF-RMM Contributors.
4 */
5
6#ifndef SMC_HANDLER_H
7#define SMC_HANDLER_H
8
9#include <smc.h>
10
11unsigned long smc_version(void);
12
13void smc_read_feature_register(unsigned long index,
14 struct smc_result *ret_struct);
15
16unsigned long smc_data_create(unsigned long data_addr,
17 unsigned long rd_addr,
18 unsigned long map_addr,
19 unsigned long src_addr,
20 unsigned long flags);
21
22unsigned long smc_data_create_unknown(unsigned long data_addr,
23 unsigned long rd_addr,
24 unsigned long map_addr);
25
26unsigned long smc_data_destroy(unsigned long rd_addr,
27 unsigned long map_addr);
28
29unsigned long smc_granule_delegate(unsigned long addr);
30
31unsigned long smc_granule_undelegate(unsigned long addr);
32
33unsigned long smc_realm_activate(unsigned long rd_addr);
34
35unsigned long smc_realm_create(unsigned long rd_addr,
36 unsigned long realm_params_addr);
37
38unsigned long smc_realm_destroy(unsigned long rd_addr);
39
40unsigned long smc_rec_create(unsigned long rec_addr,
41 unsigned long rd_addr,
42 unsigned long rec_params_addr);
43
44unsigned long smc_rec_destroy(unsigned long rec_addr);
45
46unsigned long smc_rec_enter(unsigned long rec_addr,
47 unsigned long rec_run_addr);
48
49void smc_rec_aux_count(unsigned long rd_addr,
50 struct smc_result *ret_struct);
51
52unsigned long smc_rtt_create(unsigned long rtt_addr,
53 unsigned long rd_addr,
54 unsigned long map_addr,
55 unsigned long ulevel);
56
57unsigned long smc_rtt_destroy(unsigned long rtt_addr,
58 unsigned long rd_addr,
59 unsigned long map_addr,
60 unsigned long ulevel);
61
62unsigned long smc_rtt_fold(unsigned long rtt_addr,
63 unsigned long rd_addr,
64 unsigned long map_addr,
65 unsigned long ulevel);
66
67unsigned long smc_rtt_map_unprotected(unsigned long rd_addr,
68 unsigned long map_addr,
69 unsigned long ulevel,
70 unsigned long s2tte);
71
72unsigned long smc_rtt_unmap_unprotected(unsigned long rd_addr,
73 unsigned long map_addr,
74 unsigned long ulevel);
75
76void smc_rtt_read_entry(unsigned long rd_addr,
77 unsigned long map_addr,
78 unsigned long ulevel,
79 struct smc_result *ret_struct);
80
81unsigned long smc_psci_complete(unsigned long calling_rec_addr,
82 unsigned long target_rec_addr);
83
84unsigned long smc_rtt_init_ripas(unsigned long rd_addr,
85 unsigned long map_addr,
86 unsigned long ulevel);
87
88unsigned long smc_rtt_set_ripas(unsigned long rd_addr,
89 unsigned long rec_addr,
90 unsigned long map_addr,
91 unsigned long ulevel,
92 unsigned long uripas);
93
94
95#endif /* SMC_HANDLER_H */