From 720525edfb504527b615fab04b747ba8dd44f3da Mon Sep 17 00:00:00 2001 From: Joseph Hickey Date: Mon, 16 Nov 2020 13:05:48 -0500 Subject: [PATCH] Fix #965, remove OSAL ID from App/LibInfo struct 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. --- fsw/cfe-core/src/es/cfe_es_api.c | 14 ++++++++++++-- fsw/cfe-core/src/es/cfe_es_apps.c | 1 - fsw/cfe-core/src/inc/cfe_es_msg.h | 2 -- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/fsw/cfe-core/src/es/cfe_es_api.c b/fsw/cfe-core/src/es/cfe_es_api.c index cb5545ca0..59e37df38 100644 --- a/fsw/cfe-core/src/es/cfe_es_api.c +++ b/fsw/cfe-core/src/es/cfe_es_api.c @@ -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 ) @@ -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); @@ -1007,6 +1009,8 @@ int32 CFE_ES_GetAppInfo(CFE_ES_AppInfo_t *AppInfo, CFE_ES_ResourceID_t AppId) AppInfo->Priority = AppRecPtr->StartParams.Priority; AppInfo->MainTaskId = AppRecPtr->MainTaskId; + ModuleId = AppRecPtr->ModuleInfo.ModuleId; + /* ** Calculate the number of child tasks */ @@ -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; @@ -1057,6 +1061,7 @@ 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 ) { @@ -1064,6 +1069,9 @@ int32 CFE_ES_GetLibInfo(CFE_ES_AppInfo_t *LibInfo, CFE_ES_ResourceID_t LibId) 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__); @@ -1086,6 +1094,8 @@ int32 CFE_ES_GetLibInfo(CFE_ES_AppInfo_t *LibInfo, CFE_ES_ResourceID_t LibId) CFE_ES_CopyModuleBasicInfo(&LibRecPtr->BasicInfo, LibInfo); CFE_ES_CopyModuleStatusInfo(&LibRecPtr->ModuleInfo, LibInfo); + ModuleId = LibRecPtr->ModuleInfo.ModuleId; + Status = CFE_SUCCESS; } @@ -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; diff --git a/fsw/cfe-core/src/es/cfe_es_apps.c b/fsw/cfe-core/src/es/cfe_es_apps.c index d0b1bbb0d..8f54f2aad 100644 --- a/fsw/cfe-core/src/es/cfe_es_apps.c +++ b/fsw/cfe-core/src/es/cfe_es_apps.c @@ -1749,7 +1749,6 @@ void CFE_ES_CopyModuleBasicInfo(const CFE_ES_ModuleLoadParams_t *ParamsPtr, CFE_ */ 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); } diff --git a/fsw/cfe-core/src/inc/cfe_es_msg.h b/fsw/cfe-core/src/inc/cfe_es_msg.h index 5f6b71ff3..8b1697a9f 100644 --- a/fsw/cfe-core/src/inc/cfe_es_msg.h +++ b/fsw/cfe-core/src/inc/cfe_es_msg.h @@ -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