diff --git a/modules/sbr/src/cfe_sbr_route_unsorted.c b/modules/sbr/src/cfe_sbr_route_unsorted.c index 716cd50e4..d47aa4eb1 100644 --- a/modules/sbr/src/cfe_sbr_route_unsorted.c +++ b/modules/sbr/src/cfe_sbr_route_unsorted.c @@ -178,39 +178,28 @@ CFE_MSG_SequenceCount_t CFE_SBR_GetSequenceCounter(CFE_SBR_RouteId_t RouteId) } /****************************************************************************** - * Local helper function for throttling foreach routines - * - * Updates StartIdxPtr, EndIdxPtr and ThrottlePtr.NextIndex. Note EndIdxPtr - * must be set to maximum prior to calling. + * Interface function - see API for description */ -void CFE_SBR_Throttle(uint32 *StartIdxPtr, uint32 *EndIdxPtr, CFE_SBR_Throttle_t *ThrottlePtr) +void CFE_SBR_ForEachRouteId(CFE_SBR_CallbackPtr_t CallbackPtr, void *ArgPtr, CFE_SBR_Throttle_t *ThrottlePtr) { + CFE_SB_RouteId_Atom_t routeidx; + CFE_SB_RouteId_Atom_t startidx = 0; + CFE_SB_RouteId_Atom_t endidx = CFE_SBR_RDATA.RouteIdxTop; + + /* Update throttle settings if needed */ if (ThrottlePtr != NULL) { - *StartIdxPtr = ThrottlePtr->StartIndex; + startidx = ThrottlePtr->StartIndex; /* Return next index of zero if full range is processed */ ThrottlePtr->NextIndex = 0; - if ((*StartIdxPtr + ThrottlePtr->MaxLoop) < *EndIdxPtr) + if ((startidx + ThrottlePtr->MaxLoop) < endidx) { - *EndIdxPtr = *StartIdxPtr + ThrottlePtr->MaxLoop; - ThrottlePtr->NextIndex = *EndIdxPtr; + endidx = startidx + ThrottlePtr->MaxLoop; + ThrottlePtr->NextIndex = endidx; } } -} - -/****************************************************************************** - * Interface function - see API for description - */ -void CFE_SBR_ForEachRouteId(CFE_SBR_CallbackPtr_t CallbackPtr, void *ArgPtr, CFE_SBR_Throttle_t *ThrottlePtr) -{ - CFE_SB_RouteId_Atom_t routeidx; - CFE_SB_MsgId_Atom_t startidx = 0; - CFE_SB_MsgId_Atom_t endidx = CFE_SBR_RDATA.RouteIdxTop; - - /* Update throttle settings if needed */ - CFE_SBR_Throttle(&startidx, &endidx, ThrottlePtr); for (routeidx = startidx; routeidx < endidx; routeidx++) {