Conversation
State that the byte ordering rule applies to each multi-byte value individually and does not reorder the values of a payload containing an array, and give the array order directly in the parsing section. Remove the byte-order sentence from INTERFACE_HASH, leaving the digest bytes positioned by the R_VERSION layout diagram like every other field. Distinguish the two register layout diagram conventions by what they index, bit for a register holding a single value and byte for one holding a sequence of fields. Fix the R_OPERATION_CTRL frontmatter so the diagram renders again.
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Narrows the byte-ordering note in the binary protocol. The note says only that the protocol uses little-endian byte ordering. It does not say whether the rule applies to each value, or to the payload as a whole. The two readings differ when a payload carries an array.
For an array of
U8values the rule has no content, because a single byte has no byte order. A restatement of the rule on such a register can therefore only mean that the array itself is reversed. This already produced one error.R_UIDwas described as a 128-bit little-endian value, which #225 corrected.INTERFACE_HASHinR_VERSIONstill carried the same sentence.The note now applies the rule to each multi-byte value, and says that it does not reorder the values of an array. The array parsing section gives the index order directly. This also removes the byte-order sentence from
INTERFACE_HASH. The register layout diagram positions the 20 digest bytes, as it does for every other field ofR_VERSION.Also clarified the diagram conventions. A register that holds a single value is indexed by bit, and drawn most significant first. A register that holds a sequence of fields is indexed by byte, and drawn from byte 0.
The
R_OPERATION_CTRLdiagram is a separate fix. A blank line between the code fence and the frontmatter stopped GitHub from rendering it. The gantt parser received the frontmatter as diagram content.