'------------------------------------------------------------------------------- ' 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