blob: 4a4a16cb21947ddf468009cc91e1b19965875185 [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
Gabor Toth3db0e252025-03-11 14:46:05 +010046 .. Notification interfaces ..
47 + ffa_notification_bind()
48 + ffa_notification_unbind()
49 + ffa_notification_set()
50 + ffa_notification_get()
51
Julian Halle76ade82020-11-25 03:07:21 +010052 .. Interrupt handler definition ..
53 + ffa_interrupt_handler()
54 }
55
56 class ffa_memory_descriptors {
57 .. Transaction buffer handling ..
58 + ffa_init_mem_transaction_buffer()
59
60 .. Transaction descriptor ..
61 + ffa_init_mem_transaction_desc()
62 + ffa_get_mem_transaction_desc()
63
64 .. Memory access descriptor ..
65 + ffa_reserve_mem_access_desc()
66 + ffa_add_mem_access_desc()
67 + ffa_get_mem_access_desc_count()
68 + ffa_get_mem_access_desc()
69
70 .. Memory region ..
71 + ffa_add_memory_region()
72 + ffa_get_memory_region()
73 }
74}
75
76package "SP layer" {
77 class sp_rxtx {
78 .. RXTX buffer handling ..
79 + sp_rxtx_buffer_map()
80 + sp_rxtx_buffer_unmap()
81 + sp_rxtx_buffer_alignment_boundary_get()
82 + sp_rxtx_buffer_rx_get()
83 + sp_rxtx_buffer_tx_get()
84 }
85
86 class sp_memory_management {
87 .. Donate ..
88 + sp_memory_donate()
89 + sp_memory_donate_dynamic()
90 + sp_memory_donate_dynamic_is_supported()
91
92 .. Lend ..
93 + sp_memory_lend()
94 + sp_memory_lend_dynamic()
95 + sp_memory_lend_dynamic_is_supported()
96
97 .. Share ..
98 + sp_memory_share()
99 + sp_memory_share_dynamic()
100 + sp_memory_share_dynamic_is_supported()
101
102 .. Retrieve ..
103 + sp_memory_retrieve()
104 + sp_memory_retrieve_dynamic()
105 + sp_memory_retrieve_dynamic_is_supported()
106
107 .. Relinquish ..
108 + sp_memory_relinquish()
109
110 .. Reclaim ..
111 + sp_memory_reclaim()
112 }
113}
114
115
116ffa_api -left-> ffa_internal_api
117
118ffa_api -[hidden]-> ffa_memory_descriptors
119
120sp_rxtx -left-> ffa_api
121sp_memory_management --> ffa_api
122sp_memory_management -left-> ffa_memory_descriptors
123sp_memory_management -up-> sp_rxtx
124
125@enduml