aboutsummaryrefslogtreecommitdiff
path: root/docs/uml/libsp_functions.puml
diff options
context:
space:
mode:
Diffstat (limited to 'docs/uml/libsp_functions.puml')
-rw-r--r--docs/uml/libsp_functions.puml118
1 files changed, 118 insertions, 0 deletions
diff --git a/docs/uml/libsp_functions.puml b/docs/uml/libsp_functions.puml
new file mode 100644
index 000000000..b46cc01ec
--- /dev/null
+++ b/docs/uml/libsp_functions.puml
@@ -0,0 +1,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