-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathvbmeta.dot
76 lines (72 loc) · 4.96 KB
/
vbmeta.dot
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
digraph {
rankdir=LR;
node [shape=plaintext];
subgraph cluster__vbmeta {
label="Vbmeta";
graph[style=dotted];
vbmeta__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
<TR><TD PORT="header_pos">0</TD><TD PORT="header_size">256</TD><TD>Header</TD><TD PORT="header_type">header</TD></TR>
<TR><TD PORT="auth_pos">256</TD><TD PORT="auth_size">header.auth_size</TD><TD></TD><TD PORT="auth_type">auth</TD></TR>
<TR><TD PORT="aux_pos">...</TD><TD PORT="aux_size">header.aux_size</TD><TD></TD><TD PORT="aux_type">aux</TD></TR>
</TABLE>>];
subgraph cluster__position {
label="Vbmeta::Position";
graph[style=dotted];
position__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
<TR><TD PORT="offset_pos">0</TD><TD PORT="offset_size">8</TD><TD>u8be</TD><TD PORT="offset_type">offset</TD></TR>
<TR><TD PORT="size_pos">8</TD><TD PORT="size_size">8</TD><TD>u8be</TD><TD PORT="size_type">size</TD></TR>
</TABLE>>];
}
subgraph cluster__version {
label="Vbmeta::Version";
graph[style=dotted];
version__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
<TR><TD PORT="major_pos">0</TD><TD PORT="major_size">4</TD><TD>u4be</TD><TD PORT="major_type">major</TD></TR>
<TR><TD PORT="minor_pos">4</TD><TD PORT="minor_size">4</TD><TD>u4be</TD><TD PORT="minor_type">minor</TD></TR>
</TABLE>>];
}
subgraph cluster__header {
label="Vbmeta::Header";
graph[style=dotted];
header__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
<TR><TD PORT="magic_pos">0</TD><TD PORT="magic_size">4</TD><TD>41 56 42 30</TD><TD PORT="magic_type">magic</TD></TR>
<TR><TD PORT="version_pos">4</TD><TD PORT="version_size">8</TD><TD>Version</TD><TD PORT="version_type">version</TD></TR>
<TR><TD PORT="auth_size_pos">12</TD><TD PORT="auth_size_size">8</TD><TD>u8be</TD><TD PORT="auth_size_type">auth_size</TD></TR>
<TR><TD PORT="aux_size_pos">20</TD><TD PORT="aux_size_size">8</TD><TD>u8be</TD><TD PORT="aux_size_type">aux_size</TD></TR>
<TR><TD PORT="alg_pos">28</TD><TD PORT="alg_size">4</TD><TD>u4be→AlgType</TD><TD PORT="alg_type">alg</TD></TR>
<TR><TD PORT="hash_pos">32</TD><TD PORT="hash_size">16</TD><TD>Position</TD><TD PORT="hash_type">hash</TD></TR>
<TR><TD PORT="sign_pos">48</TD><TD PORT="sign_size">16</TD><TD>Position</TD><TD PORT="sign_type">sign</TD></TR>
<TR><TD PORT="pk_pos">64</TD><TD PORT="pk_size">16</TD><TD>Position</TD><TD PORT="pk_type">pk</TD></TR>
<TR><TD PORT="pk_meta_pos">80</TD><TD PORT="pk_meta_size">16</TD><TD>Position</TD><TD PORT="pk_meta_type">pk_meta</TD></TR>
<TR><TD PORT="desc_pos">96</TD><TD PORT="desc_size">16</TD><TD>Position</TD><TD PORT="desc_type">desc</TD></TR>
<TR><TD PORT="rollback_index_pos">112</TD><TD PORT="rollback_index_size">8</TD><TD>u8be</TD><TD PORT="rollback_index_type">rollback_index</TD></TR>
<TR><TD PORT="flags_pos">120</TD><TD PORT="flags_size">4</TD><TD>u4be</TD><TD PORT="flags_type">flags</TD></TR>
<TR><TD PORT="reserved0_pos">124</TD><TD PORT="reserved0_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved0_type">reserved0</TD></TR>
<TR><TD PORT="release_string_pos">128</TD><TD PORT="release_string_size">48</TD><TD>str(ASCII)</TD><TD PORT="release_string_type">release_string</TD></TR>
</TABLE>>];
header__inst__hashtree_disabled [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
<TR><TD>hashtree_disabled</TD><TD>(flags & (1 << 0))</TD></TR>
</TABLE>>];
header__inst__verification_disabled [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
<TR><TD>verification_disabled</TD><TD>(flags & (1 << 1))</TD></TR>
</TABLE>>];
}
}
vbmeta__seq:header_type -> header__seq [style=bold];
header__seq:auth_size_type -> vbmeta__seq:auth_size [color="#404040"];
header__seq:aux_size_type -> vbmeta__seq:aux_size [color="#404040"];
header__seq:version_type -> version__seq [style=bold];
header__seq:hash_type -> position__seq [style=bold];
header__seq:sign_type -> position__seq [style=bold];
header__seq:pk_type -> position__seq [style=bold];
header__seq:pk_meta_type -> position__seq [style=bold];
header__seq:desc_type -> position__seq [style=bold];
header__seq:flags_type -> header__inst__hashtree_disabled [color="#404040"];
header__seq:flags_type -> header__inst__verification_disabled [color="#404040"];
}