summaryrefslogtreecommitdiffstats
path: root/docs/resources/diagrams/plantuml/io_dev_registration.puml
blob: c6f330e6af32c7be9b19e350a2f908fb292f93cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
@startuml

participant arm_io_storage
participant io_storage
participant io_fip
participant io_memmap

 -> arm_io_storage : arm_io_setup()

group io dev registration

arm_io_storage -> io_fip : register_io_dev_fip(&fip_dev_con)
io_fip -> io_storage : io_register_device(&dev_info_pool[])
note over io_storage
	devices[dev_count] = (fip_)dev_info_pool
	dev_count++
end note

arm_io_storage -> io_memmap : register_io_dev_memmap(&memmap_dev_con)
io_memmap -> io_storage : io_register_device(&memmap_dev_info)
note over io_storage
	devices[dev_count] = memmap_dev_info
	dev_count++
end note

arm_io_storage -> io_storage : io_dev_open(fip_dev_con, NULL, fip_dev_handle)
 io_storage -> io_storage : dev_open(dev_con, dev_spec, handle)
activate io_storage
opt dev_open() on fip device
	io_storage -> io_fip : fip_dev_open(dev_spec, dev_info)
	note over io_fip
		dev_info = one of the
		"fip_dev_info" from
		dev_info_pool[]
	end note
end opt
deactivate io_storage


arm_io_storage -> io_storage : io_dev_open(memmap_dev_con, NULL, memmap_dev_handle)
io_storage -> io_storage : dev_open(dev_con, dev_spec, handle)
activate io_storage
opt dev_open() on memmap device
	io_storage -> io_memmap : memmap_dev_open(dev_spec, dev_info)
	note over io_memmap
		dev_info = memmap_dev_info
	end note
end opt
deactivate io_storage

end group
@enduml