@@ -162,55 +162,29 @@ CFE_Status_t CFE_ES_RestartApp(CFE_ES_AppId_t AppID)
162162 os_fstat_t FileStatus ;
163163 CFE_ES_AppRecord_t * AppRecPtr ;
164164
165- AppRecPtr = CFE_ES_LocateAppRecordByID (AppID );
166- if (AppRecPtr ! = NULL )
165+ AppRecPtr = CFE_ES_LockUserAppRecord (AppID , "Restart" );
166+ if (AppRecPtr = = NULL )
167167 {
168- CFE_ES_LockSharedData (__func__ , __LINE__ );
169-
170- /*
171- ** Check to see if the App is an external cFE App.
172- */
173- if (AppRecPtr -> Type == CFE_ES_AppType_CORE )
174- {
175- CFE_ES_SysLogWrite_Unsync ("%s: Cannot Restart a CORE Application: %s.\n" , __func__ ,
176- CFE_ES_AppRecordGetName (AppRecPtr ));
177- ReturnCode = CFE_ES_ERR_RESOURCEID_NOT_VALID ;
178- }
179- else if (AppRecPtr -> AppState != CFE_ES_AppState_RUNNING )
168+ /* Lock function already wrote log message */
169+ ReturnCode = CFE_ES_ERR_RESOURCEID_NOT_VALID ;
170+ }
171+ else
172+ {
173+ if (OS_stat (AppRecPtr -> StartParams .BasicInfo .FileName , & FileStatus ) == OS_SUCCESS )
180174 {
181- CFE_ES_SysLogWrite_Unsync ("%s: Cannot Restart Application %s, It is not running. \n" , __func__ ,
175+ CFE_ES_SysLogWrite_Unsync ("%s: Restart Application %s Initiated \n" , __func__ ,
182176 CFE_ES_AppRecordGetName (AppRecPtr ));
183- ReturnCode = CFE_ES_ERR_RESOURCEID_NOT_VALID ;
177+ AppRecPtr -> ControlReq . AppControlRequest = CFE_ES_RunStatus_SYS_RESTART ;
184178 }
185179 else
186180 {
187- /*
188- ** Check to see if the file exists
189- */
190- if (OS_stat (AppRecPtr -> StartParams .BasicInfo .FileName , & FileStatus ) == OS_SUCCESS )
191- {
192- CFE_ES_SysLogWrite_Unsync ("%s: Restart Application %s Initiated\n" , __func__ ,
193- CFE_ES_AppRecordGetName (AppRecPtr ));
194- AppRecPtr -> ControlReq .AppControlRequest = CFE_ES_RunStatus_SYS_RESTART ;
195- }
196- else
197- {
198- CFE_ES_SysLogWrite_Unsync ("%s: Cannot Restart Application %s, File %s does not exist.\n" , __func__ ,
199- CFE_ES_AppRecordGetName (AppRecPtr ),
200- AppRecPtr -> StartParams .BasicInfo .FileName );
201- ReturnCode = CFE_ES_FILE_IO_ERR ;
202- }
181+ CFE_ES_SysLogWrite_Unsync ("%s: Cannot Restart Application %s, File %s does not exist.\n" , __func__ ,
182+ CFE_ES_AppRecordGetName (AppRecPtr ), AppRecPtr -> StartParams .BasicInfo .FileName );
183+ ReturnCode = CFE_ES_FILE_IO_ERR ;
203184 }
204185
205186 CFE_ES_UnlockSharedData (__func__ , __LINE__ );
206187 }
207- else /* App ID is not valid */
208- {
209- ReturnCode = CFE_ES_ERR_RESOURCEID_NOT_VALID ;
210-
211- CFE_ES_WriteToSysLog ("%s: Invalid Application ID received, AppID = %lu\n" , __func__ ,
212- CFE_RESOURCEID_TO_ULONG (AppID ));
213- }
214188
215189 return ReturnCode ;
216190}
@@ -225,58 +199,42 @@ CFE_Status_t CFE_ES_ReloadApp(CFE_ES_AppId_t AppID, const char *AppFileName)
225199{
226200 int32 ReturnCode = CFE_SUCCESS ;
227201 os_fstat_t FileStatus ;
228- CFE_ES_AppRecord_t * AppRecPtr = CFE_ES_LocateAppRecordByID ( AppID ) ;
202+ CFE_ES_AppRecord_t * AppRecPtr ;
229203
230- if (AppRecPtr ! = NULL )
204+ if (AppFileName = = NULL )
231205 {
232- CFE_ES_LockSharedData (__func__ , __LINE__ );
206+ return CFE_ES_BAD_ARGUMENT ;
207+ }
233208
209+ AppRecPtr = CFE_ES_LockUserAppRecord (AppID , "Reload" );
210+ if (AppRecPtr == NULL )
211+ {
212+ /* Lock function already wrote log message */
213+ ReturnCode = CFE_ES_ERR_RESOURCEID_NOT_VALID ;
214+ }
215+ else
216+ {
234217 /*
235- ** Check to see if the App is an external cFE App.
218+ ** Check to see if the file exists
236219 */
237- if (AppRecPtr -> Type == CFE_ES_AppType_CORE )
238- {
239- CFE_ES_SysLogWrite_Unsync ("%s: Cannot Reload a CORE Application: %s.\n" , __func__ ,
240- CFE_ES_AppRecordGetName (AppRecPtr ));
241- ReturnCode = CFE_ES_ERR_RESOURCEID_NOT_VALID ;
242- }
243- else if (AppRecPtr -> AppState != CFE_ES_AppState_RUNNING )
220+ if (OS_stat (AppFileName , & FileStatus ) == OS_SUCCESS )
244221 {
245- CFE_ES_SysLogWrite_Unsync ("%s: Cannot Reload Application %s, It is not running.\n" , __func__ ,
246- CFE_ES_AppRecordGetName (AppRecPtr ));
247- ReturnCode = CFE_ES_ERR_RESOURCEID_NOT_VALID ;
222+ CFE_ES_SysLogWrite_Unsync ("%s: Reload Application %s Initiated. New filename = %s\n" , __func__ ,
223+ CFE_ES_AppRecordGetName (AppRecPtr ), AppFileName );
224+ strncpy (AppRecPtr -> StartParams .BasicInfo .FileName , AppFileName ,
225+ sizeof (AppRecPtr -> StartParams .BasicInfo .FileName ) - 1 );
226+ AppRecPtr -> StartParams .BasicInfo .FileName [sizeof (AppRecPtr -> StartParams .BasicInfo .FileName ) - 1 ] = 0 ;
227+ AppRecPtr -> ControlReq .AppControlRequest = CFE_ES_RunStatus_SYS_RELOAD ;
248228 }
249229 else
250230 {
251- /*
252- ** Check to see if the file exists
253- */
254- if (OS_stat (AppFileName , & FileStatus ) == OS_SUCCESS )
255- {
256- CFE_ES_SysLogWrite_Unsync ("%s: Reload Application %s Initiated. New filename = %s\n" , __func__ ,
257- CFE_ES_AppRecordGetName (AppRecPtr ), AppFileName );
258- strncpy (AppRecPtr -> StartParams .BasicInfo .FileName , AppFileName ,
259- sizeof (AppRecPtr -> StartParams .BasicInfo .FileName ) - 1 );
260- AppRecPtr -> StartParams .BasicInfo .FileName [sizeof (AppRecPtr -> StartParams .BasicInfo .FileName ) - 1 ] = 0 ;
261- AppRecPtr -> ControlReq .AppControlRequest = CFE_ES_RunStatus_SYS_RELOAD ;
262- }
263- else
264- {
265- CFE_ES_SysLogWrite_Unsync ("%s: Cannot Reload Application %s, File %s does not exist.\n" , __func__ ,
266- CFE_ES_AppRecordGetName (AppRecPtr ), AppFileName );
267- ReturnCode = CFE_ES_FILE_IO_ERR ;
268- }
231+ CFE_ES_SysLogWrite_Unsync ("%s: Cannot Reload Application %s, File %s does not exist.\n" , __func__ ,
232+ CFE_ES_AppRecordGetName (AppRecPtr ), AppFileName );
233+ ReturnCode = CFE_ES_FILE_IO_ERR ;
269234 }
270235
271236 CFE_ES_UnlockSharedData (__func__ , __LINE__ );
272237 }
273- else /* App ID is not valid */
274- {
275- ReturnCode = CFE_ES_ERR_RESOURCEID_NOT_VALID ;
276-
277- CFE_ES_WriteToSysLog ("%s: Invalid Application ID received, AppID = %lu\n" , __func__ ,
278- CFE_RESOURCEID_TO_ULONG (AppID ));
279- }
280238
281239 return ReturnCode ;
282240}
@@ -290,42 +248,21 @@ CFE_Status_t CFE_ES_ReloadApp(CFE_ES_AppId_t AppID, const char *AppFileName)
290248CFE_Status_t CFE_ES_DeleteApp (CFE_ES_AppId_t AppID )
291249{
292250 int32 ReturnCode = CFE_SUCCESS ;
293- CFE_ES_AppRecord_t * AppRecPtr = CFE_ES_LocateAppRecordByID ( AppID ) ;
251+ CFE_ES_AppRecord_t * AppRecPtr ;
294252
295- if (AppRecPtr != NULL )
253+ AppRecPtr = CFE_ES_LockUserAppRecord (AppID , "Delete" );
254+ if (AppRecPtr == NULL )
296255 {
297- CFE_ES_LockSharedData (__func__ , __LINE__ );
298-
299- /*
300- ** Check to see if the App is an external cFE App.
301- */
302- if (AppRecPtr -> Type == CFE_ES_AppType_CORE )
303- {
304- CFE_ES_SysLogWrite_Unsync ("%s: Cannot Delete a CORE Application: %s.\n" , __func__ ,
305- CFE_ES_AppRecordGetName (AppRecPtr ));
306- ReturnCode = CFE_ES_ERR_RESOURCEID_NOT_VALID ;
307- }
308- else if (AppRecPtr -> AppState != CFE_ES_AppState_RUNNING )
309- {
310- CFE_ES_SysLogWrite_Unsync ("%s: Cannot Delete Application %s, It is not running.\n" , __func__ ,
311- CFE_ES_AppRecordGetName (AppRecPtr ));
312- ReturnCode = CFE_ES_ERR_RESOURCEID_NOT_VALID ;
313- }
314- else
315- {
316- CFE_ES_SysLogWrite_Unsync ("%s: Delete Application %s Initiated\n" , __func__ ,
317- CFE_ES_AppRecordGetName (AppRecPtr ));
318- AppRecPtr -> ControlReq .AppControlRequest = CFE_ES_RunStatus_SYS_DELETE ;
319- }
320-
321- CFE_ES_UnlockSharedData (__func__ , __LINE__ );
256+ /* Lock function already wrote log message */
257+ ReturnCode = CFE_ES_ERR_RESOURCEID_NOT_VALID ;
322258 }
323- else /* App ID is not valid */
259+ else
324260 {
325- ReturnCode = CFE_ES_ERR_RESOURCEID_NOT_VALID ;
261+ CFE_ES_SysLogWrite_Unsync ("%s: Delete Application %s Initiated\n" , __func__ ,
262+ CFE_ES_AppRecordGetName (AppRecPtr ));
263+ AppRecPtr -> ControlReq .AppControlRequest = CFE_ES_RunStatus_SYS_DELETE ;
326264
327- CFE_ES_WriteToSysLog ("%s: Invalid Application ID received, AppID = %lu\n" , __func__ ,
328- CFE_RESOURCEID_TO_ULONG (AppID ));
265+ CFE_ES_UnlockSharedData (__func__ , __LINE__ );
329266 }
330267
331268 return ReturnCode ;
0 commit comments