1*91f16700Schasinglulu@startuml 2*91f16700Schasinglulu 3*91f16700Schasingluluparticipant arm_io_storage 4*91f16700Schasingluluparticipant io_storage 5*91f16700Schasingluluparticipant io_fip 6*91f16700Schasingluluparticipant io_memmap 7*91f16700Schasinglulu 8*91f16700Schasinglulu -> arm_io_storage : arm_io_setup() 9*91f16700Schasinglulu 10*91f16700Schasinglulugroup io dev registration 11*91f16700Schasinglulu 12*91f16700Schasingluluarm_io_storage -> io_fip : register_io_dev_fip(&fip_dev_con) 13*91f16700Schasingluluio_fip -> io_storage : io_register_device(&dev_info_pool[]) 14*91f16700Schasinglulunote over io_storage 15*91f16700Schasinglulu devices[dev_count] = (fip_)dev_info_pool 16*91f16700Schasinglulu dev_count++ 17*91f16700Schasingluluend note 18*91f16700Schasinglulu 19*91f16700Schasingluluarm_io_storage -> io_memmap : register_io_dev_memmap(&memmap_dev_con) 20*91f16700Schasingluluio_memmap -> io_storage : io_register_device(&memmap_dev_info) 21*91f16700Schasinglulunote over io_storage 22*91f16700Schasinglulu devices[dev_count] = memmap_dev_info 23*91f16700Schasinglulu dev_count++ 24*91f16700Schasingluluend note 25*91f16700Schasinglulu 26*91f16700Schasingluluarm_io_storage -> io_storage : io_dev_open(fip_dev_con, NULL, fip_dev_handle) 27*91f16700Schasinglulu io_storage -> io_storage : dev_open(dev_con, dev_spec, handle) 28*91f16700Schasingluluactivate io_storage 29*91f16700Schasingluluopt dev_open() on fip device 30*91f16700Schasinglulu io_storage -> io_fip : fip_dev_open(dev_spec, dev_info) 31*91f16700Schasinglulu note over io_fip 32*91f16700Schasinglulu dev_info = one of the 33*91f16700Schasinglulu "fip_dev_info" from 34*91f16700Schasinglulu dev_info_pool[] 35*91f16700Schasinglulu end note 36*91f16700Schasingluluend opt 37*91f16700Schasingluludeactivate io_storage 38*91f16700Schasinglulu 39*91f16700Schasinglulu 40*91f16700Schasingluluarm_io_storage -> io_storage : io_dev_open(memmap_dev_con, NULL, memmap_dev_handle) 41*91f16700Schasingluluio_storage -> io_storage : dev_open(dev_con, dev_spec, handle) 42*91f16700Schasingluluactivate io_storage 43*91f16700Schasingluluopt dev_open() on memmap device 44*91f16700Schasinglulu io_storage -> io_memmap : memmap_dev_open(dev_spec, dev_info) 45*91f16700Schasinglulu note over io_memmap 46*91f16700Schasinglulu dev_info = memmap_dev_info 47*91f16700Schasinglulu end note 48*91f16700Schasingluluend opt 49*91f16700Schasingluludeactivate io_storage 50*91f16700Schasinglulu 51*91f16700Schasingluluend group 52*91f16700Schasinglulu@enduml 53