blob: 538d57337c86113d9958cee15f74c31587e86cf8 [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()
Gabor Toth0d6eb662025-03-11 10:44:43 +010028 + ffa_yield()
Julian Halle76ade82020-11-25 03:07:21 +010029
30 .. Messaging interfaces ..
31 + ffa_msg_send_direct_req()
32 + ffa_msg_send_direct_resp()
33
34 .. Memory management interfaces ..
35 + ffa_mem_donate()
36 + ffa_mem_donate_rxtx()
37 + ffa_mem_lend()
38 + ffa_mem_lend_rxtx()
39 + ffa_mem_share()
40 + ffa_mem_share_rxtx()
41 + ffa_mem_retrieve_req()
42 + ffa_mem_retrieve_req_rxtx()
43 + ffa_mem_relinquish()
44 + ffa_mem_reclaim()
45
46 .. Interrupt handler definition ..
47 + ffa_interrupt_handler()
48 }
49
50 class ffa_memory_descriptors {
51 .. Transaction buffer handling ..
52 + ffa_init_mem_transaction_buffer()
53
54 .. Transaction descriptor ..
55 + ffa_init_mem_transaction_desc()
56 + ffa_get_mem_transaction_desc()
57
58 .. Memory access descriptor ..
59 + ffa_reserve_mem_access_desc()
60 + ffa_add_mem_access_desc()
61 + ffa_get_mem_access_desc_count()
62 + ffa_get_mem_access_desc()
63
64 .. Memory region ..
65 + ffa_add_memory_region()
66 + ffa_get_memory_region()
67 }
68}
69
70package "SP layer" {
71 class sp_rxtx {
72 .. RXTX buffer handling ..
73 + sp_rxtx_buffer_map()
74 + sp_rxtx_buffer_unmap()
75 + sp_rxtx_buffer_alignment_boundary_get()
76 + sp_rxtx_buffer_rx_get()
77 + sp_rxtx_buffer_tx_get()
78 }
79
80 class sp_memory_management {
81 .. Donate ..
82 + sp_memory_donate()
83 + sp_memory_donate_dynamic()
84 + sp_memory_donate_dynamic_is_supported()
85
86 .. Lend ..
87 + sp_memory_lend()
88 + sp_memory_lend_dynamic()
89 + sp_memory_lend_dynamic_is_supported()
90
91 .. Share ..
92 + sp_memory_share()
93 + sp_memory_share_dynamic()
94 + sp_memory_share_dynamic_is_supported()
95
96 .. Retrieve ..
97 + sp_memory_retrieve()
98 + sp_memory_retrieve_dynamic()
99 + sp_memory_retrieve_dynamic_is_supported()
100
101 .. Relinquish ..
102 + sp_memory_relinquish()
103
104 .. Reclaim ..
105 + sp_memory_reclaim()
106 }
107}
108
109
110ffa_api -left-> ffa_internal_api
111
112ffa_api -[hidden]-> ffa_memory_descriptors
113
114sp_rxtx -left-> ffa_api
115sp_memory_management --> ffa_api
116sp_memory_management -left-> ffa_memory_descriptors
117sp_memory_management -up-> sp_rxtx
118
119@enduml