io_dev_registration.puml 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. @startuml
  2. participant arm_io_storage
  3. participant io_storage
  4. participant io_fip
  5. participant io_memmap
  6. -> arm_io_storage : arm_io_setup()
  7. group io dev registration
  8. arm_io_storage -> io_fip : register_io_dev_fip(&fip_dev_con)
  9. io_fip -> io_storage : io_register_device(&dev_info_pool[])
  10. note over io_storage
  11. devices[dev_count] = (fip_)dev_info_pool
  12. dev_count++
  13. end note
  14. arm_io_storage -> io_memmap : register_io_dev_memmap(&memmap_dev_con)
  15. io_memmap -> io_storage : io_register_device(&memmap_dev_info)
  16. note over io_storage
  17. devices[dev_count] = memmap_dev_info
  18. dev_count++
  19. end note
  20. arm_io_storage -> io_storage : io_dev_open(fip_dev_con, NULL, fip_dev_handle)
  21. io_storage -> io_storage : dev_open(dev_con, dev_spec, handle)
  22. activate io_storage
  23. opt dev_open() on fip device
  24. io_storage -> io_fip : fip_dev_open(dev_spec, dev_info)
  25. note over io_fip
  26. dev_info = one of the
  27. "fip_dev_info" from
  28. dev_info_pool[]
  29. end note
  30. end opt
  31. deactivate io_storage
  32. arm_io_storage -> io_storage : io_dev_open(memmap_dev_con, NULL, memmap_dev_handle)
  33. io_storage -> io_storage : dev_open(dev_con, dev_spec, handle)
  34. activate io_storage
  35. opt dev_open() on memmap device
  36. io_storage -> io_memmap : memmap_dev_open(dev_spec, dev_info)
  37. note over io_memmap
  38. dev_info = memmap_dev_info
  39. end note
  40. end opt
  41. deactivate io_storage
  42. end group
  43. @enduml