mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00

Add uml sequence and class diagram to illustrate the behavior of the storage abstraction layer. Change-Id: I338262729f8034cc3d3eea1d0ce19cca973a91bb Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
109 lines
1.6 KiB
Text
109 lines
1.6 KiB
Text
@startuml
|
|
|
|
package arm_io_storage {
|
|
|
|
class plat_io_policy {
|
|
dev_handle : uintptr_t*
|
|
image_spec : uintptr_t
|
|
{abstract} check() : fctptr
|
|
}
|
|
|
|
class FIP_IMAGE_ID {
|
|
memmap_dev_handle
|
|
fip_block_spec
|
|
open_memmap()
|
|
}
|
|
|
|
class BL2_IMAGE_ID{
|
|
fip_dev_handle
|
|
bl2_uuid_spec
|
|
open_fip()
|
|
}
|
|
|
|
class xxx_IMAGE_ID{
|
|
fip_dev_handle
|
|
xxx_uuid_spec
|
|
open_fip()
|
|
}
|
|
|
|
class arm_io_storage {
|
|
fip_dev_con : io_dev_connector_t*
|
|
fip_dev_handle : uintptr_t
|
|
memmap_dev_con : io_dev_connector_t*
|
|
memmap_dev_handle : uintptr_t
|
|
|
|
fip_block_spec : io_block_spec_t
|
|
|
|
policies : plat_io_policy[1..*]
|
|
|
|
-open_fip()
|
|
-open_memmap()
|
|
|
|
+arm_io_setup()
|
|
+plat_get_image_source()
|
|
}
|
|
|
|
FIP_IMAGE_ID -up-|> plat_io_policy
|
|
BL2_IMAGE_ID -up-|> plat_io_policy
|
|
xxx_IMAGE_ID -up-|> plat_io_policy
|
|
|
|
arm_io_storage *-"1..*" plat_io_policy
|
|
}
|
|
|
|
package IO {
|
|
class io_storage {
|
|
io_dev_open()
|
|
io_dev_init()
|
|
io_dev_close()
|
|
|
|
.. synchronous operations ..
|
|
io_open()
|
|
io_seek()
|
|
io_size()
|
|
io_read()
|
|
io_write()
|
|
io_close()
|
|
|
|
io_register_device()
|
|
}
|
|
|
|
class io_fip {
|
|
register_io_dev_fip()
|
|
.. io_dev_funcs_t interface ..
|
|
fip_dev_funcs : io_dev_funcs_t
|
|
}
|
|
|
|
class io_memmap {
|
|
register_io_dev_memmap()
|
|
.. io_dev_funcs_t interface ..
|
|
memmap_dev_funcs : io_dev_funcs_t
|
|
}
|
|
|
|
interface io_driver {
|
|
io_entity_t
|
|
io_dev_info_t
|
|
|
|
.. io_dev_connector_t interface ..
|
|
dev_open()
|
|
|
|
.. io_dev_funcs_t interface ..
|
|
type()
|
|
open()
|
|
seek()
|
|
size()
|
|
read()
|
|
write()
|
|
close()
|
|
dev_init()
|
|
dev_close()
|
|
|
|
io_register_device()
|
|
}
|
|
}
|
|
arm_io_storage .. io_driver
|
|
arm_io_storage .. io_fip
|
|
arm_io_storage .. io_memmap
|
|
arm_io_storage .. io_storage
|
|
|
|
|
|
@enduml
|