blob: b46cc01ec5016eef40b4fd750383c0ca81e401c6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
'-------------------------------------------------------------------------------
' Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
'
' SPDX-License-Identifier: BSD-3-Clause
'
'-------------------------------------------------------------------------------
@startuml
class ffa_internal_api {
.. SVC call ..
+ ffa_svc()
}
package "FF-A layer" {
class ffa_api {
.. Setup and discovery interfaces ..
+ ffa_version()
+ ffa_features()
+ ffa_rx_release()
+ ffa_rxtx_map()
+ ffa_rxtx_unmap()
+ ffa_partition_info_get()
+ ffa_id_get()
.. CPU cycle management interfaces ..
+ ffa_msg_wait()
.. Messaging interfaces ..
+ ffa_msg_send_direct_req()
+ ffa_msg_send_direct_resp()
.. Memory management interfaces ..
+ ffa_mem_donate()
+ ffa_mem_donate_rxtx()
+ ffa_mem_lend()
+ ffa_mem_lend_rxtx()
+ ffa_mem_share()
+ ffa_mem_share_rxtx()
+ ffa_mem_retrieve_req()
+ ffa_mem_retrieve_req_rxtx()
+ ffa_mem_relinquish()
+ ffa_mem_reclaim()
.. Interrupt handler definition ..
+ ffa_interrupt_handler()
}
class ffa_memory_descriptors {
.. Transaction buffer handling ..
+ ffa_init_mem_transaction_buffer()
.. Transaction descriptor ..
+ ffa_init_mem_transaction_desc()
+ ffa_get_mem_transaction_desc()
.. Memory access descriptor ..
+ ffa_reserve_mem_access_desc()
+ ffa_add_mem_access_desc()
+ ffa_get_mem_access_desc_count()
+ ffa_get_mem_access_desc()
.. Memory region ..
+ ffa_add_memory_region()
+ ffa_get_memory_region()
}
}
package "SP layer" {
class sp_rxtx {
.. RXTX buffer handling ..
+ sp_rxtx_buffer_map()
+ sp_rxtx_buffer_unmap()
+ sp_rxtx_buffer_alignment_boundary_get()
+ sp_rxtx_buffer_rx_get()
+ sp_rxtx_buffer_tx_get()
}
class sp_memory_management {
.. Donate ..
+ sp_memory_donate()
+ sp_memory_donate_dynamic()
+ sp_memory_donate_dynamic_is_supported()
.. Lend ..
+ sp_memory_lend()
+ sp_memory_lend_dynamic()
+ sp_memory_lend_dynamic_is_supported()
.. Share ..
+ sp_memory_share()
+ sp_memory_share_dynamic()
+ sp_memory_share_dynamic_is_supported()
.. Retrieve ..
+ sp_memory_retrieve()
+ sp_memory_retrieve_dynamic()
+ sp_memory_retrieve_dynamic_is_supported()
.. Relinquish ..
+ sp_memory_relinquish()
.. Reclaim ..
+ sp_memory_reclaim()
}
}
ffa_api -left-> ffa_internal_api
ffa_api -[hidden]-> ffa_memory_descriptors
sp_rxtx -left-> ffa_api
sp_memory_management --> ffa_api
sp_memory_management -left-> ffa_memory_descriptors
sp_memory_management -up-> sp_rxtx
@enduml
|