FixedHash: Difference between revisions

→‎Entry: data size
imported>Leoetlino
(→‎Format: Entry)
imported>Leoetlino
(→‎Entry: data size)
 
(2 intermediate revisions by the same user not shown)
Line 31: Line 31:
| 0x8 || u32[N + 1] || '''Offsets to the first entry in each bucket''' (relative to the Entries section)<br>0xFFFFFFFF for empty buckets.
| 0x8 || u32[N + 1] || '''Offsets to the first entry in each bucket''' (relative to the Entries section)<br>0xFFFFFFFF for empty buckets.
|-
|-
| X = (0x8 + 4*(N+1) + 3) & -8 || u64 || Entries section size
| X = (0x8 + 4*(N+1) + 3) & -8 || u64 || '''Entries section size'''
|-
|-
| X + 8 || Entry[...] || '''Entries'''
| X + 8 || Entry[...] || '''Entries'''
|-
|-
| Y = align(X + entries section size, 8) || u64 || Entry offsets section size
| Y = align(X + entries section size, 8) || u64 || '''Entry offsets section size'''
|-
|-
| Y + 8 || u32[...] || '''Entry offsets''' (relative to the Entries section)
| Y + 8 || u32[...] || '''Entry offsets''' (relative to the Entries section)
|-
|-
| Z = align(Y + entry offset section size, 8) || u64 || Data section size
| Z = align(Y + entry offset section size, 8) || u64 || '''Data section size'''
|-
|-
| Z + 8 || any || '''Data'''
| Z + 8 || any || '''Data'''
|-
|-
| A = align(Z + data section size, 4) || u32 || Name section size
| A = align(Z + data section size, 4) || u32 || '''Names section size'''
|-
|-
| A + 4 || C strings || '''Names'''
| A + 4 || C strings || '''Names'''
Line 54: Line 54:
|-
|-
| 0x0 || u16 || '''Node index''' if this describes a FixedHash child node (if so, it must be <= 0xFFED)
| 0x0 || u16 || '''Node index''' if this describes a FixedHash child node (if so, it must be <= 0xFFED)
Otherwise, must be >= 0xFFF0 for non-node data.
|-
|-
| 0x2 || u16 || '''Name offset''' (relative to the Name section)
| 0x2 || u16 || '''Name offset''' (relative to the Name section)
Line 62: Line 64:
|-
|-
| 0xC || u32 || '''Data offset''' (relative to the Data section)
| 0xC || u32 || '''Data offset''' (relative to the Data section)
For non-node data, the data size is stored at offset+0 as a u64 and the actual data is at offset+8.
|-
|-
|}
|}
[[Category:File formats]]
[[Category:File formats]]
Anonymous user