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