-
Notifications
You must be signed in to change notification settings - Fork 2
/
samsung_pit.dot
88 lines (84 loc) · 6.21 KB
/
samsung_pit.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
77
78
79
80
81
82
83
84
85
86
87
88
digraph {
rankdir=LR;
node [shape=plaintext];
subgraph cluster__samsung_pit {
label="SamsungPit";
graph[style=dotted];
samsung_pit__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>76 98 34 12</TD><TD PORT="magic_type">magic</TD></TR>
<TR><TD PORT="entry_count_pos">4</TD><TD PORT="entry_count_size">4</TD><TD>u4le</TD><TD PORT="entry_count_type">entry_count</TD></TR>
<TR><TD PORT="port_pos">8</TD><TD PORT="port_size">4</TD><TD>str(ASCII)</TD><TD PORT="port_type">port</TD></TR>
<TR><TD PORT="format_pos">12</TD><TD PORT="format_size">4</TD><TD>str(ASCII)</TD><TD PORT="format_type">format</TD></TR>
<TR><TD PORT="chip_pos">16</TD><TD PORT="chip_size">8</TD><TD>str(ASCII)</TD><TD PORT="chip_type">chip</TD></TR>
<TR><TD PORT="unknown4_pos">24</TD><TD PORT="unknown4_size">4</TD><TD>u4le</TD><TD PORT="unknown4_type">unknown4</TD></TR>
<TR><TD PORT="partitions_pos">28</TD><TD PORT="partitions_size">132</TD><TD>Partition</TD><TD PORT="partitions_type">partitions</TD></TR>
<TR><TD COLSPAN="4" PORT="partitions__repeat">repeat entry_count times</TD></TR>
<TR><TD PORT="signature_pos">...</TD><TD PORT="signature_size">0</TD><TD>SamsungSignature</TD><TD PORT="signature_type">signature</TD></TR>
</TABLE>>];
subgraph cluster__attributes {
label="SamsungPit::Attributes";
graph[style=dotted];
attributes__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="value_pos">0</TD><TD PORT="value_size">4</TD><TD>u4le</TD><TD PORT="value_type">value</TD></TR>
</TABLE>>];
attributes__inst__read [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
<TR><TD>read</TD><TD>true</TD></TR>
</TABLE>>];
attributes__inst__write [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
<TR><TD>write</TD><TD>(value & 1) == 1</TD></TR>
</TABLE>>];
attributes__inst__stl [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
<TR><TD>stl</TD><TD>(value & (1 << 1)) == 2</TD></TR>
</TABLE>>];
}
subgraph cluster__update_attributes {
label="SamsungPit::UpdateAttributes";
graph[style=dotted];
update_attributes__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="value_pos">0</TD><TD PORT="value_size">4</TD><TD>u4le</TD><TD PORT="value_type">value</TD></TR>
</TABLE>>];
update_attributes__inst__fota [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
<TR><TD>fota</TD><TD>(value & 1) == 1</TD></TR>
</TABLE>>];
update_attributes__inst__secure [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="#E0FFE0">id</TD><TD BGCOLOR="#E0FFE0">value</TD></TR>
<TR><TD>secure</TD><TD>(value & (1 << 1)) == 2</TD></TR>
</TABLE>>];
}
subgraph cluster__partition {
label="SamsungPit::Partition";
graph[style=dotted];
partition__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="binary_type_pos">0</TD><TD PORT="binary_type_size">4</TD><TD>u4le→BinaryType</TD><TD PORT="binary_type_type">binary_type</TD></TR>
<TR><TD PORT="device_type_pos">4</TD><TD PORT="device_type_size">4</TD><TD>u4le→DeviceType</TD><TD PORT="device_type_type">device_type</TD></TR>
<TR><TD PORT="identifier_pos">8</TD><TD PORT="identifier_size">4</TD><TD>u4le</TD><TD PORT="identifier_type">identifier</TD></TR>
<TR><TD PORT="attributes_pos">12</TD><TD PORT="attributes_size">4</TD><TD>Attributes</TD><TD PORT="attributes_type">attributes</TD></TR>
<TR><TD PORT="update_attributes_pos">16</TD><TD PORT="update_attributes_size">4</TD><TD>UpdateAttributes</TD><TD PORT="update_attributes_type">update_attributes</TD></TR>
<TR><TD PORT="block_size_or_offset_pos">20</TD><TD PORT="block_size_or_offset_size">4</TD><TD>u4le</TD><TD PORT="block_size_or_offset_type">block_size_or_offset</TD></TR>
<TR><TD PORT="block_count_pos">24</TD><TD PORT="block_count_size">4</TD><TD>u4le</TD><TD PORT="block_count_type">block_count</TD></TR>
<TR><TD PORT="file_offset_pos">28</TD><TD PORT="file_offset_size">4</TD><TD>u4le</TD><TD PORT="file_offset_type">file_offset</TD></TR>
<TR><TD PORT="file_size_pos">32</TD><TD PORT="file_size_size">4</TD><TD>u4le</TD><TD PORT="file_size_type">file_size</TD></TR>
<TR><TD PORT="partition_name_pos">36</TD><TD PORT="partition_name_size">32</TD><TD>str(ASCII)</TD><TD PORT="partition_name_type">partition_name</TD></TR>
<TR><TD PORT="flash_filename_pos">68</TD><TD PORT="flash_filename_size">32</TD><TD>str(ASCII)</TD><TD PORT="flash_filename_type">flash_filename</TD></TR>
<TR><TD PORT="fota_filename_pos">100</TD><TD PORT="fota_filename_size">32</TD><TD>str(ASCII)</TD><TD PORT="fota_filename_type">fota_filename</TD></TR>
</TABLE>>];
}
}
samsung_pit__seq:partitions_type -> partition__seq [style=bold];
samsung_pit__seq:entry_count_type -> samsung_pit__seq:partitions__repeat [color="#404040"];
samsung_pit__seq:signature_type -> samsung_signature__seq [style=bold];
attributes__seq:value_type -> attributes__inst__write [color="#404040"];
attributes__seq:value_type -> attributes__inst__stl [color="#404040"];
update_attributes__seq:value_type -> update_attributes__inst__fota [color="#404040"];
update_attributes__seq:value_type -> update_attributes__inst__secure [color="#404040"];
partition__seq:attributes_type -> attributes__seq [style=bold];
partition__seq:update_attributes_type -> update_attributes__seq [style=bold];
}