digraph {
rankdir=LR;
node [shape=plaintext];
subgraph cluster__android_bootldr_qcom {
label="AndroidBootldrQcom";
graph[style=dotted];
android_bootldr_qcom__seq [label=<
pos | size | type | id |
0 | 8 | | magic |
8 | 4 | u4le | num_images |
12 | 4 | u4le | ofs_img_bodies |
16 | 4 | u4le | bootloader_size |
20 | 68 | ImgHeader | img_headers |
repeat num_images times |
>];
android_bootldr_qcom__inst__img_bodies [label=<
pos | size | type | id |
ofs_img_bodies | ... | ImgBody | img_bodies |
repeat num_images times |
>];
subgraph cluster__img_header {
label="AndroidBootldrQcom::ImgHeader";
graph[style=dotted];
img_header__seq [label=<
pos | size | type | id |
0 | 64 | str(ASCII) | name |
64 | 4 | u4le | len_body |
>];
}
subgraph cluster__img_body {
label="AndroidBootldrQcom::ImgBody";
graph[style=dotted];
img_body__seq [label=<
pos | size | type | id |
0 | img_header.len_body | | body |
>];
img_body__inst__img_header [label=<
id | value |
img_header | _root.img_headers[idx] |
>];
}
}
android_bootldr_qcom__seq:img_headers_type -> img_header__seq [style=bold];
android_bootldr_qcom__seq:num_images_type -> android_bootldr_qcom__seq:img_headers__repeat [color="#404040"];
android_bootldr_qcom__seq:ofs_img_bodies_type -> android_bootldr_qcom__inst__img_bodies:img_bodies_pos [color="#404040"];
android_bootldr_qcom__inst__img_bodies:img_bodies_type -> img_body__seq [style=bold];
android_bootldr_qcom__seq:num_images_type -> android_bootldr_qcom__inst__img_bodies:img_bodies__repeat [color="#404040"];
img_header__seq:len_body_type -> img_body__seq:body_size [color="#404040"];
android_bootldr_qcom__seq:img_headers_type -> img_body__inst__img_header [color="#404040"];
img_body__params:idx_type -> img_body__inst__img_header [color="#404040"];
}