digraph {
rankdir=LR;
node [shape=plaintext];
subgraph cluster__gpt_partition_table {
label="GptPartitionTable";
graph[style=dotted];
gpt_partition_table__seq [label=<
>];
gpt_partition_table__inst__sector_size [label=<>];
gpt_partition_table__inst__primary [label=<
pos | size | type | id |
_root.sector_size | 92 | PartitionHeader | primary |
>];
gpt_partition_table__inst__backup [label=<
pos | size | type | id |
(_io.size - _root.sector_size) | 92 | PartitionHeader | backup |
>];
subgraph cluster__partition_entry {
label="GptPartitionTable::PartitionEntry";
graph[style=dotted];
partition_entry__seq [label=<
pos | size | type | id |
0 | 16 | | type_guid |
16 | 16 | | guid |
32 | 8 | u8le | first_lba |
40 | 8 | u8le | last_lba |
48 | 8 | u8le | attributes |
56 | 72 | str(UTF-16LE) | name |
>];
}
subgraph cluster__partition_header {
label="GptPartitionTable::PartitionHeader";
graph[style=dotted];
partition_header__seq [label=<
pos | size | type | id |
0 | 8 | | signature |
8 | 4 | u4le | revision |
12 | 4 | u4le | header_size |
16 | 4 | u4le | crc32_header |
20 | 4 | u4le | reserved |
24 | 8 | u8le | current_lba |
32 | 8 | u8le | backup_lba |
40 | 8 | u8le | first_usable_lba |
48 | 8 | u8le | last_usable_lba |
56 | 16 | | disk_guid |
72 | 8 | u8le | entries_start |
80 | 4 | u4le | entries_count |
84 | 4 | u4le | entries_size |
88 | 4 | u4le | crc32_array |
>];
partition_header__inst__entries [label=<
pos | size | type | id |
(entries_start * _root.sector_size) | entries_size | PartitionEntry | entries |
repeat entries_count times |
>];
}
}
gpt_partition_table__inst__sector_size:sector_size_type -> gpt_partition_table__inst__primary:primary_pos [color="#404040"];
gpt_partition_table__inst__primary:primary_type -> partition_header__seq [style=bold];
gpt_partition_table__inst__sector_size:sector_size_type -> gpt_partition_table__inst__backup:backup_pos [color="#404040"];
gpt_partition_table__inst__backup:backup_type -> partition_header__seq [style=bold];
partition_header__seq:entries_start_type -> partition_header__inst__entries:entries_pos [color="#404040"];
gpt_partition_table__inst__sector_size:sector_size_type -> partition_header__inst__entries:entries_pos [color="#404040"];
partition_header__seq:entries_size_type -> partition_header__inst__entries:entries_size [color="#404040"];
partition_header__inst__entries:entries_type -> partition_entry__seq [style=bold];
partition_header__seq:entries_count_type -> partition_header__inst__entries:entries__repeat [color="#404040"];
}