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