You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
As an extension to the changes in issue #666/pull #678, the same paradigm should be applied to all other message definitions. This is currently only working "by chance" in that the payloads already contain a uint32 (or larger) value so it is already aligned.
Describe the solution you'd like
Change the header structure which is currently defined as a uint8 [] array into either CFE_SB_CmdHdr_t or CFE_SB_TlmHdr_t so it will be correctly aligned.
Additional context
It is safe to assume all remaining message types were already 32-bit aligned because there were no remaining compiler warnings about this, which means this change by itself will not have any effect on the existing message sizes or alignment.
However, when moving to a 64-bit build it may become necessary to enforce 64-bit alignment rather than 32-bit alignment for CFE_SB_Msg_t and in that case, the sizes and padding may change from what it currently is.
Requester Info
Joseph Hickey, Vantage Systems, Inc.
The text was updated successfully, but these errors were encountered:
Replace uint8[] arrays which reserve space for the header
with an instance of the header struct as defined by SB.
Note this structure was the basis for the array size,
so it is the same size, but by actually using the structure
the resulting message will have the correct alignment.
Replace uint8[] arrays which reserve space for the header
with an instance of the header struct as defined by SB.
Note this structure was the basis for the array size,
so it is the same size, but by actually using the structure
the resulting message will have the correct alignment.
Is your feature request related to a problem? Please describe.
As an extension to the changes in issue #666/pull #678, the same paradigm should be applied to all other message definitions. This is currently only working "by chance" in that the payloads already contain a uint32 (or larger) value so it is already aligned.
Describe the solution you'd like
Change the header structure which is currently defined as a
uint8 []
array into either CFE_SB_CmdHdr_t or CFE_SB_TlmHdr_t so it will be correctly aligned.Additional context
It is safe to assume all remaining message types were already 32-bit aligned because there were no remaining compiler warnings about this, which means this change by itself will not have any effect on the existing message sizes or alignment.
However, when moving to a 64-bit build it may become necessary to enforce 64-bit alignment rather than 32-bit alignment for
CFE_SB_Msg_t
and in that case, the sizes and padding may change from what it currently is.Requester Info
Joseph Hickey, Vantage Systems, Inc.
The text was updated successfully, but these errors were encountered: