io_arm_class_diagram.puml 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. @startuml
  2. package arm_io_storage {
  3. class plat_io_policy {
  4. dev_handle : uintptr_t*
  5. image_spec : uintptr_t
  6. {abstract} check() : fctptr
  7. }
  8. class FIP_IMAGE_ID {
  9. memmap_dev_handle
  10. fip_block_spec
  11. open_memmap()
  12. }
  13. class BL2_IMAGE_ID{
  14. fip_dev_handle
  15. bl2_uuid_spec
  16. open_fip()
  17. }
  18. class xxx_IMAGE_ID{
  19. fip_dev_handle
  20. xxx_uuid_spec
  21. open_fip()
  22. }
  23. class arm_io_storage {
  24. fip_dev_con : io_dev_connector_t*
  25. fip_dev_handle : uintptr_t
  26. memmap_dev_con : io_dev_connector_t*
  27. memmap_dev_handle : uintptr_t
  28. fip_block_spec : io_block_spec_t
  29. policies : plat_io_policy[1..*]
  30. -open_fip()
  31. -open_memmap()
  32. +arm_io_setup()
  33. +plat_get_image_source()
  34. }
  35. FIP_IMAGE_ID -up-|> plat_io_policy
  36. BL2_IMAGE_ID -up-|> plat_io_policy
  37. xxx_IMAGE_ID -up-|> plat_io_policy
  38. arm_io_storage *-"1..*" plat_io_policy
  39. }
  40. package IO {
  41. class io_storage {
  42. io_dev_open()
  43. io_dev_init()
  44. io_dev_close()
  45. .. synchronous operations ..
  46. io_open()
  47. io_seek()
  48. io_size()
  49. io_read()
  50. io_write()
  51. io_close()
  52. io_register_device()
  53. }
  54. class io_fip {
  55. register_io_dev_fip()
  56. .. io_dev_funcs_t interface ..
  57. fip_dev_funcs : io_dev_funcs_t
  58. }
  59. class io_memmap {
  60. register_io_dev_memmap()
  61. .. io_dev_funcs_t interface ..
  62. memmap_dev_funcs : io_dev_funcs_t
  63. }
  64. interface io_driver {
  65. io_entity_t
  66. io_dev_info_t
  67. .. io_dev_connector_t interface ..
  68. dev_open()
  69. .. io_dev_funcs_t interface ..
  70. type()
  71. open()
  72. seek()
  73. size()
  74. read()
  75. write()
  76. close()
  77. dev_init()
  78. dev_close()
  79. io_register_device()
  80. }
  81. }
  82. arm_io_storage .. io_driver
  83. arm_io_storage .. io_fip
  84. arm_io_storage .. io_memmap
  85. arm_io_storage .. io_storage
  86. @enduml