Skip to content

Fix #1346, error if alignment size not a power of two#1372

Merged
astrogeco merged 1 commit into
nasa:integration-candidatefrom
jphickey:fix-1346-alignsize
Apr 28, 2021
Merged

Fix #1346, error if alignment size not a power of two#1372
astrogeco merged 1 commit into
nasa:integration-candidatefrom
jphickey:fix-1346-alignsize

Conversation

@jphickey

Copy link
Copy Markdown
Contributor

Describe the contribution
Instead of "fixing" the alignment mask, return an error if the passed-in value is not actually a power of two.

Fixes #1346

Testing performed
Build and sanity test CFE, run all unit tests

Expected behavior changes
Function will return CFE_ES_BAD_ARGUMENT if the passed in parameter is not a power of two.

System(s) tested on
Ubuntu 20.04

Additional context
This is an internal functions, and in ES this only gets passed from two possible sources: one is CDS, hardcoded as 4, and the other is sourced from the ALIGN_OF macro for generic memory pools.

The latter is platform-dependent but I've never seen a platform that aligns data on something other than a power of two boundary.

Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.

Instead of "fixing" the alignment mask, return an error if the
passed-in value is not actually a power of two.

In ES this only gets passed from two possible sources: one is
hardcoded (4) and the other is sourced from the ALIGN_OF macro.
@jphickey jphickey added the CCB:Ready Ready for discussion at the Configuration Control Board (CCB) label Apr 16, 2021
@astrogeco

Copy link
Copy Markdown
Contributor

CCB:2021-04-21 APPROVED

@astrogeco astrogeco added CCB:Approved Indicates code review and approval by community CCB CFS-40 labels Apr 21, 2021
@astrogeco astrogeco changed the base branch from main to integration-candidate April 28, 2021 01:22
@astrogeco astrogeco added IC:2021-04-27 and removed CCB:Ready Ready for discussion at the Configuration Control Board (CCB) labels Apr 28, 2021
@astrogeco astrogeco merged commit c84feec into nasa:integration-candidate Apr 28, 2021
astrogeco added a commit to nasa/cFS that referenced this pull request Apr 28, 2021
nasa/cFE#1385, exception logic when app/task is not found
nasa/cFE#1372, error if alignment size not a power of two
nasa/cFE#1368, remove unneeded CFE_ES_SYSLOG_APPEND macro
nasa/cFE#1382, improve documentation for resourceID patterns
nasa/cFE#1371, assert `CFE_RESOURCEID_MAX` is a bitmask
astrogeco added a commit to nasa/cFS that referenced this pull request Apr 29, 2021
Combines:

nasa/cFE#1431
nasa/osal#975
nasa/sample_lib#61

Includes:

nasa/cFE#1379, memory pool pointer type
nasa/cFE#1289, ES child task functional test
nasa/cFE#1289, typo in macro name
nasa/cFE#1286, Remove broken BUILDDIR reference
nasa/cFE#1305, remove option for "osal_compatible"
nasa/cFE#1374, CFE_SUCCESS constant type
nasa/cFE#1316, Remove Unused Error Codes
nasa/cFE#1370, better warning about malformed startup line
nasa/cFE#1373, check status of call to `CFE_ES_CDS_CachePreload`
nasa/cFE#1384, update documentation for `CFE_ES_DeleteCDS`
nasa/cFE#1385, exception logic when app/task is not found
nasa/cFE#1372, error if alignment size not a power of two
nasa/cFE#1368, remove unneeded CFE_ES_SYSLOG_APPEND macro
nasa/cFE#1382, improve documentation for resourceID patterns
nasa/cFE#1371, assert `CFE_RESOURCEID_MAX` is a bitmask

nasa/osal#972, update documentation for read/write
nasa/osal#966, add "handler" feature to utassert stub API
nasa/osal#953, Adds local makefile and bundle/local unit test actions with coverage verification
nasa/osal#971, socket accept using incorrect record
nasa/osal#959, move async console option

nasa/sample_lib#60, replace direct ref to ArgPtr with macro
@jphickey jphickey deleted the fix-1346-alignsize branch May 14, 2021 14:23
@skliper skliper added this to the 7.0.0 milestone Sep 24, 2021
segeljakt pushed a commit to LeoDOS-Project/LeoDOS that referenced this pull request Mar 22, 2026
Combines:

nasa/cFE#1431
nasa/osal#975
nasa/sample_lib#61

Includes:

nasa/cFE#1379, memory pool pointer type
nasa/cFE#1289, ES child task functional test
nasa/cFE#1289, typo in macro name
nasa/cFE#1286, Remove broken BUILDDIR reference
nasa/cFE#1305, remove option for "osal_compatible"
nasa/cFE#1374, CFE_SUCCESS constant type
nasa/cFE#1316, Remove Unused Error Codes
nasa/cFE#1370, better warning about malformed startup line
nasa/cFE#1373, check status of call to `CFE_ES_CDS_CachePreload`
nasa/cFE#1384, update documentation for `CFE_ES_DeleteCDS`
nasa/cFE#1385, exception logic when app/task is not found
nasa/cFE#1372, error if alignment size not a power of two
nasa/cFE#1368, remove unneeded CFE_ES_SYSLOG_APPEND macro
nasa/cFE#1382, improve documentation for resourceID patterns
nasa/cFE#1371, assert `CFE_RESOURCEID_MAX` is a bitmask

nasa/osal#972, update documentation for read/write
nasa/osal#966, add "handler" feature to utassert stub API
nasa/osal#953, Adds local makefile and bundle/local unit test actions with coverage verification
nasa/osal#971, socket accept using incorrect record
nasa/osal#959, move async console option

nasa/sample_lib#60, replace direct ref to ArgPtr with macro
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CCB:Approved Indicates code review and approval by community CCB CFS-40

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CFE_ES_GenPoolInitialize: Error if AlignSize is not a power of 2

3 participants