Skip to content

Commit

Permalink
Fix #965, remove OSAL ID from App/LibInfo struct
Browse files Browse the repository at this point in the history
The "osal_id_t" type isn't defined in any of the CFE message/interface
header files for use within telemetry.

This ID is an ephemeral runtime value and is not relevant to a ground
system or anything outside CFE, so it makes most sense to simply
remove this ID from the telemtry structure.  Note that all commands
are name-based, not ID-based, hence why this ID is not really useful.
  • Loading branch information
jphickey committed Nov 16, 2020
1 parent 32f3dee commit 2463878
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 31 deletions.
18 changes: 14 additions & 4 deletions fsw/cfe-core/src/es/cfe_es_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -970,6 +970,7 @@ int32 CFE_ES_GetAppInfo(CFE_ES_AppInfo_t *AppInfo, CFE_ES_ResourceID_t AppId)
CFE_ES_AppRecord_t *AppRecPtr;
CFE_ES_TaskRecord_t *TaskRecPtr;
int32 Status;
osal_id_t ModuleId;
uint32 i;

if ( AppInfo == NULL )
Expand All @@ -979,6 +980,7 @@ int32 CFE_ES_GetAppInfo(CFE_ES_AppInfo_t *AppInfo, CFE_ES_ResourceID_t AppId)
}

memset(AppInfo, 0, sizeof(*AppInfo));
ModuleId = OS_OBJECT_ID_UNDEFINED;

AppRecPtr = CFE_ES_LocateAppRecordByID(AppId);

Expand All @@ -1000,7 +1002,9 @@ int32 CFE_ES_GetAppInfo(CFE_ES_AppInfo_t *AppInfo, CFE_ES_ResourceID_t AppId)
AppInfo->Type = AppRecPtr->Type;

CFE_ES_CopyModuleBasicInfo(&AppRecPtr->StartParams.BasicInfo, AppInfo);
CFE_ES_CopyModuleStatusInfo(&AppRecPtr->ModuleInfo, AppInfo);

ModuleId = AppRecPtr->ModuleInfo.ModuleId;
CFE_SB_SET_MEMADDR(AppInfo->StartAddress, AppRecPtr->ModuleInfo.EntryAddress);

AppInfo->StackSize = AppRecPtr->StartParams.StackSize;
AppInfo->ExceptionAction = AppRecPtr->StartParams.ExceptionAction;
Expand Down Expand Up @@ -1044,7 +1048,7 @@ int32 CFE_ES_GetAppInfo(CFE_ES_AppInfo_t *AppInfo, CFE_ES_ResourceID_t AppId)
*/
if (Status == CFE_SUCCESS)
{
CFE_ES_CopyModuleAddressInfo(AppInfo->ModuleId, AppInfo);
CFE_ES_CopyModuleAddressInfo(ModuleId, AppInfo);
}

return Status;
Expand All @@ -1057,13 +1061,17 @@ int32 CFE_ES_GetLibInfo(CFE_ES_AppInfo_t *LibInfo, CFE_ES_ResourceID_t LibId)
{
int32 Status;
CFE_ES_LibRecord_t *LibRecPtr;
osal_id_t ModuleId;

if ( LibInfo == NULL )
{
CFE_ES_WriteToSysLog("CFE_ES_GetLibInfo: Invalid Parameter ( Null Pointer )\n");
return CFE_ES_ERR_BUFFER;
}

memset(LibInfo, 0, sizeof(*LibInfo));
ModuleId = OS_OBJECT_ID_UNDEFINED;

LibRecPtr = CFE_ES_LocateLibRecordByID(LibId);

CFE_ES_LockSharedData(__func__,__LINE__);
Expand All @@ -1084,7 +1092,9 @@ int32 CFE_ES_GetLibInfo(CFE_ES_AppInfo_t *LibInfo, CFE_ES_ResourceID_t LibId)
LibInfo->Type = CFE_ES_AppType_LIBRARY;

CFE_ES_CopyModuleBasicInfo(&LibRecPtr->BasicInfo, LibInfo);
CFE_ES_CopyModuleStatusInfo(&LibRecPtr->ModuleInfo, LibInfo);

ModuleId = LibRecPtr->ModuleInfo.ModuleId;
CFE_SB_SET_MEMADDR(LibInfo->StartAddress, LibRecPtr->ModuleInfo.EntryAddress);

Status = CFE_SUCCESS;
}
Expand All @@ -1096,7 +1106,7 @@ int32 CFE_ES_GetLibInfo(CFE_ES_AppInfo_t *LibInfo, CFE_ES_ResourceID_t LibId)
*/
if (Status == CFE_SUCCESS)
{
CFE_ES_CopyModuleAddressInfo(LibInfo->ModuleId, LibInfo);
CFE_ES_CopyModuleAddressInfo(ModuleId, LibInfo);
}

return Status;
Expand Down
16 changes: 0 additions & 16 deletions fsw/cfe-core/src/es/cfe_es_apps.c
Original file line number Diff line number Diff line change
Expand Up @@ -1737,22 +1737,6 @@ void CFE_ES_CopyModuleBasicInfo(const CFE_ES_ModuleLoadParams_t *ParamsPtr, CFE_
AppInfoPtr->FileName[sizeof(AppInfoPtr->FileName) - 1] = '\0';
}

/*
**---------------------------------------------------------------------------------------
** Name: CFE_ES_CopyModuleStatusInfo
**
** Purpose: Populate the cFE_ES_AppInfo structure with the data for an app.
**
** This internal function does not log any errors/events. The caller is expected
** to check the return code and log any relevant errors based on the context.
**---------------------------------------------------------------------------------------
*/
void CFE_ES_CopyModuleStatusInfo(const CFE_ES_ModuleLoadStatus_t *StatusPtr, CFE_ES_AppInfo_t *AppInfoPtr)
{
AppInfoPtr->ModuleId = StatusPtr->ModuleId;
CFE_SB_SET_MEMADDR(AppInfoPtr->StartAddress, StatusPtr->EntryAddress);
}

/*
**---------------------------------------------------------------------------------------
** Name: CFE_ES_CopyModuleAddressInfo
Expand Down
9 changes: 0 additions & 9 deletions fsw/cfe-core/src/es/cfe_es_apps.h
Original file line number Diff line number Diff line change
Expand Up @@ -289,15 +289,6 @@ int32 CFE_ES_CleanupTaskResources(CFE_ES_ResourceID_t TaskId);
*/
void CFE_ES_CopyModuleBasicInfo(const CFE_ES_ModuleLoadParams_t *ParamsPtr, CFE_ES_AppInfo_t *AppInfoPtr);

/*
**---------------------------------------------------------------------------------------
** Name: CFE_ES_CopyModuleStatusInfo
**
** Purpose: Populate the cFE_ES_AppInfo structure from the CFE_ES_ModuleLoadStatus_t data
**---------------------------------------------------------------------------------------
*/
void CFE_ES_CopyModuleStatusInfo(const CFE_ES_ModuleLoadStatus_t *StatusPtr, CFE_ES_AppInfo_t *AppInfoPtr);

/*
**---------------------------------------------------------------------------------------
** Name: CFE_ES_CopyModuleAddressInfo
Expand Down
2 changes: 0 additions & 2 deletions fsw/cfe-core/src/inc/cfe_es_msg.h
Original file line number Diff line number Diff line change
Expand Up @@ -1406,8 +1406,6 @@ typedef struct CFE_ES_AppInfo

CFE_ES_MemOffset_t StackSize; /**< \cfetlmmnemonic \ES_STACKSIZE
\brief The Stack Size of the Application */
osal_id_t ModuleId; /**< \cfetlmmnemonic \ES_MODULEID
\brief The ID of the Loadable Module for the Application */
uint32 AddressesAreValid; /**< \cfetlmmnemonic \ES_ADDRVALID
\brief Indicates that the Code, Data, and BSS addresses/sizes are valid */
CFE_ES_MemAddress_t CodeAddress; /**< \cfetlmmnemonic \ES_CODEADDR
Expand Down

0 comments on commit 2463878

Please sign in to comment.