summaryrefslogtreecommitdiffstats
path: root/systemservice/system_manager
diff options
context:
space:
mode:
authorTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>2020-11-20 23:36:23 +0900
committerTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>2020-11-22 09:02:55 +0900
commit17cf21bcf8a2e29d2cbcf0a313474d2a4ee44f5d (patch)
tree582a9768558d9eaf261ca5df6136e9de54c95816 /systemservice/system_manager
parent9e86046cdb356913ae026f616e5bf17f6f238aa5 (diff)
Re-organized sub-directory by category
Since all the sub-directories were placed in the first level, created sub-directories, "hal", "module", and "service" for classification and relocated each component. Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com> Change-Id: Ifdf743ac0d1893bd8e445455cf0d2c199a011d5c
Diffstat (limited to 'systemservice/system_manager')
-rwxr-xr-xsystemservice/system_manager/LICENSE177
-rwxr-xr-xsystemservice/system_manager/Makefile.server19
-rwxr-xr-xsystemservice/system_manager/server/Makefile118
-rwxr-xr-xsystemservice/system_manager/server/PhaseInfo.txt2
-rwxr-xr-xsystemservice/system_manager/server/include/crashdetector/ss_crashdetector.h46
-rwxr-xr-xsystemservice/system_manager/server/include/heartbeat/ss_hb_if.h67
-rwxr-xr-xsystemservice/system_manager/server/include/heartbeat/ss_hb_session.h91
-rwxr-xr-xsystemservice/system_manager/server/include/heartbeat/ss_hb_thread.h206
-rwxr-xr-xsystemservice/system_manager/server/include/processlauncher/ProcessLauncher.h58
-rwxr-xr-xsystemservice/system_manager/server/include/processlauncher/ProcessLauncher_if.h30
-rwxr-xr-xsystemservice/system_manager/server/include/processlauncher/ss_sm_process_launcher.h111
-rwxr-xr-xsystemservice/system_manager/server/include/processlauncher/ss_sm_process_launcher_protocol.h62
-rwxr-xr-xsystemservice/system_manager/server/include/ss_sm_config.h543
-rwxr-xr-xsystemservice/system_manager/server/include/ss_sm_default_paths.h42
-rwxr-xr-xsystemservice/system_manager/server/include/ss_sm_dynamic_launch_table.h72
-rwxr-xr-xsystemservice/system_manager/server/include/ss_sm_dynamic_launcher.h111
-rwxr-xr-xsystemservice/system_manager/server/include/ss_sm_launch_configuration.h191
-rwxr-xr-xsystemservice/system_manager/server/include/ss_sm_signals.h32
-rwxr-xr-xsystemservice/system_manager/server/include/ss_sm_systemmanagerlog.h91
-rwxr-xr-xsystemservice/system_manager/server/include/ss_sm_version.h39
-rwxr-xr-xsystemservice/system_manager/server/include/ss_system_manager.h760
-rwxr-xr-xsystemservice/system_manager/server/include/ss_system_manager_callbacks.h29
-rwxr-xr-xsystemservice/system_manager/server/include/ss_system_memory_monitor.h85
-rwxr-xr-xsystemservice/system_manager/server/include/ss_system_thread_info.h45
-rwxr-xr-xsystemservice/system_manager/server/include/system_launcher_cfg_format.h66
-rwxr-xr-xsystemservice/system_manager/server/sm_launch__CWORD84_.xml116
-rwxr-xr-xsystemservice/system_manager/server/src/heartbeat/ss_hb_if.cpp201
-rwxr-xr-xsystemservice/system_manager/server/src/heartbeat/ss_hb_service_protocol.cpp184
-rwxr-xr-xsystemservice/system_manager/server/src/heartbeat/ss_hb_session.cpp415
-rwxr-xr-xsystemservice/system_manager/server/src/heartbeat/ss_hb_thread.cpp355
-rwxr-xr-xsystemservice/system_manager/server/src/processlauncher/ProcessLauncher.cpp317
-rwxr-xr-xsystemservice/system_manager/server/src/processlauncher/ProcessLauncher_if.cpp126
-rwxr-xr-xsystemservice/system_manager/server/src/ss_sm_config.cpp1528
-rwxr-xr-xsystemservice/system_manager/server/src/ss_sm_dynamic_launcher.cpp221
-rwxr-xr-xsystemservice/system_manager/server/src/ss_sm_version.cpp79
-rwxr-xr-xsystemservice/system_manager/server/src/ss_system_manager.cpp3655
-rwxr-xr-xsystemservice/system_manager/server/src/ss_system_manager_callbacks.cpp3411
-rwxr-xr-xsystemservice/system_manager/server/src/ss_system_manager_error_event.cpp945
-rwxr-xr-xsystemservice/system_manager/server/src/ss_system_manager_error_event_responses.cpp1007
-rwxr-xr-xsystemservice/system_manager/server/src/ss_system_manager_error_event_triggers.cpp1093
-rwxr-xr-xsystemservice/system_manager/server/src/ss_system_memory_monitor.cpp362
-rwxr-xr-xsystemservice/system_manager/server/src/systemmanager_application.cpp237
-rwxr-xr-xsystemservice/system_manager/server/src/systemmanager_main.cpp120
-rwxr-xr-xsystemservice/system_manager/server/version.txt2
44 files changed, 0 insertions, 17467 deletions
diff --git a/systemservice/system_manager/LICENSE b/systemservice/system_manager/LICENSE
deleted file mode 100755
index f433b1a..0000000
--- a/systemservice/system_manager/LICENSE
+++ /dev/null
@@ -1,177 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
diff --git a/systemservice/system_manager/Makefile.server b/systemservice/system_manager/Makefile.server
deleted file mode 100755
index 83bc39b..0000000
--- a/systemservice/system_manager/Makefile.server
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-SUBDIRS += server
-
-include ../system_service.mk
diff --git a/systemservice/system_manager/server/Makefile b/systemservice/system_manager/server/Makefile
deleted file mode 100755
index 04185f9..0000000
--- a/systemservice/system_manager/server/Makefile
+++ /dev/null
@@ -1,118 +0,0 @@
-#
-# @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-######### installed program #############
-INST_PROGS = SS_SystemManager
-
-######### installed library(*.a) #############
-
-
-######### installed shared library(*.so) #############
-
-
-######### install headers(*.h) #############
-
-
-######### compiled sources #############
-SS_SystemManager_SRCS += ./src/processlauncher/ProcessLauncher.cpp
-SS_SystemManager_SRCS += ./src/processlauncher/ProcessLauncher_if.cpp
-SS_SystemManager_SRCS += ./src/heartbeat/ss_hb_if.cpp
-SS_SystemManager_SRCS += ./src/heartbeat/ss_hb_service_protocol.cpp
-SS_SystemManager_SRCS += ./src/heartbeat/ss_hb_session.cpp
-SS_SystemManager_SRCS += ./src/heartbeat/ss_hb_thread.cpp
-SS_SystemManager_SRCS += ./src/systemmanager_application.cpp
-SS_SystemManager_SRCS += ./src/systemmanager_main.cpp
-SS_SystemManager_SRCS += ./src/ss_sm_config.cpp
-SS_SystemManager_SRCS += ./src/ss_sm_dynamic_launcher.cpp
-SS_SystemManager_SRCS += ./src/ss_sm_version.cpp
-SS_SystemManager_SRCS += ./src/ss_system_manager.cpp
-SS_SystemManager_SRCS += ./src/ss_system_manager_callbacks.cpp
-SS_SystemManager_SRCS += ./src/ss_system_manager_error_event.cpp
-SS_SystemManager_SRCS += ./src/ss_system_manager_error_event_responses.cpp
-SS_SystemManager_SRCS += ./src/ss_system_manager_error_event_triggers.cpp
-SS_SystemManager_SRCS += ./src/ss_system_memory_monitor.cpp
-
-######### add source path #############
-
-
-######### add include path #############
-CPPFLAGS += -I./
-CPPFLAGS += -I./include
-CPPFLAGS += -I./include/heartbeat
-CPPFLAGS += -I./include/processlauncher
-CPPFLAGS += -I./../../interface_unified/library/include
-
-######### add compile option #############
-CPPFLAGS += -DLINUX
-CPPFLAGS += -DIMPL_AGL_APPLICATION_CALLBACKS_PRE_BACKGROUND
-
-CPPFLAGS_ProcessLauncher.o = -fno-exceptions
-CPPFLAGS_ProcessLauncher_if.o = -fno-exceptions
-CPPFLAGS_ss_hb_if.o = -fno-exceptions
-CPPFLAGS_ss_hb_thread.o = -fno-exceptions
-CPPFLAGS_systemmanager_application.o = -fno-exceptions
-CPPFLAGS_systemmanager_main.o = -fno-exceptions
-CPPFLAGS_ss_system_memory_monitor.o = -fno-exceptions
-CPPFLAGS_ss_hb_service_protocol.o = -fno-exceptions
-CPPFLAGS_ss_hb_session.o = -fno-exceptions
-CPPFLAGS_ss_sm_dynamic_launcher.o = -fno-exceptions
-CPPFLAGS_ss_sm_version.o = -fno-exceptions
-CPPFLAGS_ss_system_manager.o = -fno-exceptions
-CPPFLAGS_ss_system_manager_error_event.o = -fno-exceptions
-
-######### linked library #############
-#LDLIBS += -Wl,-Bstatic -lxxx
-LDLIBS += -Wl,-Bstatic -lSS_LoggerStoreLogs
-
-######### linked library (dynamic) #############
-LDLIBS += -Wl,-Bdynamic -lstdc++
-LDLIBS += -Wl,-Bdynamic -lrt # for mq_xxx
-LDLIBS += -Wl,-Bdynamic -lSS_SystemIfUnified
-LDLIBS += -Wl,-Bdynamic -lssver
-
-LDLIBS += -Wl,-Bdynamic -lresm
-LDLIBS += -Wl,-Bdynamic -lsssmcfg
-LDLIBS += -Wl,-Bdynamic -lDiagCodeAPI
-LDLIBS += -Wl,-Bdynamic -lClock_API
-LDLIBS += -Wl,-Bdynamic -lpower_hal
-
-LDLIBS += -Wl,-Bdynamic -lcommon
-LDLIBS += -Wl,-Bdynamic -lNS_FrameworkUnified
-LDLIBS += -Wl,-Bdynamic -lPosixBasedOS001legacy
-LDLIBS += -Wl,-Bdynamic -lvp
-LDLIBS += -Wl,-Bdynamic -ltar -lz
-LDLIBS += -Wl,-Bdynamic -lrpc -lev
-
-######### add library path #############
-LDFLAGS += -g -Wl,--gc-sections
-LDFLAGS += -Wl,--warn-unresolved-symbols
-LDFLAGS += -Wl,--no-as-needed
-
-LINK_CXX=Y
-
-install-data: install_data
-
-install_data:
- cpp -P -include $(SDKTARGETSYSROOT)/usr/agl/include/agl_thread.h ./sm_launch__CWORD84_.xml ./sm_launch.tmp.xml
- $(SDKTARGETSYSROOT)/usr/agl/share/launch_xml2cfg.sh ./sm_launch.tmp.xml > ./sm_launch.cfg
- install -d -m 755 $(DESTDIR)/usr/agl/conf/BS/ss/system_manager/rwdata
- install -m 644 ./sm_launch.cfg $(DESTDIR)/usr/agl/conf/BS/ss/system_manager/rwdata
- install -d -m 755 $(DESTDIR)/nv/BS/ss/system_manager/rwdata
- install -d -m 755 $(DESTDIR)/usr/agl/share/BS/ss/system_manager/rodata
- install -m 644 ./version.txt $(DESTDIR)/usr/agl/share/BS/ss/system_manager/rodata
- install -m 644 ./PhaseInfo.txt $(DESTDIR)/usr/agl/share/BS/ss/system_manager/rodata
-
-include ../../system_service.mk
diff --git a/systemservice/system_manager/server/PhaseInfo.txt b/systemservice/system_manager/server/PhaseInfo.txt
deleted file mode 100755
index 7ed792b..0000000
--- a/systemservice/system_manager/server/PhaseInfo.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Unknown
-20191026
diff --git a/systemservice/system_manager/server/include/crashdetector/ss_crashdetector.h b/systemservice/system_manager/server/include/crashdetector/ss_crashdetector.h
deleted file mode 100755
index ae05af4..0000000
--- a/systemservice/system_manager/server/include/crashdetector/ss_crashdetector.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for child process exit detection.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_CRASH_DETECTOR_H_ // NOLINT
-#define SS_CRASH_DETECTOR_H_
-
-#include <string>
-
-class CCrashDetector {
- public:
- CCrashDetector();
- virtual ~CCrashDetector();
- EFrameworkunifiedStatus CrashDetectorInitialize(HANDLE hApp);
- PCSTR CrashDetectorGetThreadName();
-
- HANDLE m_hSmQueue;
-
- private:
- SI_32 CrashDetectorGetThreadPriority();
-
- HANDLE m_hApp;
- pthread_t m_ThreadId;
- std::string m_ThreadName;
- SI_32 m_siPriority;
-};
-
-#endif // SS_CRASH_DETECTOR_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/heartbeat/ss_hb_if.h b/systemservice/system_manager/server/include/heartbeat/ss_hb_if.h
deleted file mode 100755
index 8d6618f..0000000
--- a/systemservice/system_manager/server/include/heartbeat/ss_hb_if.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for the application heartbeat system.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef HEARTBEAT_INTERFACE_H_ // NOLINT
-#define HEARTBEAT_INTERFACE_H_
-
-#include <system_service/ss_system_manager_if.h>
-#include <system_service/ss_system_manager_if_local.h>
-
-/**
- * Enumeration: message category
- */
-typedef enum HB_STATUS {
- HB_STATUS_INVALID
- , HB_STATUS_REGISTERED
- , HB_STATUS_GOOD
- , HB_STATUS_FAILED
- , HB_STATUS_TIMEOUT
-} EHBStatus;
-
-/*
- * Structure: report message data
- */
-typedef struct MODULE_INFO {
-#define SS_SM_HB_MAX_PROC_NAME_SIZE 16
- EHBStatus ProcHBState;
- UI_32 HeartBeatRetryCount;
- // "ProcQueueName" is limited 16 bytes (included terminal-character NULL), so that the size of "THbReportData" will be lower than 4K Bytes.
- CHAR ProcQueueName[SS_SM_HB_MAX_PROC_NAME_SIZE];
-} TSmModuleInfo;
-
-typedef struct HB_REPORT_DATA {
- EHBStatus eEntireState; ///< entire state for a request.
- ///< if all modules are success, it's success, otherwise failed.
- UI_32 nNumOfModules; ///< number of modules
- TSmModuleInfo tModuleList[SS_MAX_NUM_MODULES]; ///< module information list, which include module IDs and states
-} THbReportData;
-
-typedef struct HB_AVAIL_CHECK {
- BOOL isOk;
- CHAR serviceName[SS_SM_HB_MAX_PROC_NAME_SIZE];
-} THbAvailCheck;
-
-
-EFrameworkunifiedStatus HBThreadStart(HANDLE hThread);
-EFrameworkunifiedStatus HBThreadStop(HANDLE hThread);
-
-#endif // HEARTBEAT_INTERFACE_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/heartbeat/ss_hb_session.h b/systemservice/system_manager/server/include/heartbeat/ss_hb_session.h
deleted file mode 100755
index 5414f09..0000000
--- a/systemservice/system_manager/server/include/heartbeat/ss_hb_session.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for the application heartbeat system.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_HEARTBEAT_SESSION_H_ // NOLINT
-#define SS_HEARTBEAT_SESSION_H_
-
-#include <native_service/frameworkunified_types.h>
-#include <system_service/ss_heartbeat_service_protocol.h>
-#include <system_service/ss_system_manager_if.h>
-#include <system_service/ss_system_manager_if_local.h>
-#include <map>
-#include <string>
-
-#include "ss_hb_if.h"
-
-// The name of the module that is trying to open a session with Heart Beat
-typedef std::string SubscriberName;
-
-/*
- *
- */
-class CHeartBeatSessionHandler {
- public:
- CHeartBeatSessionHandler();
- virtual ~CHeartBeatSessionHandler();
-
- EFrameworkunifiedStatus HBProcessClientResponse(HANDLE hApp);
-
- EFrameworkunifiedStatus HBEntrySubscriber(SubscriberName &f_Subscriber); // NOLINT
- EFrameworkunifiedStatus HBSendRequest(HANDLE hApp, SI_32 f_HeartBeatIntervalRepeat, SI_32 f_ChkIndex);
- EFrameworkunifiedStatus HBCheckResponses(THbReportData &f_tReportData, UI_32 f_MaxHeartBeatRetryCount, // NOLINT
- SI_32 f_HeartBeatIntervalRepeat, SI_32 f_ChkIndex);
-
- EFrameworkunifiedStatus HBDeleteRegisteredClientEntry(HANDLE f_hThread, PSTR pQueueName);
- EFrameworkunifiedStatus HBAvailableCheck(THbAvailCheck &check); // NOLINT
-
- VOID HBPrintConnection();
- VOID HBPrintStack(UI_32 f_MaxHeartBeatRetryCount);
-
- private:
- class HbSessionInfo {
- public:
- std::string szName;
- HANDLE hSession;
- BOOL fRunning;
- BOOL fHeartBeatRequestSent;
- BOOL fHeartBeatResponseReceived;
- UI_8 HeartBeatRetryCount;
- BOOL fHeartBeatTimedOut;
- BOOL fisAvailability;
-
- // Copy constructor
- HbSessionInfo(const HbSessionInfo &f_SessionInfo) {
- szName = f_SessionInfo.szName;
- hSession = f_SessionInfo.hSession;
- fRunning = f_SessionInfo.fRunning;
- fHeartBeatRequestSent = f_SessionInfo.fHeartBeatRequestSent;
- fHeartBeatResponseReceived = f_SessionInfo.fHeartBeatResponseReceived;
- HeartBeatRetryCount = f_SessionInfo.HeartBeatRetryCount;
- fHeartBeatTimedOut = f_SessionInfo.fHeartBeatTimedOut;
- fisAvailability = f_SessionInfo.fisAvailability;
- }
-
- explicit HbSessionInfo(SubscriberName f_Subscriber);
- };
-
- typedef std::map<SubscriberName, HbSessionInfo> HbSessionMap;
- typedef HbSessionMap::iterator HbSessionIter;
-
- HbSessionMap m_mapHbSessions;
-};
-#endif // SS_HEARTBEAT_SESSION_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/heartbeat/ss_hb_thread.h b/systemservice/system_manager/server/include/heartbeat/ss_hb_thread.h
deleted file mode 100755
index 7ca8e17..0000000
--- a/systemservice/system_manager/server/include/heartbeat/ss_hb_thread.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for the application heartbeat system.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef HEARTBEAT_WORKER_H_ // NOLINT
-#define HEARTBEAT_WORKER_H_
-
-#include <native_service/frameworkunified_types.h>
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/frameworkunified_multithreading.h>
-#include <system_service/ss_system_timer.h>
-
-#include "ss_hb_session.h"
-#include "ss_sm_config.h"
-
-
-class CHeartBeatThread {
- public:
- explicit CHeartBeatThread(HANDLE f_hThread);
- virtual ~CHeartBeatThread();
-
- ///////////////////////////
- /// HBPublishAvailabilityStatus
- /// At HeartBeat sends NTFY_Availability with availability
- /// notification to alert client that HeartBeat is available/not available.
- ///
- /// \param [in] hThread
- /// HANDLE - Handle of HeartBeat
- ///
- /// \return status
- /// EFrameworkunifiedStatus - success or error
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- EFrameworkunifiedStatus HBPublishAvailabilityStatus(HANDLE hThread, BOOL f_AvailabiltyStatus);
-
- ///////////////////////////
- /// HBOnStartThread
- /// Creates and starts the HeartBeat timer
- ///
- /// \param [in] hThread
- /// HANDLE - Handle of HeartBeat
- ///
- /// \return status
- /// EFrameworkunifiedStatus - success or error
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- EFrameworkunifiedStatus HBOnStartThread(HANDLE hThread);
-
-
- ///////////////////////////
- /// HBOnStopThread
- /// Stops and deletes the HeartBeat timer
- ///
- /// \param [in] hThread
- /// HANDLE - Handle of HeartBeat
- ///
- /// \return status
- /// EFrameworkunifiedStatus - success or error
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- EFrameworkunifiedStatus HBOnStopThread(HANDLE hThread);
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// HBOnPrintConnections
- /// Prints all active sessions connected to HeartBeat
- ///
- /// \param [in] hThread
- /// HANDLE - Handle of HeartBeat
- ///
- /// \return status
- /// EFrameworkunifiedStatus - success or error
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- EFrameworkunifiedStatus HBOnPrintConnections(HANDLE hThread);
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// HBOnPrintStack
- /// Prints all sessions connected to HeartBeat
- ///
- /// \param [in] hThread
- /// HANDLE - Handle of HeartBeat
- ///
- /// \return status
- /// EFrameworkunifiedStatus - success or error
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- EFrameworkunifiedStatus HBOnPrintStack(HANDLE hThread);
-
- ///////////////////////////
- /// HBOnTimerExpiry
- /// When APP timer expires, this method sends the HeartBeat request to the client.
- ///
- /// \param [in] hThread
- /// HANDLE - Handle of HeartBeat
- ///
- /// \return status
- /// EFrameworkunifiedStatus - success or error
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- EFrameworkunifiedStatus HBOnTimerExpiry(HANDLE hThread);
-
- ///////////////////////////
- /// HBOnClientResponse
- /// When the response from a client is received, this method updates the map
- /// containing client status to indicate the response.
- ///
- ///
- /// \param [in] hThread
- /// HANDLE - Handle of HeartBeat
- ///
- /// \return status
- /// EFrameworkunifiedStatus - success or error
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- EFrameworkunifiedStatus HBOnClientResponse(HANDLE hThread);
-
- ///////////////////////////
- /// HBOnPeriodicStatusRequest
- /// Reply to Status request from System Manager
- ///
- /// \param [in] hThread
- /// HANDLE - Handle of HeartBeat
- ///
- /// \return status
- /// EFrameworkunifiedStatus - success or error
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- EFrameworkunifiedStatus HBOnPeriodicStatusRequest(HANDLE hThread);
-
-
- ///////////////////////////
- /// HBOnAvailCheckRequest
- /// Reply to service's availability condition request from System Manager
- ///
- /// \param [in] hThread
- /// HANDLE - Handle of HeartBeat
- ///
- /// \return status
- /// EFrameworkunifiedStatus - success or error
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- EFrameworkunifiedStatus HBOnAvailCheckRequest(HANDLE hThread);
-
- ///////////////////////////
- /// HBOnRemoveModule
- /// Upon receiving delete module notification from sysmgr, this method removes
- /// a client from the client session map.
- ///
- /// \param [in] hThread
- /// HANDLE - Handle of HeartBeat
- ///
- /// \return status
- /// EFrameworkunifiedStatus - success or error
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- EFrameworkunifiedStatus HBOnRemoveModule(HANDLE hApp);
-
- ///////////////////////////
- /// HBOnAppendModule
- /// Upon receiving append module notification from sysmgr, this method append
- /// a client from the client session map.
- ///
- /// \param [in] hThread
- /// HANDLE - Handle of HeartBeat
- ///
- /// \return status
- /// EFrameworkunifiedStatus - success or error
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- EFrameworkunifiedStatus HBOnAppendModule(HANDLE hApp);
-
- // Service notification handlers
- EFrameworkunifiedStatus HBSendRequest(HANDLE hApp);
- EFrameworkunifiedStatus HBCheckHeartBeatResponses(HANDLE hThread);
- EFrameworkunifiedStatus HBDeleteRegisteredClientEntry(PSTR pModuleName);
-
- EFrameworkunifiedStatus HeartBeatTimerInit(HANDLE hThread);
- EFrameworkunifiedStatus HeartBeatTimersDelete(void);
-
- private:
- CHeartBeatSessionHandler m_oSessionHandler;
- TimerCtrl m_oTimerCtrl;
- UI_32 m_HBTimerID;
- HBConfigParameters m_HBConfigParams;
- SI_32 m_NextChkIndex;
- HANDLE m_hThread;
-};
-#endif // HEARTBEAT_WORKER_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/processlauncher/ProcessLauncher.h b/systemservice/system_manager/server/include/processlauncher/ProcessLauncher.h
deleted file mode 100755
index 409524f..0000000
--- a/systemservice/system_manager/server/include/processlauncher/ProcessLauncher.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for process launching and termination.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef CPROCESSLAUNCHER_H_ // NOLINT
-#define CPROCESSLAUNCHER_H_
-
-#include <native_service/frameworkunified_types.h>
-#include <system_service/ss_system_process.h>
-#include <string>
-#include "ss_system_manager.h"
-#include "ss_sm_process_launcher.h"
-
-/*
- *
- */
-class CProcessLauncher {
- public:
- CProcessLauncher();
- explicit CProcessLauncher(void *);
- virtual ~CProcessLauncher();
-
- EFrameworkunifiedStatus PLOnCmdTerminateModule(HANDLE hThread);
- EFrameworkunifiedStatus PLOnCmdModuleStatus(HANDLE hThread);
- EFrameworkunifiedStatus PLOnCmdLaunchModule(HANDLE hThread);
- EFrameworkunifiedStatus PLOnCmdRelaunchModule(HANDLE hThread);
- EFrameworkunifiedStatus PLOnCmdHeartbeatStatusReq(HANDLE hThread);
- EFrameworkunifiedStatus PLOnCmdStop(HANDLE hThread);
- EFrameworkunifiedStatus PLOnCmdStart(HANDLE hThread);
- protected:
- ProcessMap m_mapOfProcesses;
-
- private:
- EFrameworkunifiedStatus PLCmdLaunchModule(HANDLE hThread,
- UI_32 f_protocol_ID,
- std::string f_protocol_str);
- EFrameworkunifiedStatus PLLaunchModule(HANDLE hThread, T_ProcessLaunchResp &f_LaunchRespData); // NOLINT
- EFrameworkunifiedStatus PLTerminateModule(HANDLE hThread, T_ProcessLauncherTerminationResp *f_pTerminateRespData = NULL);
-};
-#endif // CPROCESSLAUNCHER_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/processlauncher/ProcessLauncher_if.h b/systemservice/system_manager/server/include/processlauncher/ProcessLauncher_if.h
deleted file mode 100755
index f8d047a..0000000
--- a/systemservice/system_manager/server/include/processlauncher/ProcessLauncher_if.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for process launching and termination.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef PROCESSLAUNCHER_IF_H_ // NOLINT
-#define PROCESSLAUNCHER_IF_H_
-
-EFrameworkunifiedStatus ProcessLauncherOnStart(HANDLE hThread);
-EFrameworkunifiedStatus ProcessLauncherOnStop(HANDLE hThread);
-
-#endif // NOLINT
-
diff --git a/systemservice/system_manager/server/include/processlauncher/ss_sm_process_launcher.h b/systemservice/system_manager/server/include/processlauncher/ss_sm_process_launcher.h
deleted file mode 100755
index 1ca177c..0000000
--- a/systemservice/system_manager/server/include/processlauncher/ss_sm_process_launcher.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for process launching and termination.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_SM_PROCESS_LAUNCHER_H_ // NOLINT
-#define SS_SM_PROCESS_LAUNCHER_H_
-
-#include <native_service/frameworkunified_types.h>
-#include <system_service/ss_system_manager_protocol.h>
-#include <system_service/ss_system_manager_protocol_local.h>
-
-#include "ss_sm_config.h"
-
-///////////////////////////////////////////////////////////////////////////////
-/// System manager launches the modules using the process launcher.
-/// The system manager launches the modules by sending the data about the process to be launched by
-/// the message ePLThrdCmd_LAUNCH_MODULE_REQST.
-/// SM => PL
-///////////////////////////////////////////////////////////////////////////////
-typedef struct {
- CHAR name[SS_SM_MAX_MODULE_NAME_LENGTH];
- CHAR path[SS_SM_MAX_MODULE_PATH_LENGTH];
- CHAR args[SS_SM_MAX_MODULE_ARGS_LENGTH];
- UI_32 priority;
- CHAR logging_mask[SS_SM_MAX_MODULE_LOG_MASK_LENGTH];
- GroupLaunchMapIter groupIterator;
- ModuleLaunchListIter moduleIterator;
- int cpu_assign;
-} T_ProcessLauncherLaunchReq;
-
-///////////////////////////////////////////////////////////////////////////////
-/// After successfully launching an module, the process launcher sends the
-/// pid of the launched process along with the process name and arguments
-/// by the message ePLThrdCmd_LAUNCH_MODULE_RESP.
-/// System manager will verify the process name and the arguments and update
-/// the pid in its process table.
-///
-/// This message will be sent for every module that is launched by process launcher.
-/// Launch success returns a number > 0 for ProcessID, which is the PID of the
-/// newly created process.
-/// Launch failure returns -1 for ProcessID.
-/// PL => SM
-///////////////////////////////////////////////////////////////////////////////
-/// The response of the module relaunch message from process launcher to system
-/// manager ePLThrdCmd_RELAUNCH_MODULE_RESP is defined by the below structure
-/// A process ID value of > 0 indicates the success of the operation.
-/// The process name and args are used to ensure correct mapping of requests
-/// and responses.
-/// PL => SM
-///////////////////////////////////////////////////////////////////////////////
-typedef struct {
- SI_32 pid;
- CHAR name[SS_SM_MAX_MODULE_NAME_LENGTH];
- CHAR path[SS_SM_MAX_MODULE_PATH_LENGTH];
- CHAR args[SS_SM_MAX_MODULE_ARGS_LENGTH];
- UI_32 priority;
- GroupLaunchMapIter groupIterator;
- ModuleLaunchListIter moduleIterator;
-} T_ProcessLaunchResp;
-
-///////////////////////////////////////////////////////////////////////////////
-/// System manager terminates the process when it detects there is something
-/// wrong with the process. The system manager send the message
-/// ePLThrdCmd_TERMINATE_MODULE_REQST to process launcher as required.
-/// The request data is defined as below
-/// SM => PL
-///////////////////////////////////////////////////////////////////////////////
-typedef T_ProcessLauncherLaunchReq T_ProcessLauncherTerminationReq;
-
-///////////////////////////////////////////////////////////////////////////////
-/// The response of the module termination response message from process
-/// launcher to system manager
-/// ePLThrdCmd_TERMINATE_MODULE_RESP is defined by the below structure
-/// A ProcessID value of 0 indicates the success of the operation.
-/// The process name and args are used to ensure correct mapping of requests
-/// and responses.
-/// PL => SM
-///////////////////////////////////////////////////////////////////////////////
-typedef T_ProcessLaunchResp T_ProcessLauncherTerminationResp;
-
-///////////////////////////////////////////////////////////////////////////////
-/// The system manager requests a module relaunch by the message
-/// ePLThrdCmd_RELAUNCH_MODULE_REQST.
-/// The message data is described by the below structure
-/// The old process ID is passed sent in the request and a new process ID is
-/// expected in the response.
-/// The process launcher launches the module and does internal retries for this
-/// kind of request in case of failure.
-/// SM => PL
-///////////////////////////////////////////////////////////////////////////////
-typedef T_ProcessLauncherLaunchReq T_ProcessLauncherRelaunchReq;
-
-#endif // SS_SM_PROCESS_LAUNCHER_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/processlauncher/ss_sm_process_launcher_protocol.h b/systemservice/system_manager/server/include/processlauncher/ss_sm_process_launcher_protocol.h
deleted file mode 100755
index cd69832..0000000
--- a/systemservice/system_manager/server/include/processlauncher/ss_sm_process_launcher_protocol.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for process launching and termination.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_SM_PROCESS_LAUNCHER_PROTOCOL_H_ // NOLINT
-#define SS_SM_PROCESS_LAUNCHER_PROTOCOL_H_
-
-#include <native_service/frameworkunified_types.h>
-#include <system_service/ss_system_manager_protocol_local.h>
-#include <system_service/ss_system_manager_protocol.h>
-
-typedef enum _ESMPLThreadCommandIds {
- //// <
- ePLThrdCmd_LAUNCH_MODULE_REQST = 0x543, ///< SM --> SM.ProcessLauncher
-
- //// <
- ePLThrdCmd_LAUNCH_MODULE_RESP, ///< SM.ProcessLauncher --> SM
-
- //// <
- ePLThrdCmd_TERMINATE_MODULE_REQST, ///< SM --> SM.ProcessLauncher
-
- //// <
- ePLThrdCmd_TERMINATE_MODULE_RESP, ///< SM.ProcessLauncher --> SM
-
- //// <
- ePLThrdCmd_RELAUNCH_MODULE_REQST, ///< SM --> SM.ProcessLauncher
-
- //// <
- ePLThrdCmd_RELAUNCH_MODULE_RESP, ///< SM.ProcessLauncher --> SM
-
- //// <
- ePLThrdCmd_MODULE_STATUS_REQST, ///< SM --> SM.ProcessLauncher
-
- //// <
- ePLThrdCmd_THREAD_STATUS_REQST, ///< SM --> SM.ProcessLauncher
-
- //// <
- ePLThrdCmd_THREAD_STATUS_RESP, ///< SM.ProcessLauncher --> SM
-
- ePLThrdCmd_NONE, ///< Not sent. Used for initialization.
-} ESMPLThreadCommandIds;
-
-
-#endif // SS_SM_PROCESS_LAUNCHER_PROTOCOL_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/ss_sm_config.h b/systemservice/system_manager/server/include/ss_sm_config.h
deleted file mode 100755
index 19736f6..0000000
--- a/systemservice/system_manager/server/include/ss_sm_config.h
+++ /dev/null
@@ -1,543 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager configuration.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_SM_CONFIG_H_ // NOLINT
-#define SS_SM_CONFIG_H_
-
-#include <native_service/ns_config_parser_if.h>
-#include <system_service/ss_system_types.h>
-#include <system_service/ss_system_manager_if.h>
-#include <system_service/ss_system_manager_if_local.h>
-#include <system_service/ss_system_manager_protocol.h>
-#include <system_service/ss_string_maps.h>
-#include <list>
-#include <map>
-#include <string>
-#include <vector>
-#include "ss_sm_process_launcher_protocol.h"
-
-
-/// All timer values are **position-dependent** in the timer calls ! These
-/// defines are currently all used as Start and Restart Seconds parameters.
-/// \param [in] id
-/// UI_32 - timer id that you want to start
-/// \param [in] ss
-/// UI_32 - Start time in seconds
-/// \param [in] sms
-/// UI_32 - Start time in milliseconds
-/// \param [in] rs
-/// UI_32 - Repeat time in seconds
-/// \param [in] rms
-/// UI_32 - Repeat time in milliseconds
-#define SS_GROUP_LAUNCH_TIMER_CONFIG (3)
-#define SS_HEARTBEAT_MONITOR_TIMER_CONFIG (10)
-#define SS_PROCESSLAUNCHER_MONITOR_TIMER_CONFIG (10)
-#define SS_CLIENT_START_MONITOR_TIMER_CONFIG (3)
-#define SS_CLIENT_STOP_MONITOR_TIMER_CONFIG (1)
-#define SS_NPP_STATUS_CHECK_MONITOR_TIME_SEC (5)
-#define SS_LAUNCH_GROUP_TRIGGER_TIMER_CONFIG (10)
-// size of the internal debug dump buffer
-#define SS_SM_DEBUG_DUMP_MAX_SIZE (12288u)
-// number of _CWORD56_ command history log entries for the debug dump
-#define SS_SM__CWORD56__CMD_HIST_SIZE (10u)
-// number of timer history log entries for the debug dump
-#define SS_SM_TIMER_CMD_HIST_SIZE (10u)
-// number of message history log entries for the debug dump
-#define SS_SM_CMD_HIST_SIZE (20u)
-// number of publishing history log entries for the debug dump
-#define SS_SM_PUB_CMD_HIST_SIZE (5u)
-// number of error history log entries for the debug dump
-#define SS_SM_ERR_HIST_SIZE (5u)
-
-// When occurs repeat to abnormal rebooting, logging cause of error at first time and next time.
-// When it occurs "ILG_RESET", Maximum number of log is 4 so that the log will be stored at the just after the startup.
-// Need reconsideration if maximum number of abnormal logging is less than 4 using SSL.
-#define SS_SM_ERR_LOGGING_LIMIT (8)
-
-// Maximum number of continuous processing of "NaviReset" by errors.
-// It try to recover by NaviDet when it exceeds this limit.
-#define SS_SM_ERR_NAVI_RESET_LIMIT (5)
-
-typedef enum {
- MODULE_STATE_INVALID = 0 /// Initial state of all modules
- , MODULE_STATE_SKIPPED /// Non-critical module has crossed max re-launch limit
- /// or hSession was null when attempted to start
- , MODULE_STATE_LAUNCHING /// Module launch has been requested
- , MODULE_STATE_LAUNCHED /// Module has been launched but a session
- /// connection has NOT been established
- , MODULE_STATE_LAUNCH_FAILED /// Oops
- , MODULE_STATE_CONNECTED /// A session connection has been established
- , MODULE_STATE_START_SENT /// SM has sent START to the module
- , MODULE_STATE_START_FAILED /// FrameworkunifiedSendMsg(SS_SM_START) failed
- , MODULE_STATE_STARTED /// Module has replied START Complete to SM
- , MODULE_STATE_STOP_SENT /// SM has sent STOP to the module
- , MODULE_STATE_STOP_FAILED /// FrameworkunifiedSendMsg(SS_SM_STOP) failed
- , MODULE_STATE_STOPPED /// Module has replied STOP Complete to SM
- , MODULE_STATE_START_PRE_SENT //!< SM has sent Pre-boot start to the module
- , MODULE_STATE_START_PRE_FAILED //!< FrameworkunifiedSendMsg(SS_SM_PRE_START) failed
- , MODULE_STATE_STARTED_PRE //!< Module has replied Pre-boot start Complete to SM
- , MODULE_STATE_STOP_PRE_SENT //!< SM has sent Pre-boot stop to the module
- , MODULE_STATE_STOP_PRE_FAILED //!< FrameworkunifiedSendMsg(SS_SM_PRE_STOP) failed
- , MODULE_STATE_STOPPED_PRE //!< Module has replied Pre-boot stopComplete to SM
- , MODULE_STATE_START_BACKGROUND_SENT //!< SM has sent Background-boot start to the module
- , MODULE_STATE_START_BACKGROUND_FAILED //!< FrameworkunifiedSendMsg(SS_SM_BACKGROUND_START) failed
- , MODULE_STATE_STARTED_BACKGROUND //!< Module has replied Background-boot start Complete to SM
- , MODULE_STATE_STOP_BACKGROUND_SENT //!< SM has sent Background-boot stop to the module
- , MODULE_STATE_STOP_BACKGROUND_FAILED //!< FrameworkunifiedSendMsg(SS_SM_BACKGROUND_STOP) failed
- , MODULE_STATE_STOPPED_BACKGROUND //!< Module has replied Background-boot stop Complete to SM
-} SMModuleState;
-//
-// Module State string map type
-typedef std::map<SMModuleState, std::string> SMModuleStateStrMapType;
-
-typedef enum {
- MODULE_DEBUG_DUMP_STATE_NOT_REQUESTED = 0
- , MODULE_DEBUG_DUMP_STATE_REQUEST_SENT
- , MODULE_DEBUG_DUMP_STATE_RESPONSE_RECEIVED
-} SMModuleDebugDumpState;
-
-typedef std::map<SMModuleDebugDumpState, std::string> SMModuleDebugDumpStateStrMapType;
-
-/*
-<?xml version="1.0" encoding="UTF-8"?>
-<Configuration>
- <!-- System Service Launch control elements -->
- <SystemManager>
- <Launch>
- <Group1>
- <group_name>CoreModules</group_name>
- <group_id>1</group_id>
- <Member1>
- <name>TRUE</name>
- <path>1</path>
- <priority>200</priority>
- <critical>TRUE</critical>
- <retry_cnt>1</retry_cnt>
- <arguments></arguments>
- <logging_mask></logging_msk>
- <restart>group</restart>
- <shudown_critical></shudown_critical>
- <shudown_wait_time></shudown_wait_time>
- </Member1>
- <Member2>
- <name>TRUE</name>
- <path>1</path>
- <priority>200</priority>
- <critical>TRUE</critical>
- <retry_cnt>1</retry_cnt>
- <arguments></arguments>
- <logging_mask></logging_msk>
- <restart>me</restart>
- <shudown_critical></shudown_critical>
- <shudown_wait_time></shudown_wait_time>
- </Member2>
- </Group1>
- </Launch>
- </SystemManager>
-</Configuration>
-*/
-
-//******************************************************************************
-//* CTimeSpan class *
-//* *
-class CTimeSpan {
- public:
- CTimeSpan(): initial(0), final(0), delta(0) {}
- CTimeSpan(UI_64 f_initial) // NOLINT
- : initial(f_initial), final(0), delta(0) {}
- ~CTimeSpan() {}
- /*
- * Set Initial time, reset Final and Delta to zero, return time
- */
- UI_64 Begin();
- /*
- * Set Final time, calculate Delta time, return time
- */
- UI_64 End();
- UI_64 GetInitial();
- UI_64 GetFinal();
- UI_64 GetDelta();
- UI_64 GetTimeMilliseconds();
-
- private:
- UI_64 initial;
- UI_64 final;
- UI_64 delta;
-}; // End of class CTimeSpan
-//******************************************************************************
-
-
-typedef enum {
- NotStopped,
- StoppedByModuleStopComplete,
- StoppedByModuleStopFail,
- StoppedByGroupStopTimeout,
- StoppedByCriticalAppsTimeout,
- StoppedByModulePreStopComplete,
- StoppedByModulePreStopFail,
- StoppedByModuleBackgroundStopComplete,
- StoppedByModuleBackgroundStopFail
-} EStopReasonType;
-
-typedef enum {
- NotStarted,
- StartedByModuleStartComplete,
- StartedByModuleStartFail,
- StartedByModulePreStartComplete,
- StartedByModulePreStartFail,
- StartedByModuleBackgroundStartComplete,
- StartedByModuleBackgroundStartFail
-} EStartReasonType;
-
-//******************************************************************************
-//* CTimeEvent class *
-//* *
-template <typename EEventType>
-class CTimeEvent : public CTimeSpan {
- public:
- CTimeEvent() {
- bzero(&m_eventReason, sizeof(m_eventReason));
- }
- ~CTimeEvent() {}
-
- VOID SetReason(EEventType f_eventReason)
- { m_eventReason = f_eventReason; }
- private:
- EEventType m_eventReason;
-}; // End of class CTimeEvent
-//******************************************************************************
-
-typedef enum {
- NotRelaunched,
- RelaunchSafe,
- RelaunchErr
-} ERelaunchStatusType;
-
-
-typedef CTimeEvent<EStartReasonType> CStartReason;
-typedef CTimeEvent<EStopReasonType> CStopReason;
-typedef CHAR TUserNameBuffer[128]; // TODO(yaomingwu): Stuff. Does Posix define a useful
- // constant representing max length of user id?
-
-class ModuleLaunchParams {
- public:
- // Move to private to prevent direct access
- // SMModuleState module_state;
- //
- SS_String name;
- SS_String path;
- SS_String arguments;
- SS_String restart;
- UI_32 configuration_priority;
- int cpu_assign;
- UI_32 previous_priority;
- UI_32 current_priority;
- BOOL critical;
- UI_32 retry_cnt;
- SS_String logging_msk_str;
- BOOL is_start_required;
- BOOL shutdown_critical;
- UI_32 shutdown_wait_time;
- UI_32 fast_shutdown_wait_time;
- SI_32 pid;
- HANDLE hsession;
- UI_32 relaunch_count;
- ERelaunchStatusType relaunch_status;
- UI_32 group_id;
- TUserNameBuffer unix_user_name;
-
- BOOL m_serviceAvailability; // Not set because it does not watch Availability for speeding up start up process.
-
- CStartReason m_startReason;
- CStopReason m_stopReason;
-
- ModuleLaunchParams();
- ~ModuleLaunchParams();
- SMModuleState GetModuleState(void);
- BOOL IsModuleState(SMModuleState f_moduleState);
- BOOL IsModuleConnected() const;
- VOID SetModuleState(SMModuleState f_moduleState, BOOL f_bLog = TRUE);
- std::string ModuleStateStr(void);
-
- SMModuleDebugDumpState GetModuleDebugDumpState(void);
- std::string GetModuleDebugDumpStateStr(void);
- VOID SetModuleDebugDumpState(SMModuleDebugDumpState f_moduleDebugDumpState, BOOL f_bLog = TRUE);
- EFrameworkunifiedStatus SendMsgAndUpdateState(
- const UI_32 f_iCmd, const T_SS_SM_START_DataStructType* const f_startData);
- EFrameworkunifiedStatus SendMsgAndUpdateState(T_SS_SM_STOP_DataStruct const* f_stopData);
-
- EFrameworkunifiedStatus GetPriority(UI_32& f_Priority); // NOLINT
- EFrameworkunifiedStatus SetPriority(UI_32 f_Priority);
-
- BOOL IsAGLUnit(void) const { return is_agl_unit; }
- BOOL IsAGLResetHistoryDisable(void) const { return disable_agl_resethistory; }
- BOOL IsNonAGLResetHistoryDisable(void) const { return disable_nonagl_resethistory; }
- void SetAGLUnit(BOOL f_is_agl_unit) { is_agl_unit = f_is_agl_unit; }
- void SetAGLResetHistoryDisable(BOOL f_disable_agl_resethistory) {
- disable_agl_resethistory = f_disable_agl_resethistory;
- }
- void SetNonAGLResetHisoryDisable(BOOL f_disable_nonagl_resethistory) {
- disable_nonagl_resethistory = f_disable_nonagl_resethistory;
- }
-
- private:
- SMModuleState m_moduleState;
- SMModuleStateStrMapType m_ModuleStateStrMap;
- SMModuleDebugDumpState m_ModuleDebugDumpState;
- SMModuleDebugDumpStateStrMapType m_ModuleDebugDumpStateStrMap;
- BOOL is_agl_unit;
- BOOL disable_agl_resethistory;
- BOOL disable_nonagl_resethistory;
-};
-
-typedef std::list<ModuleLaunchParams> ModuleLaunchList;
-typedef ModuleLaunchList::iterator ModuleLaunchListIter;
-
-typedef struct _GroupLaunchInfo { // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- BOOL launch_complete;
- BOOL start_complete;
- BOOL stop_complete;
- SS_String name;
- UI_32 id;
- UI_32 grp_launch_wait;
- UI_32 grp_wait_for_trigger;
- ModuleLaunchList modules;
-} GroupLaunchInfo;
-
-typedef std::list<GroupLaunchInfo> GroupLaunchList;
-typedef GroupLaunchList::iterator GroupLaunchListIter;
-
-typedef std::map<UI_32, GroupLaunchInfo> GroupLaunchMap;
-typedef GroupLaunchMap::iterator GroupLaunchMapIter;
-
-typedef std::list<GroupLaunchList> GroupList;
-typedef GroupList::iterator GroupListIter;
-
-// Process Binary Name (key) to ModuleLaunchList iterator (ModuleLaunchParams).
-typedef std::map<std::string, ModuleLaunchListIter>ProcessNameMap;
-typedef ProcessNameMap::iterator ProcessNameMapIter;
-
-// Config Parameters specific to Heart Beat Thread
-typedef struct _HBConfigParams {
- SI_32 MaxHeartBeatRetryCount; /// Retry heart beat check before error report is sent to SM
- SI_32 ApplicationHeartBeatIntervalInitial; /// Initial Timer interval
- /// between two heart beat requests & response check
- SI_32 ApplicationHeartBeatIntervalRepeat; /// Repeat Timer interval between two heart beat requests & response check
-} HBConfigParameters;
-
-typedef struct _CDConfigParams {
- BOOL CrashDetectorEnabled;
-} CDConfigParameters;
-
-typedef struct _SLMConfigParams { // SLM - System Low Memory
- SI_32 SLMTimerValue;
- SI_32 SLMMaxRetryCount;
- SI_32 SLMThresholdValue;
- SI_32 SLMSystemmanagerLogIntervalMs;
-} SLMConfigParameters;
-
-typedef struct _UserMModeConfigParams {
- BOOL IsUserModeNotificationABOOL;
-} UserModeConfigParameters;
-
-typedef struct _ModuleConnectTimeConfigParams {
- SI_32 ModuleConnectionNumTimesToCheck;
- SI_32 ModuleConnectionTimeOutSec;
- SI_32 ModuleStartRespTimeOutSec;
-} ModuleConfigParams;
-
-typedef struct _CriticalAppsMaxShutdownTime {
- SI_32 CriticalAppsMaxShutdownTimeFastSleep;
- SI_32 CriticalAppsMaxShutdownTimeNormalReset;
-} CriticalAppsMaxShutdownTime;
-
-typedef struct _ConfigurationData {
- // Parameters specific to System Manager
-
- // Parameters specific to Heart Beat Thread
- HBConfigParameters HBConfig;
-
- // Parameters specific to Launcher Thread
-
- // Parameters specific to Crash Detector Thread
- CDConfigParameters CDConfig;
-
- // Parameters specific to System Low Memory
-
- // Parameters specific to Sys Low Memory Thread
- SLMConfigParameters SLMConfig;
-
- // Parameters specific to User Mode Notification Data Structure
- UserModeConfigParameters UMConfig;
-
- // Parameters specific to Module connection timeout with SM
- ModuleConfigParams MCConfig;
-
- // Parameters specific to Critical Apps Max shutdown time
- CriticalAppsMaxShutdownTime CAMSTConfig;
-} ConfigurationData;
-
-typedef std::vector<UI_32> LaunchOrderedVector;
-typedef LaunchOrderedVector::iterator LaunchOrderedIter;
-
-class SMConfigParams {
- public:
- SMConfigParams();
- virtual ~SMConfigParams();
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// LoadSMConfigParameters
- /// \brief Read System Manager configuration parameters from cfg file or
- /// use defaults values in case cfg file is not available
- ///
- /// \param [in] f_ConfigParams & - Ref to ConfigurationData that get populated.
- /// \param [in] f_FileName - Configuration file name.
- ///
- /// \return BOOL
- /// BOOL - TRUE or FALSE
- ////////////////////////////////////////////////////////////////////////////////////////////
- BOOL LoadSMConfigParameters(ConfigurationData& f_ConfigParams, // NOLINT
- SS_String f_FileName);
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// GetSMConfigInformation
- /// \brief Read config data from cfg file and populate the configuration data structure
- ///
- /// \param [in] f_ConfigParams & - Ref to ConfigurationData that get populated.
- /// \param [in] f_FileName - Configuration file name.
- ///
- /// \return BOOL
- /// BOOL - TRUE or FALSE
- ////////////////////////////////////////////////////////////////////////////////////////////
- BOOL GetSMConfigInformation(ConfigurationData& f_ConfigParams, // NOLINT
- SS_String f_FileName);
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// PrintConfigInfo
- /// \brief Print the configuration data stored in config structure
- ///
- /// \param [in] configata
- /// ConfigurationData & - Ref to structure that get populated.
- ///
- /// \return VOID
- ////////////////////////////////////////////////////////////////////////////////////////////
- VOID PrintConfigInfo(ConfigurationData const& f_ConfigParams);
-};
-
-class SysMgrConfiguration {
- public:
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// SysMgrConfiguration
- /// \brief
- ///
- /// \return NA
- ///
- ////////////////////////////////////////////////////////////////////////////////////////////
- SysMgrConfiguration();
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// ~SysMgrConfiguration
- /// \brief
- ///
- /// \return NA
- ////////////////////////////////////////////////////////////////////////////////////////////
- virtual ~SysMgrConfiguration();
-
-// ////////////////////////////////////////////////////////////////////////////////////////////
-// /// LoadParameters
-// /// \brief
-// ///
-// /// \param [in] groups
-// /// GroupLaunchList & - Ref to GroupLaunchList that get populated.
-// ///
-// /// \return BOOL
-// /// BOOL - TRUE or FALSE
-// ////////////////////////////////////////////////////////////////////////////////////////////
-// BOOL LoadParameters(GroupLaunchMap & groups_map);
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// LoadParametersCfg
- /// \brief
- ///
- /// \param [in] groups
- /// GroupLaunchList & - Ref to GroupLaunchList that gets populated.
- /// ProcessNameMap & - Ref to ProcessNameMap that gets populated.
- /// LaunchOrderedVector & - Ref to LaunchOrderedVector that gets populated.
- ///
- /// \param [in] f_launchOrderName - launch order name.
- ///
- /// \return BOOL
- /// BOOL - TRUE or FALSE
- ////////////////////////////////////////////////////////////////////////////////////////////
- BOOL LoadParametersCfg(GroupLaunchMap& groups_map, // NOLINT
- ProcessNameMap& f_processNameMap, // NOLINT
- LaunchOrderedVector& f_OrderList, // NOLINT
- SS_String& f_launchOrderName, // NOLINT
- SS_String& f_launchCfgFn); // NOLINT
-
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// PrintGroupInfo
- /// \brief Print method for GroupLaunchInfo only prints the group info not the module info
- ///
- /// \param [in] refGrpInfo
- /// GroupLaunchInfo & - Ref to a GroupLaunchInfo object that will be printed.
- ///
- /// \return VOID
- ////////////////////////////////////////////////////////////////////////////////////////////
- VOID PrintGroupInfo(GroupLaunchInfo& refGrpInfo); // NOLINT
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// PrintModuleInfo
- /// \brief Print method for a Module's Params.
- ///
- /// \param [in] refMbrInfo
- /// ModuleLaunchParams & - Ref to ModuleLaunchParams object that will be printed.
- ///
- /// \return VOID
- ////////////////////////////////////////////////////////////////////////////////////////////
- VOID PrintModuleInfo(ModuleLaunchParams& refMbrInfo); // NOLINT
-
- ////////////////////////////////////////////////////////////////////////////////////////////
- /// PrintAllInfo
- /// \brief Print all the information in the GroupLaunchList.
- ///
- /// \param [in] refGrpList
- /// GroupLaunchList & - Ref to GroupLaunchList object that will be printed.
- ///
- /// \return VOID
- ////////////////////////////////////////////////////////////////////////////////////////////
- VOID PrintAllInfo(GroupLaunchMap& refGrpMap); // NOLINT
-
- protected:
- // define all the configuration parameters that will be used to get data
-
- CNSConfigReader * l_pReaderCfg;
-
- SysMgrConfiguration(const SysMgrConfiguration&) : l_pReaderCfg(NULL) {}
- SysMgrConfiguration & operator = (const SysMgrConfiguration &);
-
- private:
- BOOL ParseBoolParameter(PCSTR f_value, BOOL f_default = FALSE) const;
-};
-
-#endif // SS_SM_CONFIG_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/ss_sm_default_paths.h b/systemservice/system_manager/server/include/ss_sm_default_paths.h
deleted file mode 100755
index 8ffafd9..0000000
--- a/systemservice/system_manager/server/include/ss_sm_default_paths.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for default path names.
-///
-///////////////////////////////////////////////////////////////////////////////
-#ifndef SYSTEM_MANAGER_SERVER_INCLUDE_SS_SM_DEFAULT_PATHS_H_
-#define SYSTEM_MANAGER_SERVER_INCLUDE_SS_SM_DEFAULT_PATHS_H_
-/*
- * Environment variables
- */
-const CHAR BaseDirPathEnvVariable[] = "BASE_DIR";
-const CHAR LaunchConfigFileNameEnvVariable[] = "APPS_CONFIG_FILENAME";
-const CHAR SMConfigDataFileNameEnvVariable[] = "SM_CONFIG_DATA_FILENAME";
-const CHAR UsingVMPlayerVariable[] = "USING_VM_PLAYER";
-
-/*
- * Default paths to be used in case Environment variables are not set
- */
-const CHAR DefaultBasePath[] = "";
-const CHAR DefaultBinaryPath[] = "/agl/bin/";
-const CHAR DefaultConfigFilesPath[] = "/usr/agl/conf/BS/ss/system_manager/rwdata/";
-const CHAR DefaultLaunchConfigFileName[] = "sm_launch.cfg";
-const CHAR DefaultSMConfigFileName[] = "gpf_ss_sm_config_data.cfg";
-
-#endif // SYSTEM_MANAGER_SERVER_INCLUDE_SS_SM_DEFAULT_PATHS_H_
-
diff --git a/systemservice/system_manager/server/include/ss_sm_dynamic_launch_table.h b/systemservice/system_manager/server/include/ss_sm_dynamic_launch_table.h
deleted file mode 100755
index 685b43b..0000000
--- a/systemservice/system_manager/server/include/ss_sm_dynamic_launch_table.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager process launching.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_SM_DYNAMIC_LAUNCH_TABLE_H_ // NOLINT
-#define SS_SM_DYNAMIC_LAUNCH_TABLE_H_
-
-#include "ss_sm_dynamic_launcher.h"
-
-DynamicLaunchInfo g_arrDynamicLaunchTableCfg[] = {
- // TUNER
- { SS_SOURCE_FM,
- (const PCHAR)"FM", (const PCHAR)"Audio", (const PCHAR)"Radio",
- (const PCHAR)"HMI", (const PCHAR)"AviageTrigger", FALSE},
- { SS_SOURCE_AM,
- (const PCHAR)"AM", (const PCHAR)"Audio", (const PCHAR)"Radio",
- (const PCHAR)"HMI", (const PCHAR)"AviageTrigger", FALSE},
- { SS_SOURCE_FM_DAB,
- (const PCHAR)"FM_DAB", (const PCHAR)"Audio", (const PCHAR)"Radio",
- (const PCHAR)"HMI", (const PCHAR)"AviageTrigger", FALSE},
- { SS_SOURCE_SDARS,
- (const PCHAR)"SDARS", (const PCHAR)"Audio", (const PCHAR)"Radio",
- (const PCHAR)"HMI", (const PCHAR)"AviageTrigger", FALSE},
- // MEDIA
- { SS_SOURCE_SD_CARD,
- (const PCHAR)"SDCard", (const PCHAR)"Audio", (const PCHAR)"Multimedia",
- (const PCHAR)"HMI", (const PCHAR)"AviageTrigger", TRUE},
- { SS_SOURCE_MSC,
- (const PCHAR)"MCS", (const PCHAR)"Audio", (const PCHAR)"Multimedia",
- (const PCHAR)"HMI", (const PCHAR)"AviageTrigger", TRUE},
- { SS_SOURCE_MTP, (const PCHAR)"MTP",
- (const PCHAR)"Audio", (const PCHAR)"Multimedia", (const PCHAR)"HMI",
- (const PCHAR)"AviageTrigger", TRUE},
- { SS_SOURCE__CWORD57_,
- (const PCHAR)"_CWORD57_", (const PCHAR)"Audio", (const PCHAR)"Multimedia",
- (const PCHAR)"HMI", (const PCHAR)"AviageTrigger", TRUE},
- { SS_SOURCE__CWORD73__APP,
- (const PCHAR)"_CWORD57__APP", (const PCHAR)"Audio",
- (const PCHAR)"Multimedia", (const PCHAR)"HMI", (const PCHAR)"AviageTrigger", TRUE},
- { SS_SOURCE__CWORD73__VIDEO_MODE,
- (const PCHAR)"_CWORD57__VM", (const PCHAR)"Audio",
- (const PCHAR)"Multimedia", (const PCHAR)"HMI", (const PCHAR)"AviageTrigger", TRUE},
- { SS_SOURCE_USB,
- (const PCHAR)"USB", (const PCHAR)"Audio", (const PCHAR)"Multimedia",
- (const PCHAR)"HMI", (const PCHAR)"AviageTrigger", TRUE},
- { SS_SOURCE_DATA_CD,
- (const PCHAR)"DATA_CD", (const PCHAR)"Audio",
- (const PCHAR)"Multimedia", (const PCHAR)"HMI", (const PCHAR)"AviageTrigger", TRUE},
- { SS_SOURCE_CD,
- (const PCHAR)"AUDIO_CD", (const PCHAR)"Audio",
- (const PCHAR)"Multimedia", (const PCHAR)"HMI", (const PCHAR)"AviageTrigger", TRUE},
-};
-
-#endif // SS_SM_DYNAMIC_LAUNCH_TABLE_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/ss_sm_dynamic_launcher.h b/systemservice/system_manager/server/include/ss_sm_dynamic_launcher.h
deleted file mode 100755
index a6efb1f..0000000
--- a/systemservice/system_manager/server/include/ss_sm_dynamic_launcher.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager process launching.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_SM_DYNAMIC_LAUNCHER_H_ // NOLINT
-#define SS_SM_DYNAMIC_LAUNCHER_H_
-
-#include <native_service/frameworkunified_types.h>
-#include <system_service/interfaceunified_system_types.h>
-#include <vector>
-
-#include "ss_sm_config.h"
-
-using std::vector;
-
-
-typedef struct _tDynamicLaunchParams {
- SS_SOURCE source;
- const PCHAR source_name;
- const PCHAR before_group_name;
- const PCHAR start_group_name;
- const PCHAR after_group_name;
- const PCHAR aviage_trigger_name;
- BOOL group_trigger;
-} DynamicLaunchInfo;
-
-
-class DynamicLaunchBase {
- public:
- DynamicLaunchBase();
- virtual ~DynamicLaunchBase();
- UI_32 get_id() const;
- UI_32 advance_id();
- UI_32 decrement_id();
- BOOL is_begin();
- BOOL is_end();
- VOID to_begin();
- VOID to_end();
- VOID print_info();
-
- protected:
- typedef std::vector<UI_32> DynamicOrderedVector;
- typedef DynamicOrderedVector::iterator DynamicOrderedIter;
- DynamicOrderedVector m_vOrderedGroup;
- DynamicOrderedIter m_iterOrderedGroup;
-};
-
-class DynamicModuleStart;
-
-class DynamicLauncher: public DynamicLaunchBase {
- public:
- DynamicLauncher();
- virtual ~DynamicLauncher();
- BOOL dynamic_launch_enabled() const;
- VOID configure_dynamic_launch(const SS_SOURCE & source_type, // NOLINT
- GroupLaunchMap & group_info, LaunchOrderedVector & order_info); // NOLINT
- VOID copyDynOrderedVector(DynamicModuleStart &);
-
- private:
- // Disable class copy constructors
- explicit DynamicLauncher(const DynamicLauncher& f_source)
- : m_nLaunchGroupId(f_source.m_nLaunchGroupId)
- , m_nLaunchBeforeGroupId(f_source.m_nLaunchBeforeGroupId)
- , m_nLaunchAfterGroupId(f_source.m_nLaunchAfterGroupId)
- , m_nAviageTriggerId(f_source.m_nAviageTriggerId)
- , m_bDynamicLaunchEnabled(f_source.m_bDynamicLaunchEnabled)
- , m_eSourceType(f_source.m_eSourceType) {}
- DynamicLauncher & operator = (const DynamicLauncher &);
-
- // helper methods..
- DynamicLaunchInfo* get_dynamic_source_info(const SS_SOURCE& source_type, // NOLINT
- BOOL& source_trigger, BOOL &is_aviage_required); // NOLINT
- UI_32 get_id_using_group_name(PCSTR group_name, GroupLaunchMap& group_info); // NOLINT
- VOID create_normal_launch_vector(GroupLaunchMap& group_info, LaunchOrderedVector& order_info); // NOLINT
- BOOL is_inGroupLaunchMap(UI_32& id, GroupLaunchMap& group_info); // NOLINT
-
- // Data Members
- UI_32 m_nLaunchGroupId;
- UI_32 m_nLaunchBeforeGroupId;
- UI_32 m_nLaunchAfterGroupId;
- UI_32 m_nAviageTriggerId;
- BOOL m_bDynamicLaunchEnabled;
- SS_SOURCE m_eSourceType;
-};
-
-class DynamicModuleStart: public DynamicLaunchBase {
- public:
- DynamicModuleStart();
- virtual ~DynamicModuleStart();
- VOID setGroupVector(DynamicOrderedVector&);
-};
-
-#endif // SS_SM_DYNAMIC_LAUNCHER_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/ss_sm_launch_configuration.h b/systemservice/system_manager/server/include/ss_sm_launch_configuration.h
deleted file mode 100755
index 7296714..0000000
--- a/systemservice/system_manager/server/include/ss_sm_launch_configuration.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager process launching.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_SM_LAUNCH_CONFIGURATION_H_ // NOLINT
-#define SS_SM_LAUNCH_CONFIGURATION_H_
-
-#include <native_service/frameworkunified_types.h>
-#include <system_service/ss_services.h>
-#include <system_service/ss_client_names.h>
-
-typedef struct _DefaultModuleLaunchParams {
- const PCHAR name;
- const PCHAR binary_name;
- const PCHAR arguments;
- const PCHAR restart;
- UI_32 priority;
- BOOL critical;
- UI_32 retry_cnt;
- const PCHAR logging_msk_str;
- BOOL is_start_required;
- BOOL shutdown_critical;
- UI_32 shutdown_wait_time;
-} DefaultModuleLaunchParams;
-
-typedef struct _DefaultGroupLaunchInfo {
- const PCHAR name;
- UI_32 id;
- DefaultModuleLaunchParams *modules;
-} DefaultGroupLaunchInfo;
-
-
-#define prefix
-
-prefix DefaultModuleLaunchParams CoreModulesGroup[] = {
- // Queue name binary_name arguments
- {(const PCHAR)SERVICE_NS_SHARED_MEM,
- (const PCHAR)"NS_SharedMem", (const PCHAR)"", (const PCHAR)"me",
- 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0},
- {(const PCHAR)SERVICE_NS_NPP, (const PCHAR)"NS_NPPService",
- (const PCHAR)"", (const PCHAR)"me", 20, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", FALSE, TRUE, 15},
- {(const PCHAR)SERVICE_LOGGER, (const PCHAR)SERVICE_LOGGER,
- (const PCHAR)"", (const PCHAR)"me", 10, FALSE, 3, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0},
- {(const PCHAR)SERVICE__CWORD69_, (const PCHAR)"_CWORD69_.exe",
- (const PCHAR)"", (const PCHAR)"me", 10, FALSE, 3, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0},
- {(const PCHAR)0, (const PCHAR)0,
- (const PCHAR)0, (const PCHAR)0, 0, FALSE, 0, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0}
-};
-
-prefix DefaultModuleLaunchParams ShadowModulesGroup[] = {
- // Queue name binary_name arguments
- {(const PCHAR)SERVICE_PS_IPC, (const PCHAR)"PS_IPC",
- (const PCHAR)"", (const PCHAR)"group", 50, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0},
- {(const PCHAR)SERVICE_PSM_SHADOW, (const PCHAR)"PS_PSMShadow",
- (const PCHAR)"", (const PCHAR)"group", 12, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_KEY_HANDLER, (const PCHAR)"PS_KeyHandler",
- (const PCHAR)"", (const PCHAR)"group", 12, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_IPC_MP_SHADOW, (const PCHAR)"PS_IPC_MP_Shadow",
- (const PCHAR)"", (const PCHAR)"group", 20, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)0, (const PCHAR)0,
- (const PCHAR)0, (const PCHAR)0, 0, FALSE, 0, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0}
-};
-
-prefix DefaultModuleLaunchParams SystemModulesGroup[] = {
- {(const PCHAR)SERVICE_POWER, (const PCHAR)SERVICE_POWER,
- (const PCHAR)"", (const PCHAR)"me", 12, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SS_DEV_DETECT_SRV, (const PCHAR)SS_DEV_DETECT_SRV,
- (const PCHAR)"", (const PCHAR)"me", 12, FALSE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SS_PLM_SERVICE, (const PCHAR)SS_PLM_SERVICE,
- (const PCHAR)"", (const PCHAR)"me", 12, FALSE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)0, (const PCHAR)0,
- (const PCHAR)0, (const PCHAR)0, 0, FALSE, 0, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0}
-};
-
-prefix DefaultModuleLaunchParams AudioModulesGroup[] = {
- {(const PCHAR)SERVICE_AS_AUDIO, (const PCHAR)"AS_AudioService",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_AS_MODE, (const PCHAR)"AS_ModeService",
- (const PCHAR)"", (const PCHAR)"me", 10, FALSE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)0, (const PCHAR)0,
- (const PCHAR)0, (const PCHAR)0, 0, FALSE, 0, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0}
-};
-
-prefix DefaultModuleLaunchParams RadioModulesGroup[] = {
- {(const PCHAR)SERVICE_TUNER, (const PCHAR)"Radio",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_DAB, (const PCHAR)"Master_Tuner",
- (const PCHAR)"", (const PCHAR)"me", 10, FALSE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_SDARS, (const PCHAR)"Ext_SDARS_Service",
- (const PCHAR)"", (const PCHAR)"me", 10, FALSE, 3,
- (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)0, (const PCHAR)0,
- (const PCHAR)0, (const PCHAR)0, 0, FALSE, 0, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0}
-};
-
-prefix DefaultModuleLaunchParams MultimediaModulesGroup[] = {
- {(const PCHAR)SERVICE_MM_ICD, (const PCHAR)"MM_ICDService",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_MM_MEDIA, (const PCHAR)"MediaService",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)0, (const PCHAR)0,
- (const PCHAR)0, (const PCHAR)0, 0, FALSE, 0, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0}
-};
-
-prefix DefaultModuleLaunchParams HMIModulesGroup[] = {
- {(const PCHAR)SERVICE_HMI, (const PCHAR)"GtfStartup",
- (const PCHAR)"/eb/gtf_5.2.1/models/PastModel004/gtfStartup.cfg", (const PCHAR)"me",
- 13, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0},
- {(const PCHAR)SERVICE_HMI__CWORD77_, (const PCHAR)"HMI__CWORD77_",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_HMI__CWORD46_, (const PCHAR)"HMI__CWORD46_Service", (const PCHAR)"",
- (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)0, (const PCHAR)0, (const PCHAR)0,
- (const PCHAR)0, 0, FALSE, 0, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0}
-};
-
-prefix DefaultModuleLaunchParams NavigationModulesGroup[] = {
- {(const PCHAR)SERVICE_NAV_LOC, (const PCHAR)"NAV_LocationService", (const PCHAR)"", (const PCHAR)"me",
- 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_NAV, (const PCHAR)"NAV_NavigationService", (const PCHAR)"", (const PCHAR)"me",
- 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)0, (const PCHAR)0, (const PCHAR)0, (const PCHAR)0,
- 0, FALSE, 0, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0}
-};
-
-prefix DefaultModuleLaunchParams SoftwareUpdateModulesGroup[] = {
- {(const PCHAR)SERVICE_SOFTWAREUPDATE, (const PCHAR)"SS_SoftwareUpdateService",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_PS_SWDL_SHADOW, (const PCHAR)"PS_SoftwareUpdateShadow",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)0, (const PCHAR)0,
- (const PCHAR)0, (const PCHAR)0, 0, FALSE, 0, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0}
-};
-
-prefix DefaultModuleLaunchParams NetworkingModulesGroup[] = {
- {(const PCHAR)SERVICE__CWORD51__BT, (const PCHAR)"_CWORD51__BT.exe",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_NW_BT, (const PCHAR)"NW_BluetoothService",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_NW_CONNECTION, (const PCHAR)"NW_ConnectionService",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_NW_PHONE, (const PCHAR)"NW_PhoneService",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_NW_PHONE_BOOK, (const PCHAR)"NW_PhoneBookService",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)SERVICE_NW_MESSAGING, (const PCHAR)"NW_MessagingService",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)0, (const PCHAR)0,
- (const PCHAR)0, (const PCHAR)0, 0, FALSE, 0, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0}
-};
-
-prefix DefaultModuleLaunchParams BrowserModulesGroup[] = {
- {(const PCHAR)SERVICE_BR_BROWSER, (const PCHAR)"BR_BrowserService",
- (const PCHAR)"", (const PCHAR)"me", 10, TRUE, 3, (const PCHAR)"0x00000000, 0x00000000", TRUE, FALSE, 0},
- {(const PCHAR)0, (const PCHAR)0,
- (const PCHAR)0, (const PCHAR)0, 0, FALSE, 0, (const PCHAR)"0x00000000, 0x00000000", FALSE, FALSE, 0}
-};
-
-prefix DefaultGroupLaunchInfo g_arrLaunchTable[] = {
- {(const PCHAR)"CoreModules", 1, CoreModulesGroup },
- {(const PCHAR)"ShadowModules", 2, ShadowModulesGroup },
- {(const PCHAR)"SystemModules", 3, SystemModulesGroup },
- {(const PCHAR)"Audio", 4, AudioModulesGroup },
- {(const PCHAR)"Radio", 5, RadioModulesGroup },
- {(const PCHAR)"Multimedia", 6, MultimediaModulesGroup },
- {(const PCHAR)"HMI", 7, HMIModulesGroup },
- {(const PCHAR)"Navigation", 8, NavigationModulesGroup },
- {(const PCHAR)"SoftwareUpdate", 9, SoftwareUpdateModulesGroup },
- {(const PCHAR)"Networking", 10, NetworkingModulesGroup },
- {(const PCHAR)"Browser", 11, BrowserModulesGroup },
-};
-
-#endif // SS_SM_LAUNCH_CONFIGURATION_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/ss_sm_signals.h b/systemservice/system_manager/server/include/ss_sm_signals.h
deleted file mode 100755
index 4c52b32..0000000
--- a/systemservice/system_manager/server/include/ss_sm_signals.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file supports process termination.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_SM_SIGNALS_H_ // NOLINT
-#define SS_SM_SIGNALS_H_
-
-#include <signal.h>
-
-#define SS_SM_ABORT_SIGNAL (SIGABRT)
-#define SS_SM_KILL_SIGNAL (SIGKILL)
-#define SS_SM_TERMINATE_SIGNAL (SIGTERM)
-
-#endif // SS_SM_SIGNALS_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/ss_sm_systemmanagerlog.h b/systemservice/system_manager/server/include/ss_sm_systemmanagerlog.h
deleted file mode 100755
index 0499751..0000000
--- a/systemservice/system_manager/server/include/ss_sm_systemmanagerlog.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file supports agl application logging.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef __SS_SM_SYSTEMMANAGERLOG_H__ // NOLINT
-#define __SS_SM_SYSTEMMANAGERLOG_H__
-
-#include <native_service/ns_logger_if.h>
-
-#define ZONE_INIT ZONEMASK(10)
-#define ZONE_FUNC ZONEMASK(11)
-#define ZONE_MEM ZONEMASK(12)
-#define ZONE_FUNC_IPC ZONEMASK(13)
-#define ZONE_APP_LAUNCH ZONEMASK(14)
-#define ZONE_ACTIVE_INDEX ZONEMASK(15)
-#define ZONE_CONFIG_TABLE ZONEMASK(16)
-#define ZONE_FUNC_ARGS ZONEMASK(17)
-#define ZONE_LOG_FILE ZONEMASK(18)
-#define ZONE_MSG ZONEMASK(19)
-#define ZONE_TIMER ZONEMASK(20)
-#define ZONE_LAUNCH_TIME ZONEMASK(21)
-#define ZONE_22 ZONEMASK(22)
-#define ZONE_UNUSED ZONEMASK(23)
-#define ZONE_PERIODIC_FUNC ZONEMASK(24)
-#define ZONE_PERIODIC_INFO ZONEMASK(25)
-#define ZONE_26 ZONEMASK(26)
-#define ZONE_DYNAMIC_LNCH ZONEMASK(27)
-#define ZONE_STATE ZONEMASK(28)
-#define ZONE_INFO ZONEMASK(29)
-
-#define ZONE_SYSLOG ZONE_SYSTEMDATA
-#define ZONE_PERFORM ZONE_PERFORMANCE
-#define ZONE_PROC_LAUNCH_INFO ZONE_FUNC
-
-
-#define ZONE_TEXT_10 "Init"
-#define ZONE_TEXT_11 "Function"
-#define ZONE_TEXT_12 "Memory"
-#define ZONE_TEXT_13 "Ipc Function"
-#define ZONE_TEXT_14 "Active Index"
-#define ZONE_TEXT_15 ""
-#define ZONE_TEXT_16 "Config Table"
-#define ZONE_TEXT_17 ""
-#define ZONE_TEXT_18 ""
-#define ZONE_TEXT_19 ""
-#define ZONE_TEXT_20 ""
-#define ZONE_TEXT_21 ""
-#define ZONE_TEXT_22 ""
-#define ZONE_TEXT_23 ""
-#define ZONE_TEXT_24 ""
-#define ZONE_TEXT_25 ""
-#define ZONE_TEXT_26 ""
-#define ZONE_TEXT_27 ""
-#define ZONE_TEXT_28 "Ipc Info"
-#define ZONE_TEXT_29 "Info"
-// These ARE RESERVED AND SHOULDN'T BE TOUCHED
-// USE THEM WHEN REALLY NEEDED!!!!!
-#define ZONE_TEXT_30 "Warning"
-#define ZONE_TEXT_31 "Error"
-#define ZONE_WARN ZONEMASK(30)
-#define ZONE_ERR ZONEMASK(31)
-#define ALL_ZONES_BUT_IPC_INFO 0xEFFFFFFF
-
-#ifndef FRAMEWORKUNIFIEDLOGOPTIONS
-#define FRAMEWORKUNIFIEDLOGOPTIONS (LMSGQ) // LPRINT , LMSGQ, LSLOGGER
-#endif
-
-
-#ifndef FRAMEWORKUNIFIEDLOGAPPZONES
-#define FRAMEWORKUNIFIEDLOGAPPZONES ZONE_WARN, ZONE_ERR, ZONE_STATE, ZONE_SYSLOG, ZONE_PERFORM, ZONE_NS_WAR, ZONE_NS_ERR
-#endif // FRAMEWORKUNIFIEDLOGAPPZONES
-
-#endif // __SS_SM_SYSTEMMANAGERLOG_H__ // NOLINT
diff --git a/systemservice/system_manager/server/include/ss_sm_version.h b/systemservice/system_manager/server/include/ss_sm_version.h
deleted file mode 100755
index ea0a775..0000000
--- a/systemservice/system_manager/server/include/ss_sm_version.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for module version management.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_SM_VERSION_H_ // NOLINT
-#define SS_SM_VERSION_H_
-
-#include <native_service/frameworkunified_types.h>
-#include <system_service/ss_system_manager_protocol.h>
-#include "ss_sm_process_launcher_protocol.h"
-
-class CSMVersion {
- public:
- CSMVersion();
- ~CSMVersion();
- EFrameworkunifiedStatus get_version(SS_VersionNumberType& f_VersionNumber); // NOLINT
- EFrameworkunifiedStatus get_build_info(std::string& f_buildInfoStr); // NOLINT
-
- private:
-};
-#endif // SS_SM_VERSION_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/ss_system_manager.h b/systemservice/system_manager/server/include/ss_system_manager.h
deleted file mode 100755
index 12d5bad..0000000
--- a/systemservice/system_manager/server/include/ss_system_manager.h
+++ /dev/null
@@ -1,760 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager business logic.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef __SS_SYSTEM_MANAGER_H__ // NOLINT
-#define __SS_SYSTEM_MANAGER_H__
-
-#include <system_service/ss_heartbeat_service_protocol.h>
-#include <system_service/ss_system_manager_if.h>
-#include <system_service/ss_error_event_common_local.h>
-#include <system_service/ss_system_timer.h>
-#include <crashdetector/ss_crashdetector.h>
-#include <system_service/ss_system_manager_protocol.h>
-#include <system_service/ss_power_service_protocol.h>
-#include <heartbeat/ss_hb_if.h>
-#include <other_service/PosixBasedOS001ClockCycleApi.h>
-#include <system_service/ss_string_maps.h>
-#include <system_service/ss_templates.h>
-#include <system_service/ss_system_manager_conf.h>
-#include <system_service/ss_system_manager_protocol_local.h>
-#include <system_service/ss_logger_store_logs.h>
-#include <native_service/ns_logger_if.h>
-#include <native_service/frameworkunified_types.h>
-#include <power_hal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <pthread.h>
-#include <inttypes.h>
-#include <map>
-#include <string>
-#include <vector>
-#include <queue>
-#include <sstream>
-#include <set>
-#include <list>
-#include <utility>
-
-#include "ss_sm_config.h"
-#include "ss_sm_systemmanagerlog.h"
-#include "ss_system_thread_info.h"
-#include "ss_system_memory_monitor.h"
-#include "ss_sm_dynamic_launcher.h"
-
-static_assert((SS_SM_PROG_UPDATE_STATE_NONE == PWR_PROGUPDATE_STATE_NONE),
- "SS_SM_PROG_UPDATE_STATE_NONE should be equal to "
- "PWR_PROGUPDATE_STATE_NONE");
-static_assert((SS_SM_PROG_UPDATE_STATE_UPDATED == PWR_PROGUPDATE_STATE_UPDATED),
- "SS_SM_PROG_UPDATE_STATE_UPDATED should be equal to "
- "PWR_PROGUPDATE_STATE_UPDATED");
-static_assert((SS_SM_PROG_UPDATE_STATE_MAP_UPDATED ==
- PWR_PROGUPDATE_STATE_MAP_UPDATED),
- "SS_SM_PROG_UPDATE_STATE_MAP_UPDATED should be equal to "
- "PWR_PROGUPDATE_STATE_MAP_UPDATED");
-static_assert((SS_SM_PROG_UPDATE_STATE_MAPDIFF_UPDATED ==
- PWR_PROGUPDATE_STATE_MAPDIFF_UPDATED),
- "SS_SM_PROG_UPDATE_STATE_MAPDIFF_UPDATED should be equal to "
- "PWR_PROGUPDATE_STATE_MAPDIFF_UPDATED");
-
-#define SM_SHUTDOWN_COMPLETE_MONITOR_TIMEOUT 60
-
-typedef enum {
- eSM_TIMER_GROUP_MONITOR = 0x00
- , eSM_TIMER_PROCESS_LAUNCH_MONITOR
- , eSM_TIMER_HEARTBEAT_MONITOR
- , eSM_TIMER_PROCESSLAUNCHER_MONITOR
- , eSM_TIMER_CLIENT_START_MONITOR
- , eSM_TIMER_NPP_STATUS_CHECK_MONITOR
- , eSM_TIMER__CWORD56__HEARTBEAT_RESPONSE
- , eSM_TIMER_LAUNCH_GROUP_TRIGGER_PROC_RESP_TIMER
- , eSM_TIMER_GROUP_LAUNCH_WAIT_TIMER
- , eSM_TIMER_MODULE_CONNECT_WAIT_TIMER
- , eSM_TIMER_START_RESP_MONITOR_WAIT_TIMER
- , eSM_TIMER_SHUTDOWN_COMPLETE_MONITOR
- , eSM_TIMER_CLIENT_STOP_MONITOR
- , eSM_TIMERS_END
-} ESMTimerIDs;
-
-typedef enum {
- eSM_ERROR_EVENT_TIMER_LOGGER_START_REQ
- , eSM_ERROR_EVENT_TIMER_DEBUG_DUMP_RSPN
- , eSM_ERROR_EVENT_TIMER_BOOT_MICRO_LOG_RSPN
- , eSM_ERROR_EVENT_TIMER_CORE_FILE_POLL
- , eSM_ERROR_EVENT_TIMER_END
-} ESMErrorEventTimers;
-
-typedef enum {
- eErrorEventResetTypeNone = 0,
- eErrorEventResetTypeHard
-} EErrorEventResetType;
-
-typedef enum _ESMInternalProtocol {
- SS_SM_SendTriggerToSelf = SS_SM_PROTOCOL_INTERFACE_END ///< System Manager to System Manager
-} ESMInternalProtocol;
-
-typedef enum _SS_SMGroupHirarchy {
- SS_SM_INVALID_GROUP = 0
- , SS_SM_INITIAL_GROUP
- , SS_SM_SECOND_GROUP
- , SS_SM_THIRD_GROUP
-} SS_SMGroupHirarchy;
-
-typedef enum _SS_SMModuleState {
- SS_SM_READY_TO_LAUNCH_APP = 0x00
- , SS_SM_APPS_LAUNCH_IN_PROGRESS
- , SS_SM_APPS_LAUNCHED_READY_TO_START
- , SS_SM_APPS_START_IN_PROGRESS
- , SS_SM_APPS_START_COMPLETE
- , SS_SM_APPS_STOPPING_AT__CWORD56__REQ
- , SS_SM_APPS_STOPPING_AT_INTERNAL_REQ
- , SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ
- , SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ
- , SS_SM_APPS_PRE_START_IN_PROGRESS
- , SS_SM_APPS_PRE_STOP_IN_PROGRESS
- , SS_SM_APPS_PRE_RUN_COMPLETE
- , SS_SM_APPS_BACKGROUND_START_IN_PROGRESS
- , SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS
- , SS_SM_APPS_BACKGROUND_RUN_COMPLETE
-} SS_SMModuleState;
-
-typedef struct _SMProcessExitInfo {
- _SMProcessExitInfo() {
- this->pid = 0;
- this->exitValue = 0;
- this->signalNumber = 0;
- this->binaryFileName[0] = '\0';
- }
-
- UI_32 pid;
- SI_32 exitValue;
- SI_32 signalNumber;
- CHAR binaryFileName[MAX_PATH_LENGTH];
-} SMProcessExitInfo;
-
-typedef struct _SMLoggingInfo { // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- _SMLoggingInfo() {
- this->pid = 0;
- this->exitValue = 0;
- this->signalNumber = 0;
- this->binaryFileName[0] = '\0';
- this->messageStr = "";
- this->suffixStr = "";
- this->path = "";
- this->resetReason = e_SS_SM_CPU_RESET_REASON_INVALID;
- }
-
- UI_32 pid;
- SI_32 exitValue;
- SI_32 signalNumber;
- CHAR binaryFileName[MAX_PATH_LENGTH];
- std::string messageStr;
- std::string suffixStr;
- std::string path;
- ESMCpuResetReason resetReason;
-} SMLoggingInfo;
-
-struct ERROR_EVENT_INFO { // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- ERROR_EVENT_INFO() :
- m_eventEnqueueTimeStamp(""),
- m_moduleQueueName(""),
- m_eventType(eErrorEventTypeMaxValue),
- m_prio(eErrorEventPrioDefault),
- m_uniqueCycles(ClockCycle()), // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- m_errorEventResetType(eErrorEventResetTypeNone) { // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- std::string m_eventEnqueueTimeStamp;
- std::string m_moduleQueueName;
- EErrorEventType m_eventType;
- SMLoggingInfo m_loggingInfo;
- EErrorEventPrio m_prio;
- UI_64 m_uniqueCycles;
- EErrorEventResetType m_errorEventResetType;
-};
-
-struct ERROR_EVENT_COMPARE {
- bool operator() (const ERROR_EVENT_INFO& lhs,
- const ERROR_EVENT_INFO& rhs) const {
- if ((eErrorEventPrioDefault == lhs.m_prio) &&
- (eErrorEventPrioDefault == rhs.m_prio)) {
- return (lhs.m_uniqueCycles < rhs.m_uniqueCycles);
- } else {
- return (lhs.m_prio > rhs.m_prio);
- }
- }
-};
-
-typedef std::set<ERROR_EVENT_INFO, ERROR_EVENT_COMPARE> ERROR_EVENT_QUEUE;
-typedef ERROR_EVENT_QUEUE::iterator ERROR_EVENT_QUEUE_ITER;
-typedef std::pair<ERROR_EVENT_QUEUE_ITER, BOOL> ERROR_EVENT_QUEUE_RET;
-
-typedef EFrameworkunifiedStatus (*HndlrCb)(HANDLE hApp);
-typedef EFrameworkunifiedStatus (*FncCbType2)(HANDLE hApp, UI_32 f_UI_32);
-typedef BOOL (*FncCbType3)(UI_32 f_UI_32);
-
-typedef std::pair<SS_SystemManagerProtocol, Pwr_ServiceSetInterface> SM_POWER_EVENT_INFO;
-typedef std::queue<SM_POWER_EVENT_INFO> SM_POWER_EVENT_QUEUE;
-
-typedef struct {
- std::string m_cmd;
- UI_64 m_time;
- std::string m_sender;
-} Ts_cmdHist;
-
-typedef std::list<std::string> ErrorGroupList;
-typedef ErrorGroupList::iterator ErrorGroupListIter;
-
-typedef std::vector<Ts_cmdHist> cmdHist;
-typedef cmdHist::iterator cmdHistIter;
-
-typedef std::vector<std::string> HBList;
-typedef HBList::iterator HBListIter;
-
-class CVersionNumInfo {
- public:
- CVersionNumInfo() : m_VersionNumber(0), m_eSystemmanagerStatus(eFrameworkunifiedStatusErrOther) {}
- CVersionNumInfo(SS_VersionNumberType f_vn, EFrameworkunifiedStatus f_eStatus)
- : m_VersionNumber(f_vn), m_eSystemmanagerStatus(f_eStatus) {}
-
- // System Manager's local data store; write once on initialization,
- // read as needed at clients' request
- SS_VersionNumberType m_VersionNumber;
- EFrameworkunifiedStatus m_eSystemmanagerStatus; // Validity / status of version number
-};
-
-#define SS_SM_RELAUNCH_NO_LIMIT -1
-typedef struct _PreLaunchModuleParams {
- _PreLaunchModuleParams() {
- this->LaunchFunc = NULL;
- this->name = "";
- this->binaryFileName = "";
- this->critical = FALSE;
- this->relaunchLimit = 0;
- this->pid = -1;
- this->relaunchCount = 0;
- }
-
- int (*LaunchFunc)(); // Launching function
- std::string name; // Process name
- std::string binaryFileName; // Binary file name
- BOOL critical; // Reboot attribute
- int relaunchLimit; // Maximum number of Relaunch
- int pid; // pid
- int relaunchCount; // Count of Relaunching
-} PreLaunchModuleParams;
-
-typedef std::list<PreLaunchModuleParams> PreLaunchModuleList;
-typedef PreLaunchModuleList::iterator PreLaunchModuleListIter;
-
-typedef struct _GroupRelaunchModuleParams {
- _GroupRelaunchModuleParams() {
- this->name = "";
- this->bIsKilled = FALSE;
- }
-
- std::string name; // Process name
- BOOL bIsKilled; // Flag indicates while forced quit process
-} GroupRelaunchModuleParams;
-
-typedef std::list<GroupRelaunchModuleParams> GroupRelaunchModuleList;
-typedef GroupRelaunchModuleList::iterator GroupRelaunchModuleListIter;
-
-
-class CSystemManager {
- public:
- static std::string m_bootOpt; // BOOT OPTION
-
- CSystemManager();
- virtual ~CSystemManager();
-
- static CSystemManager & GetInstance();
- EFrameworkunifiedStatus Initialize(HANDLE hApp);
- void Initialize_memory(HANDLE hApp, bool* l_isInitFail, EFrameworkunifiedStatus* l_eStatus, BOOL isIllReset);
- void Initialize_callbacks(HANDLE hApp, bool *l_isInitFail, EFrameworkunifiedStatus *l_eStatus);
- /// < Process Launcher Thread Callbacks
- EFrameworkunifiedStatus OnModuleLaunchResponse(HANDLE hApp);
- EFrameworkunifiedStatus OnTerminateModuleResponse(HANDLE hApp);
- EFrameworkunifiedStatus OnReLaunchModuleResponse(HANDLE hApp);
- EFrameworkunifiedStatus PerformModuleLaunchRespProcessing(HANDLE hApp,
- GroupLaunchMapIter & f_GroupIter, // NOLINT
- ModuleLaunchListIter & f_ModuleIter, // NOLINT
- PCSTR p_sPPD_tag);
- EFrameworkunifiedStatus OnModuleStatusResponse(HANDLE hApp);
- EFrameworkunifiedStatus OnGroupLaunchTimerExpiry(HANDLE hApp);
- EFrameworkunifiedStatus OnLaunchGroup(HANDLE hApp);
- EFrameworkunifiedStatus OnLaunchGroupSelfTrigger(HANDLE hApp);
- EFrameworkunifiedStatus OnProcessLaunchTimerExpiry(HANDLE hApp);
- EFrameworkunifiedStatus OnHeartBeatMonitorTimerExpiry(HANDLE hApp);
- EFrameworkunifiedStatus OnProcessLaunchMonitorTimerExpiry(HANDLE hApp);
- EFrameworkunifiedStatus OnHeartBeatThreadHeartbeatResponse(HANDLE hApp);
- EFrameworkunifiedStatus OnCheckAvailResponse(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnProcessLauncherThreadHeartbeatResponse(HANDLE hApp);
- EFrameworkunifiedStatus OnClientStartMonitorTimerExpiry(HANDLE hApp);
- EFrameworkunifiedStatus OnClientStopMonitorTimerExpiry(HANDLE hApp);
- EFrameworkunifiedStatus OnNPPStatusCheckMonitorTimerExpiry(HANDLE hApp);
- EFrameworkunifiedStatus OnPowerServiceAvailableNotify(HANDLE hApp);
- EFrameworkunifiedStatus OnLVI1Notify(HANDLE hApp);
- EFrameworkunifiedStatus OnLVI2Notify(HANDLE hApp);
-
- EFrameworkunifiedStatus OnModuleStartCompleteResponse(HANDLE hApp); /// Process start complete from client
- EFrameworkunifiedStatus OnModuleStopCompleteResponse(HANDLE hApp); /// Process stop Complete from client
- EFrameworkunifiedStatus OnGetStartExtInfo(HANDLE hApp);
- EFrameworkunifiedStatus OnGetStopExtInfo(HANDLE hApp);
- EFrameworkunifiedStatus OnModuleStopCompleteNotification(HANDLE hApp);
- EFrameworkunifiedStatus ProcessModuleStopCompleteResponse(HANDLE hApp,
- PCSTR f_moduleName);
- EFrameworkunifiedStatus ModuleCompleteResponse(HANDLE hApp,
- ModuleLaunchListIter f_ModuleListIter,
- SMModuleState f_moduleState,
- FncCbType3 f_isGroupDoneFnc,
- FncCbType2 f_groupDoneFnc,
- PCSTR f_sCompleteTypeText);
-
- EFrameworkunifiedStatus ProcessGroupOnModuleStopResponse(HANDLE hApp, UI_32 f_groupID);
-
-
-
- EFrameworkunifiedStatus OnLaunchGroupTriggerProcessResponseTimerExpiry(HANDLE hApp);
-
- EFrameworkunifiedStatus OnNppStopComplete(HANDLE hApp); /// Process stop Complete from NPPService
- EFrameworkunifiedStatus OnOpenSession(HANDLE hApp); /// Process open session request
- EFrameworkunifiedStatus OnCloseSession(HANDLE hApp); /// Process close session acknowledgment
-
- EFrameworkunifiedStatus CloseApplication(HANDLE hApp);
- EFrameworkunifiedStatus OnGetAppInfo(HANDLE hApp);
-
- /// < Heartbeat Thread Callbacks
- EFrameworkunifiedStatus OnHeartBeatErrorReport(HANDLE hApp);
-
- EFrameworkunifiedStatus OnCurrentSMStateQuery(HANDLE hApp);
-
- EFrameworkunifiedStatus OnNPPReadyStatusCallback(HANDLE hApp);
- EFrameworkunifiedStatus OnNPPReadyEventCallback(HANDLE hApp);
- EFrameworkunifiedStatus OnWakeupCallback(HANDLE hApp);
- EFrameworkunifiedStatus OnPowerRequestCallback(HANDLE hApp);
- EFrameworkunifiedStatus OnBackupMgrAvailCallback(HANDLE hApp);
- EFrameworkunifiedStatus OnShutdownModulesRequest(HANDLE hApp);
- EFrameworkunifiedStatus OnSystemModeInfoRequest(HANDLE hApp);
- EFrameworkunifiedStatus ClearDramBackupInfo(HANDLE hApp);
- EFrameworkunifiedStatus OnInitCompReportCallback(HANDLE hApp);
- EFrameworkunifiedStatus SetEnvVariableForVupMode(BOOL bIsVupMode);
- static int CreateRtUsb();
- EFrameworkunifiedStatus SecureChipOff();
- EFrameworkunifiedStatus CallStopCompleteHandler(HANDLE hApp, BOOL bISDetectTimeout = FALSE);
-
- EFrameworkunifiedStatus On_CWORD56_HeartBeatRequest(HANDLE hApp);
- EFrameworkunifiedStatus On_CWORD56_HeartBeatResponseIntervalTimerExpiry(HANDLE hApp);
- EFrameworkunifiedStatus OnGroupLaunchWaitTimeout(HANDLE hApp);
- EFrameworkunifiedStatus OnModuleConnectWaitTimeout(HANDLE hApp);
- EFrameworkunifiedStatus OnStartRespMonitorTimeout(HANDLE hApp);
- EFrameworkunifiedStatus OnShutdownCompleteMonitorTimeout(HANDLE hApp);
- EFrameworkunifiedStatus PerformCpuReset(HANDLE hApp, ESMCpuResetReason f_eSmCpuResetReason, std::string f_messageStr = ""); // NOLINT
- EFrameworkunifiedStatus OnCpuResetRequest(HANDLE hApp);
- EFrameworkunifiedStatus OnSetDataResetModeRequest(HANDLE hApp);
- EFrameworkunifiedStatus OnSetProgUpdateStateRequest(HANDLE hApp);
- EFrameworkunifiedStatus OnLaunchGroupTriggerProcessResponse(HANDLE hApp);
- EFrameworkunifiedStatus OnSetNextWakeupTypeRequest(HANDLE hApp);
-
- bool GetDramPowerStatusInfo(const HANDLE h_app);
- bool GetDramStoreStatusInfo(const HANDLE h_app);
- bool GetSyscomPowerStatusInfo(const HANDLE h_app);
- //
- // Start Confirmation, Get _CWORD56_ Version callback functions
- EFrameworkunifiedStatus OnSetStartupConfirmationDataRequest(HANDLE hApp);
-
- void SystemManagerDebugDump(HANDLE hApp);
-
-
- private:
- CThreadInfo m_hHeartbeatThread; // Handle to Heartbeat Thread
- CThreadInfo m_hProcLauncherThread; // Handle to Process Launcher Thread
- UI_32 m_SystemLaunchProgress; // Launch Progress of system
- TimerCtrl * m_GroupLaunchTimer; // Launch Monitor Timer
- UI_32 m_aTimerIDs[eSM_TIMERS_END]; // TimerIDs returned by create timer
- PreLaunchModuleList m_PreLaunchModuleList; // List of modules that shuuld be launched preliminarily.
- GroupRelaunchModuleList m_GroupRelaunchModuleList; // List of modules that need to relaunch
- UI_32 m_GroupRelaunchCount; // Count for group relaunch
- UI_32 m_GroupRelaunchLimit; // Limit for group relaunch
- GroupLaunchMap m_MapProclaunchGrps; // Map of modules that should be launched.
- ProcessNameMap m_MapProcNames; // Map of module binary names to queue names.
- HANDLE m_hPowerServiceSession;
- UI_32 m_ActiveGroupId; // Modules of Group to whom START/STOP has been sent
- wakeInfo m_Wake; // WakeUp data from power
- EPWR_WAKEUP_FACTOR_TYPE m_StartUpReason; // System Manager preserve start up reason
- ESMDataResetModeInfo m_DataResetMode; // Data Reset Mode
- SMProgUpdateState m_ProgUpdateState; // ProgUpdate State
- ESMNextWakeupType m_NextWakeupType; // Next Progupdate State
- ESMDramBackupStatus m_DramBackupStatus; // Dram Backup Status
- BOOL m_isIlgReset; // Error Detected by SYS-ucon
- ESMResetStatus m_ResetStatus; // Reset Status
- UI_32 m_ResetCount; // Reset Count
- T_SS_SM_INIT_HOOK_OUT_PARAM m_productCustomPrm; // Product customized parameters
-
- SS_SMModuleState m_SMCurrentState; // Current state of System Manager
- UI_32 m_MaxShutdownTime; // Calculate Max shutdown time based on info from xml
- UI_32 m_NbrDebugDumpRspnRecv; // Total number of debug dump responses received.
- BOOL m_isRcvModeInfo;
- SystemModeInfo m_SystemModeInfo; // System Mode Info, SM to read data from persistent file at start
- SS_String m_BinaryFilesPath; // Store binary files path
- SS_String m_ConfigFilesPath; // Store config files path
- ConfigurationData m_SMConfig; // Configuration Data of System Manager and its threads
- HndlrCb m_pfStopCompleteHandler;
- CVersionNumInfo m_VersionNumberStruct;
- SS_String m_BuildInfoStr;
-
- BOOL m_isRstPending;
- TSystemManagerCpuResetInfo m_rstPendingInfo;
-
- SM_POWER_EVENT_QUEUE m_dqDeferMsg;
- BOOL m_UsingVMPlayer; // Running on a VMPlayer ?
- UI_32 NVM_VALID_SIGNATURE;
- StartupConfirmationMsgStrut m_startUpConfirmationMsg;
- EPWR_USER_MODE_TYPE m_lastUserMode;
- EPWR_SHUTDOWN_TRIGGER_TYPE m_shutdownTrigger; // Set from Shutdown_Request
- // msg from _CWORD56_, sent to
- // all modules as part of
- // SS_SM_STOP msg.
- BOOL m_isImmediateReset;
- BOOL m_isImmResetReq;
- BOOL m_needReNotifyStartPrm;
- CHAR *m_pVarCodeStr;
- GroupLaunchMapIter m_SSLGroupLaunchMapIterator;
- ModuleLaunchListIter m_ModuleLaunchListIter;
- BOOL m_bIsNPP_ServicesStarted;
- BOOL m_bIsBackupAvail;
- //
- DynamicLauncher m_oSystemLauncher;
- DynamicModuleStart m_SystemStarter;
- //
- BOOL m_NPPStopSent;
- ePwrServiceUserModeChangeReasonType m_userModeChangeReason;
-
- HBList m_HBList;
-
- cmdHist m__CWORD56_CmdHist;
- cmdHistIter m__CWORD56_HistIter;
- cmdHist m_SMCmdHist;
- cmdHistIter m_SMHistIter;
- cmdHist m_TimerCmdHist;
- cmdHistIter m_TimerHistIter;
- cmdHist m_PubCmdHist;
- cmdHistIter m_PubHistIter;
- cmdHist m_ErrHist;
- cmdHistIter m_ErrHistIter;
-
- pthread_mutex_t sm_hist_mutex;
-
- bool m_InitialBoot;
-
- PsmFactorT m_ResetFactor; // reset(start-up) factor.
-
- void SetCmdHist(std::string cmd, cmdHist &hist, cmdHistIter &it, std::string sender); // NOLINT
-
- // ILGRST or ACCOFFON Logging
- bool StoreDebugLogs(const HANDLE h_app, SS_STORELOGS_OPE_TYPE);
-
- UI_32 InProgressStateToSendMsg() const;
- SMModuleState InProgressStateToState() const;
-
- //************************************************************************
- // Error Event Logging *
- //
- int m_ClProcessSigFd;
- CSysMemoryMonitor m_SysMemMonitor;
-
- UI_32 m_FreeMemAvailable;
- off_t m_coreFileSizeBytes;
- THbReportData m_HBReport;
- eSMBootMicroResetReason m_BootMicroResetReason;
- BOOL m_errorEventQueueLocked;
- ERROR_EVENT_QUEUE m_errorEventQueue;
- Timer m_errorEventTimers[eSM_ERROR_EVENT_TIMER_END];
- BOOL m_isPrevErrEventCompleted;
- EFrameworkunifiedStatus m_errorEventResult;
- EArtifactId m_requestedArtifactId;
- ERROR_EVENT_QUEUE_ITER m_errorEventCurrentIter;
- // *
- // End of Error Event Logging *
- //************************************************************************
-
-
- ////******************************************************************////
- //// enum<=>enum maps ////
- //
- //
- // EPWR_POWER_STATE_TYPE <=> BOOL
- std::map<EPWR_POWER_STATE_TYPE, BOOL> m_PowerType_to_SSBoolEnumMap;
- std::map<EPWR_POWER_STATE_TYPE, EPWR_USER_MODE_TYPE>
- m_PowerType_to_SSUserModeEnumMap;
- std::map<BOOL, EPWR_POWER_STATE_TYPE> m_SSBool_to_PowerTypeEnumMap;
- //
- // User Mode
- std::map<EPWR_USER_MODE_TYPE, BOOL> m_SSUserMode_to_SSBoolEnumMap;
- std::map<BOOL, EPWR_USER_MODE_TYPE> m_SSBool_to_SSUserModeEnumMap;
-
- //
- //// End of enum<=>enum maps ////
- ////******************************************************************////
-
- EFrameworkunifiedStatus init_process_launcher(HANDLE hApp);
- EFrameworkunifiedStatus start_process_launching(HANDLE hApp);
- EFrameworkunifiedStatus init_Heartbeat(HANDLE hApp);
- EFrameworkunifiedStatus init_crash_detector(HANDLE hApp);
- EFrameworkunifiedStatus init_sysmem_monitor(HANDLE hApp);
- EFrameworkunifiedStatus SendRequestToHeartBeat(HANDLE hAPP, EHBProtocolMessages, VOID *, UI_32);
- EFrameworkunifiedStatus send_launch_status(HANDLE hApp, UI_32 u32LaunchState);
-
- EFrameworkunifiedStatus register_all_notification_callbacks(HANDLE hApp);
- VOID SMStateStartCompleteEntry(HANDLE hApp);
- VOID SMStateEntry(HANDLE hApp, SS_SMModuleState l_SMState);
- VOID SMStateExit(HANDLE hApp, SS_SMModuleState l_SMState);
- VOID SMSetState(HANDLE hApp, SS_SMModuleState l_SMState);
-
- // Wakeup from Power
- EFrameworkunifiedStatus BeginStartup(HANDLE hApp);
- EFrameworkunifiedStatus start_all_modules_of_group(HANDLE hApp, UI_32 f_ui32GroupNumber);
- EFrameworkunifiedStatus send_power_request_complete_response(HANDLE hApp,
- std::string pStr);
- BOOL have_all_services_start_completed(const SMModuleState f_moduleState);
-
- // Power Off from Power
- EFrameworkunifiedStatus PublishPowerOnOffNotification(HANDLE hApp);
-
- // Shutdown from Power
- EFrameworkunifiedStatus stop_all_modules_of_group(HANDLE hApp);
- UI_32 calculate_max_shutdown_time();
- BOOL is_service_shutdown_ready(ModuleLaunchListIter &modIte); // NOLINT
- BOOL have_critical_services_stopped();
- VOID check_all_groups_have_stopped(HANDLE hApp);
- EFrameworkunifiedStatus perform_force_reset(HANDLE hApp);
- EFrameworkunifiedStatus send_shutdown_complete_response(HANDLE hApp);
- EFrameworkunifiedStatus SendShutdownResponseMessage(HANDLE hApp);
-
- PsmFactorT GetResetFactor(PCSTR f_module_name, BOOL f_user_reset);
- PsmFactorT GetResetFactor(const ModuleLaunchListIter f_module_iter, BOOL f_user_reset);
-
- EFrameworkunifiedStatus ValidateUserModeMessage(HANDLE hApp, EPWR_USER_MODE_TYPE &l_eUserModeState); // NOLINT
-
- VOID SetStartGroup();
-
- VOID ReadPathFromEnvironmentVariables();
- SS_String ReadConfigDataFileNameFromEnvironmentVariable();
- SS_String ReadLaunchConfigFileNameFromEnvironmentVariable();
-
-
- VOID ReadUsingVMPlayerEnvironmentVariable();
-
- VOID InitiateAllGroupsShutdown(HANDLE hApp);
- VOID SendDeferMsg(HANDLE hApp);
- EFrameworkunifiedStatus GetVersionNumber(SS_VersionNumberType &f_VersionNumber); // NOLINT
- EFrameworkunifiedStatus GetBuildInfo(std::string &f_BuildInfoStr); // NOLINT
- EFrameworkunifiedStatus RegisterCallbacksForRequester(HANDLE hApp, PCSTR pRequester);
- EFrameworkunifiedStatus SetSystemModeInfoStruct();
-
- EFrameworkunifiedStatus PerformLaunchProcedure(HANDLE hApp
- , ModuleLaunchListIter f_ModuleIterator
- , SS_String & f_stopCompName); // NOLINT
-
- EFrameworkunifiedStatus PerformTerminateProcedure(HANDLE hApp
- , ModuleLaunchListIter f_ModuleIterator
- , SS_String & f_availabilityName
- , SS_String & f_stopCompName); // NOLINT
-
- EFrameworkunifiedStatus SendRequestToLauncher(HANDLE hApp
- , ModuleLaunchListIter f_ModuleIterator
- , ESMPLThreadCommandIds f_CommandId
- , SS_String f_CommandIdStr);
-
- EFrameworkunifiedStatus FindNameOfTerminatedProcess(SI_32 pid, SS_String &f_ModuleName); // NOLINT
-
- EFrameworkunifiedStatus GetBinaryNameOfProcess(SS_String f_ModuleQueueName,
- SS_String &f_ModuleBinaryName); // NOLINT
-
- EFrameworkunifiedStatus RemoveModuleEntryFromHB(HANDLE hApp, const CHAR *f_ModuleName);
-
- EFrameworkunifiedStatus PublishUserModeNotification(HANDLE hApp);
- EFrameworkunifiedStatus PerformPowerOnOffUserModePublication(
- HANDLE hApp,
- const char * p_NotificationStr);
- EFrameworkunifiedStatus SendSystemModeInfoResponse(
- HANDLE hApp,
- EPWR_STARTUP_STAGE_TYPE f_startupStage);
-
- VOID SYSTEMMANAGERLOG_StartupConfirmationMsg(EPWR_SC_MSG_STRUCT & f_scMsg); // NOLINT
- VOID LogGroupModulesState(UI_32 f_groupId, std::string pStr);
- VOID LogAllGroupModulesState(std::string pStr);
-
- EFrameworkunifiedStatus ProcessGroupAsStarted(HANDLE hApp
- , GroupLaunchMapIter f_GroupIterator);
- EFrameworkunifiedStatus ProcessGroupAsStarted(HANDLE hApp
- , UI_32 f_groupId);
- EFrameworkunifiedStatus GetModuleIterator(PCSTR f_moduleName, ModuleLaunchListIter & f_moduleIter); // NOLINT
- BOOL IsGroupStarted(UI_32 f_groupId);
- BOOL IsGroupStopped(UI_32 f_groupId);
- EFrameworkunifiedStatus ResetModulesStateToConnected(HANDLE hApp);
-
- EFrameworkunifiedStatus GetTimeStamp(std::string& TimeStamp); // NOLINT
- std::string GetErrorEventInString(UI_32 &ErrorEventType); // NOLINT
- EFrameworkunifiedStatus GetLastSourceInfo(SS_SOURCE &source_type); // NOLINT
- //
- // Return True when Module is in correct / appropriate state wrt SM state
- // return false otherwise
- BOOL GetModuleCondition(ModuleLaunchListIter & f_ModuleIter); // NOLINT
-
- VOID LogESystemmanagerStatusEnums();
- VOID LogProtocolIDs();
-
- VOID SystemmanagerLogString(TFrameworkunifiedZone f_zone,
- PCSTR f_func,
- std::string &f_text); // NOLINT
-
- inline BOOL is_current_state(SS_SMModuleState SMState) {
- return (m_SMCurrentState == SMState);
- }
-
- //**************************************************************************
- // Get results from TestClient *
- // *
- EFrameworkunifiedStatus add_state_information_to_response(CHAR *f_MessageResponse) const;
- EFrameworkunifiedStatus construct_get_result_response(CHAR *f_MessageResponse); // *
- EFrameworkunifiedStatus open_session_with_sm_test_client(HANDLE hApp, // *
- PCSTR pRequester); // *
- // *
- // End of 'Get results from TestClient' *
- //**************************************************************************
-
- //************************************************************************
- // Error Event Logging *
- // *
- EFrameworkunifiedStatus ErrorEventInit(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnHeartBeatErrorDetected(HANDLE f_hApp);
- EFrameworkunifiedStatus OnProcessTermDetected(HANDLE f_hApp);
- BOOL isPreLaunchedProcess(int f_pid);
- EFrameworkunifiedStatus OnPreLaunchedProcessTermDetected(HANDLE f_hApp,
- SMProcessExitInfo &f_procExitInfo, // NOLINT
- BOOL f_bIsExited);
- EFrameworkunifiedStatus OnProcessCrashDetected(HANDLE f_hApp,
- SMProcessExitInfo &f_procExitInfo); // NOLINT
- EFrameworkunifiedStatus OnProcessExitDetected(HANDLE f_hApp,
- SMProcessExitInfo &f_procExitInfo); // NOLINT
-
- EFrameworkunifiedStatus OnUserInvokedLoggingRequest(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnEelExportRequest(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnSystemmanagerEmmcLogsRequest(HANDLE f_hApp);
- EFrameworkunifiedStatus OnSystemmanagerClearLogsRequest(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnDiagLoggingRequest(HANDLE f_hApp);
- EFrameworkunifiedStatus OnCANLoggingRequest(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnPropagateSystemError(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnCaptureAllLogsRequest(HANDLE f_hApp);
- EFrameworkunifiedStatus OnCaptureScreenShotRequest(HANDLE f_hApp);
- EFrameworkunifiedStatus OnCaptureSystemmanagerLogsRequest(HANDLE f_hApp);
-
-
- EFrameworkunifiedStatus OnBootMicroResetNotification(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnObtainBootMicroLog(HANDLE f_hApp);
- EFrameworkunifiedStatus RequestBootMicroLog(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnBootMicroLogResponse(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnErrorEventBootMicroLogResponseTimeout(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnLowSystemMemory(HANDLE f_hApp);
- EFrameworkunifiedStatus OnObtainSystemmanagerSystemDataCsv(HANDLE f_hApp);
- EFrameworkunifiedStatus OnObtainShowMemTxt(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnErrorEventCoreFilePollTimeout(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnObtainDebugDumpLog(HANDLE f_hApp);
- EFrameworkunifiedStatus SendDebugDumpRequestToAllModules(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnDebugDumpResponseReceived(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnDebugDumpCompleteTimeout(HANDLE f_hApp);
-
- EFrameworkunifiedStatus ErrorEventEnqueue(HANDLE f_hApp,
- EErrorEventType f_eventType,
- std::string &f_moduleQueueName, // NOLINT
- EErrorEventResetType f_resetType = eErrorEventResetTypeNone,
- const SMLoggingInfo &f_loggingInfo = SMLoggingInfo());
-
- EFrameworkunifiedStatus PerformResetAfterLogging(HANDLE f_hApp,
- ESMCpuResetReason f_eCpuResetReason,
- std::string f_messageStr = "");
-
- EFrameworkunifiedStatus ErrorEventProcessNext(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnLoggingStartRequest(HANDLE f_hApp);
- EFrameworkunifiedStatus OnErrorEventLoggerStartRequestTimeout(HANDLE f_hApp);
-
- EFrameworkunifiedStatus OnErrorEventArtifactRequest(HANDLE f_hApp);
-
- EFrameworkunifiedStatus SendLogArtifactResponseToLogger(HANDLE f_hApp,
- EArtifactId f_artifactId,
- std::string f_artifactFilePathAndName);
-
- EFrameworkunifiedStatus OnErrorEventLoggingComplete(HANDLE f_hApp);
-
- EFrameworkunifiedStatus ActOnModuleFailure(HANDLE f_hApp,
- SS_String f_moduleName,
- BOOL &f_refResetRequired); // NOLINT
- std::string ErrorEventCreateHmiDisplayString(void);
-
- // *
- // End of Error Event Logging *
- //************************************************************************
-
- UI_32 m_SystemManagerPriority;
-};
-#define REC_HIST(pStrCmd, hist, it, pStrSender) \
- SetCmdHist(pStrCmd, hist, it, pStrSender);
-
-#define REC_HIST_IF_SUCCESSFUL(pStr, hist, it, sender, l_eStatus) \
- if (eFrameworkunifiedStatusOK == l_eStatus) { \
- REC_HIST(pStr, hist, it, sender) \
- }
-
-#define LOG_ERROR_REC_HIST(l_eStatus, pStr) { \
- LOG_ERROR(pStr); \
- REC_HIST(pStr, m_ErrHist, m_ErrHistIter, GetStr(l_eStatus).c_str()); \
- }
-#define LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, pStr) \
- if (eFrameworkunifiedStatusOK != l_eStatus) { \
- LOG_ERROR(pStr); \
- REC_HIST(pStr, m_ErrHist, m_ErrHistIter, GetStr(l_eStatus).c_str()); \
- } else { \
- LOG_SUCCESS(pStr); \
- } // End of #define LOG_STATUS(l_eStatus,pStr)
-
-#define LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, pStr) \
- if (eFrameworkunifiedStatusOK != l_eStatus) { \
- LOG_ERROR(pStr); \
- REC_HIST(pStr, m_ErrHist, m_ErrHistIter, GetStr(l_eStatus).c_str()); \
- } // End of #define LOG_STATUS_IF_ERRORED(l_eStatus,pStr)
-
-#endif // __SS_SYSTEM_MANAGER_H__ // NOLINT
diff --git a/systemservice/system_manager/server/include/ss_system_manager_callbacks.h b/systemservice/system_manager/server/include/ss_system_manager_callbacks.h
deleted file mode 100755
index e9d5938..0000000
--- a/systemservice/system_manager/server/include/ss_system_manager_callbacks.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager business logic.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_SYSTEM_MANAGER_CALLBACKS_H_ // NOLINT
-#define SS_SYSTEM_MANAGER_CALLBACKS_H_
-
-#include <native_service/frameworkunified_types.h>
-#include <native_service/frameworkunified_framework_if.h>
-
-#endif // SS_SYSTEM_MANAGER_CALLBACK_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/ss_system_memory_monitor.h b/systemservice/system_manager/server/include/ss_system_memory_monitor.h
deleted file mode 100755
index 50cf857..0000000
--- a/systemservice/system_manager/server/include/ss_system_memory_monitor.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager System Low Memory
-/// detection.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef __SS_SYSTEM_MEMORY_MONITOR_H__ // NOLINT
-#define __SS_SYSTEM_MEMORY_MONITOR_H__
-
-#include <native_service/frameworkunified_types.h>
-#include <system_service/resm.h>
-#include <system_service/ss_system_timer.h>
-#include <iostream>
-#include <string>
-#include "ss_sm_config.h"
-
-
-typedef enum _ESMSysMemThreadCommandIds {
- eSysMemThrdCmd_SYS_LOW_MEMORY = 0x744, ///< SM.CrashDetector --> SM
-} ESMSysMemThreadCommandIds;
-
-struct SysMem {
- UI_32 FreeMemoryBytes;
- UI_32 TotalMemoryBytes;
-};
-
-const UI_32 SS_SLM_MEM_MONITOR_TIMER_ID = 3000;
-const UI_32 SS_SLM_SYSTEMMANAGERLOG_TIMER_ID = 3001;
-const UI_32 SS_MEMORY_TIMER_CONFIG_MS = 1000;
-const UI_32 SS_SYSTEMMANAGERLOG_TIMER_CONFIG_MS = 30000;
-
-class CSysMemoryMonitor {
- public:
- CSysMemoryMonitor(void);
-
- virtual ~CSysMemoryMonitor(void);
-
- EFrameworkunifiedStatus Initialize(HANDLE f_hApp);
- EFrameworkunifiedStatus StopAndFreeObjects(HANDLE f_hApp);
-
- const std::string GetThreadName(void);
- void SetSLMConfigData(SLMConfigParameters &f_ConfigData); // NOLINT
-
- private:
- EFrameworkunifiedStatus CPUMemThreadStart(HANDLE f_hThread);
- EFrameworkunifiedStatus CPUMemThreadStop(HANDLE f_hThread);
- EFrameworkunifiedStatus StopTimers(void);
- EFrameworkunifiedStatus OnMemoryTimerExpiry(HANDLE f_hThread);
- EFrameworkunifiedStatus OnSystemmanagerlogTimerExpiry(HANDLE f_hThread);
- EFrameworkunifiedStatus OnAvailability(HANDLE f_hThread);
-
- UI_32 GetSystemRamSize(void);
- UI_32 BitReverse32(UI_32 f_val);
-
- HANDLE m_hThread;
- HANDLE m_hParentApp;
- Timer m_memMonitorTimer;
- Timer m_systemmanagerlogTimer;
- SLMConfigParameters m_SLMConfig;
- SI_32 m_SLMCheckCounter;
- SI_32 m_siPriority;
- UI_32 m_NbrSamplesBeforeSystemmanagerlog;
- SysMem m_sysMemInfoLast;
- std::string m_memMonitorThreadName;
- uint32_t m_resmSession;
-};
-
-#endif // __SS_SYSTEM_MEMORY_MONITOR_H__ // NOLINT
diff --git a/systemservice/system_manager/server/include/ss_system_thread_info.h b/systemservice/system_manager/server/include/ss_system_thread_info.h
deleted file mode 100755
index f21ad5a..0000000
--- a/systemservice/system_manager/server/include/ss_system_thread_info.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager thread management.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_SYSTEM_THREAD_INFO_H_ // NOLINT
-#define SS_SYSTEM_THREAD_INFO_H_
-
-#include <native_service/frameworkunified_types.h>
-
-typedef enum {
- eSM_ThreadNotExist
- , eSM_ThreadCreated
- , eSMThreadIsFine
- , eSMWaitForHeartbeat
- , eSM_ThreadError
-} ESMThreadInfo;
-
-class CThreadInfo {
- public:
- CThreadInfo() : m_ThreadHdl(INVALID_HANDLE), m_ThreadState(eSM_ThreadNotExist) {}
- CThreadInfo(HANDLE hdl, ESMThreadInfo State) : m_ThreadHdl(hdl), m_ThreadState(State) {}
- public:
- HANDLE m_ThreadHdl;
- ESMThreadInfo m_ThreadState;
-};
-
-#endif // SS_SYSTEM_THREAD_INFO_H_ // NOLINT
diff --git a/systemservice/system_manager/server/include/system_launcher_cfg_format.h b/systemservice/system_manager/server/include/system_launcher_cfg_format.h
deleted file mode 100755
index b30b21f..0000000
--- a/systemservice/system_manager/server/include/system_launcher_cfg_format.h
+++ /dev/null
@@ -1,66 +0,0 @@
-
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager process launching.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SS_SM_LAUNCH_CONFIG_H_ // NOLINT
-#define SS_SM_LAUNCH_CONFIG_H_
-
-#include <native_service/frameworkunified_types.h>
-
-typedef struct _tLaunchParams {
- const PCHAR group_name;
- UI_32 group_id;
- UI_32 group_launch_wait;
- const PCHAR name;
- const PCHAR binary_name;
- UI_32 priority;
- BOOL critical;
- UI_32 retry_cnt;
- const PCHAR arguments;
- const PCHAR logging_msk_str;
- const PCHAR restart;
- BOOL is_start_required;
- BOOL shutdown_critical;
- UI_32 shutdown_wait_time;
- UI_32 fast_shutdown_wait_time;
-
- public:
- BOOL IsAGLUnit(void) const { return is_agl_unit; }
- BOOL IsAGLResetHistoryDisable(void) const { return disable_agl_resethistory; }
- BOOL IsNonAGLResetHistoryDisable(void) const { return disable_nonagl_resethistory; }
- void SetAGLUnit(BOOL f_is_agl_unit) { is_agl_unit = f_is_agl_unit; }
- void SetAGLResetHistoryDisable(BOOL f_disable_agl_resethistory) {
- disable_agl_resethistory = f_disable_agl_resethistory;
- }
- void SetNonAGLResetHisoryDisable(BOOL f_disable_nonagl_resethistory) {
- disable_nonagl_resethistory = f_disable_nonagl_resethistory;
- }
-
- private:
- BOOL is_agl_unit;
- BOOL disable_agl_resethistory;
- BOOL disable_nonagl_resethistory;
-} LaunchInfo;
-
-LaunchInfo g_arrLaunchTableCfg[] = {
-};
-#endif // SS_SM_LAUNCH_CONFIG_H_ // NOLINT
diff --git a/systemservice/system_manager/server/sm_launch__CWORD84_.xml b/systemservice/system_manager/server/sm_launch__CWORD84_.xml
deleted file mode 100755
index 1392bbb..0000000
--- a/systemservice/system_manager/server/sm_launch__CWORD84_.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<!-- group_id=1 -->
-<group name="CoreModules" wait_time="0" trigger="False" >
- <launch
- name=MN_NS_NPPSERVICE path="/usr/agl/bin/NS_NPPService" priority=PR_NS_NPPSERVICE_S
- critical="True" retry_cnt="0" arguments="-a SS_SysManager -r output=0x2"
- restart="NULL" is_start_required="False"
- shutdown_critical="True" shutdown_wait_time="20" fast_shutdown_wait_time="1000"
- user_name=""
- />
- <launch
- name=MN_NS_BACKUPMGR path="/usr/agl/bin/NS_BackupMgr" priority=PR_NS_BACKUPMGR_S
- critical="True" retry_cnt="0" arguments="-l console"
- restart="NULL" is_start_required="True"
- shutdown_critical="True" shutdown_wait_time="15" fast_shutdown_wait_time="1000"
- user_name=""
- />
-</group>
-<!-- group_id=2 -->
-<group name="SS_Logger" wait_time="0" trigger="False" >
- <launch
- name=MN_SS_LOGGERSRV path="/usr/agl/bin/SS_LoggerService" priority=PR_SS_LOGGERSRV_S
- critical="True" retry_cnt="0" arguments="-l console -p thrd=pdg.LogQueReader:30,thrd=pdg.TransmitQueReader:30,thrd=pdg.DumpQueReader:11,thrd=pdg.PerformanceQueReader:11,thrd=pdg.LogQueWriter:30,thrd=pdg.TransmitQueWriter:30,thrd=pdg.EvntLogQue:8,thrd=pdg.UdpQueWriter:10"
- restart="NULL" is_start_required="True"
- shutdown_critical="True" shutdown_wait_time="10" fast_shutdown_wait_time="1000"
- user_name=""
- />
-</group>
-<!-- group_id=3 -->
-<group name="ShadowModules" wait_time="0" trigger="False" >
- <!--
- In order to excute the termination process promptly, the shutdown_wait_time of GROUP4~ sha be a;; set tp 0,
- and FrameworkunifiedOnStop shall be issued to the servies of GROUP~ at almost the same time upon termination.
- Setting shutdown_wait_time in the COMMUNICATION of GROUP3 makes GROUP3 wait for GROUP4~ to terminate service (wait for FrameworkunifiedOnStop responses) all at once.
- The reason for batch wait by GROUP3 is to save the LOG of tge ternubatuib processing at the time of ACC-OFF of services
- because the LOG save processing is performed by the GROUP2 termination processing of SS_LoggerService.
- -->
- <launch
- name=MN_COMMUNICATION path="/usr/agl/bin/communication" priority=PR_COMMUNICATION_S
- critical="True" retry_cnt="0" arguments="-l console"
- restart="NULL" is_start_required="True"
- shutdown_critical="False" shutdown_wait_time="20" fast_shutdown_wait_time="1000"
- user_name=""
- />
-</group>
-
-<!-- group_id=4 -->
-<group name="VehicleModules" wait_time="0" trigger="False" >
- <launch
- name=MN_POSITIONING path="/usr/agl/bin/Positioning" priority=PR_POSITIONING_S
- critical="True" retry_cnt="0" arguments="NULL"
- restart="NULL" is_start_required="True"
- shutdown_critical="False" shutdown_wait_time="0" fast_shutdown_wait_time="1000"
- user_name=""
- />
-</group>
-
-<!-- group_id=5 -->
-<group name="SystemModules" wait_time="0" trigger="False" >
- <launch
- name=MN_SS_POWERSERVICE path="/usr/agl/bin/SS_PowerService" priority=PR_SS_POWERSERVICE_S
- critical="True" retry_cnt="0" arguments="-l console"
- restart="NULL" is_start_required="True"
- shutdown_critical="False" shutdown_wait_time="0" fast_shutdown_wait_time="1000"
- user_name=""
- />
- <launch
- name=MN_SS_TASKMANAGER path="/usr/agl/bin/tskmgr" priority=PR_SS_TASKMANAGER_S
- critical="True" retry_cnt="0" arguments="-l console"
- restart="NULL" is_start_required="True"
- shutdown_critical="True" shutdown_wait_time="0" fast_shutdown_wait_time="1000"
- user_name=""
- />
- <launch
- name=MN_SS_RESOURCEMGR path="/usr/agl/bin/resm" priority=PR_SS_RESOURCEMGR_S
- critical="True" retry_cnt="0" arguments="-l console"
- restart="NULL" is_start_required="True"
- shutdown_critical="False" shutdown_wait_time="0" fast_shutdown_wait_time="1000"
- user_name=""
- />
-</group>
-<!-- group_id=6 -->
-<!-- group_id=7 -->
-<!-- group_id=8 -->
-<!-- group_id=9 -->
-<!-- group_id=10 -->
-<!-- group_id=11 -->
-<!-- group_id=12 -->
-<!-- group_id=13 -->
-<!-- group_id=14 -->
-<!-- group_id=15 -->
-<!-- group_id=16 -->
-<!-- group_id=17 -->
-<!-- group_id=18 -->
-<!-- group_id=19 -->
-<!-- group_id=20 -->
-<!-- group_id=21 -->
-<!-- group_id=22 -->
-<!-- group_id=23 -->
-<!-- group_id=24 -->
-<!-- group_id=25 -->
-<!-- group_id=26 -->
-<!-- group_id=28 -->
-<!-- group_id=29 -->
-<!-- group_id=30 -->
-<!-- group_id=31 -->
-<!-- group_id=32 -->
-<!-- group_id=33 -->
-<!-- group_id=34 -->
-<!-- group_id=35 -->
-<!-- group_id=36 -->
-<!-- group_id=37 -->
-<!-- group_id=38 -->
-<!-- group_id=39 -->
-<!-- group_id=40 -->
-<!-- group_id=41 -->
-<!-- group_id=42 -->
diff --git a/systemservice/system_manager/server/src/heartbeat/ss_hb_if.cpp b/systemservice/system_manager/server/src/heartbeat/ss_hb_if.cpp
deleted file mode 100755
index a3c2777..0000000
--- a/systemservice/system_manager/server/src/heartbeat/ss_hb_if.cpp
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for the application heartbeat system.
-///
-///////////////////////////////////////////////////////////////////////////////
-#include <native_service/frameworkunified_application.h>
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/frameworkunified_service_protocol.h>
-#include <ss_hb_thread.h>
-#include <system_service/ss_sm_client_if.h>
-#include <system_service/ss_heartbeat_notifications.h>
-#include <system_service/ss_heartbeat_service_protocol.h>
-#include <system_service/ss_templates.h>
-#include <new>
-#include "ss_sm_systemmanagerlog.h"
-
-template<typename C, eFrameworkunifiedStatus (C::*M)(HANDLE)> EFrameworkunifiedStatus HBThreadCallback(HANDLE hThread) {
- EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusNullPointer;
- C * pObj = static_cast<C *>(FrameworkunifiedGetThreadSpecificData(hThread));
- if (pObj) { // LCOV_EXCL_BR_LINE 4:pObj must not be NULL
- eStatus = (pObj->*M)(hThread);
- }
- return eStatus;
-}
-
-static VOID DeletePObj(CHeartBeatThread * pObj) { // LCOV_EXCL_START 8: dead code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- delete pObj;
-}
-// LCOV_EXCL_STOP
-
-static VOID DeleteHBTimer(CHeartBeatThread * pObj) { // LCOV_EXCL_START 8: dead code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus = pObj->HeartBeatTimersDelete();
- LOG_STATUS_IF_ERRORED(l_eStatus, "pObj->HeartBeatTimersDelete()");
-}
-// LCOV_EXCL_STOP
-
-#define DetachParentCbThreadProtocols(hThread, handler) \
-{ \
- EFrameworkunifiedStatus l_eStatus = DetachParentCallbacksFromInterfaceunifiedDispatcher( \
- hThread, \
- handler, \
- static_cast<UI_32>(_countof(handler))); \
- LOG_STATUS_IF_ERRORED(l_eStatus, "DetachParentCallbacksFromInterfaceunifiedDispatcher()") \
-}
-
-#define DetachCbProtocols(hThread, f_pStr, f_protocolHandlers, hSession) \
-{ \
- EFrameworkunifiedStatus l_eStatus = \
- DetachCallbacksFromInterfaceunifiedDispatcher( \
- hThread, \
- f_pStr, \
- f_protocolHandlers, \
- static_cast<UI_32>(_countof(f_protocolHandlers)), \
- hSession); \
- LOG_STATUS_IF_ERRORED(l_eStatus, "DetachCallbacksFromInterfaceunifiedDispatcher()") \
-}
-
-/*****************************************************************************/
-/**
- @ingroup: SS_SystemManager
- @brief: HBThreadStart: function would be called at the time of starting of the thread
- @note: .
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus
- */
-/*****************************************************************************/
-EFrameworkunifiedStatus HBThreadStart(HANDLE hThread) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG0(ZONE_FUNC, __FUNCTION__, "+");
-
- FrameworkunifiedProtocolCallbackHandler HBThreadCommonHandlers[] = {
- // Command ID, Call back functions
- { SS_HEARTBEAT_RESPONSE, HBThreadCallback<CHeartBeatThread, &CHeartBeatThread::HBOnClientResponse> },
- { SS_HEARTBEAT_PRINT_CONNECTIONS, HBThreadCallback<CHeartBeatThread, &CHeartBeatThread::HBOnPrintConnections> },
- { SS_HEARTBEAT_PRINT_STACK, HBThreadCallback<CHeartBeatThread, &CHeartBeatThread::HBOnPrintStack> } }; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- FrameworkunifiedProtocolCallbackHandler HBThreadProtocolHandlers[] = {
- // Command ID, Call back functions
- { SS_HEARTBEAT_START, HBThreadCallback<CHeartBeatThread, &CHeartBeatThread::HBOnStartThread> },
- { SS_HEARTBEAT_STOP, HBThreadCallback<CHeartBeatThread, &CHeartBeatThread::HBOnStopThread> },
- { SS_HEARTBEAT_DELETE_MODULE_ENTRY, HBThreadCallback<CHeartBeatThread, &CHeartBeatThread::HBOnRemoveModule> },
- { SS_HEARTBEAT_APPEND_MODULE_ENTRY, HBThreadCallback<CHeartBeatThread, &CHeartBeatThread::HBOnAppendModule> },
- { SS_HEARTBEAT_PERIODIC_STATUS_REQ, HBThreadCallback<CHeartBeatThread,
- &CHeartBeatThread::HBOnPeriodicStatusRequest> },
- { SS_HEARTBEAT_AVAIL_CHECK_REQ, HBThreadCallback<CHeartBeatThread, &CHeartBeatThread::HBOnAvailCheckRequest> }
- }; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- CHeartBeatThread * pObj = new (std::nothrow) CHeartBeatThread(hThread); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (NULL == pObj) { // LCOV_EXCL_BR_LINE 5: Standard lib
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusNullPointer; // LCOV_EXCL_LINE 5: Standard lib
- LOG_ERROR("new(std::nothrow) CHeartBeatThread(hThread)"); // LCOV_EXCL_LINE 5: Standard lib
- // LCOV_EXCL_BR_START 6:always return eFrameworkunifiedStatusOK
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = pObj->HeartBeatTimerInit(hThread))) {
- // LCOV_EXCL_BR_STOP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("pObj->HeartBeatTimerInit(hThread)"); // LCOV_EXCL_LINE 6:always return eFrameworkunifiedStatusOK
- DeletePObj(pObj); // LCOV_EXCL_LINE 6:always return eFrameworkunifiedStatusOK
- // LCOV_EXCL_BR_START 4: NSFW error case.
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedAttachParentCallbacksToDispatcher(hThread,
- HBThreadProtocolHandlers, static_cast<UI_32>(_countof(HBThreadProtocolHandlers))))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedAttachParentCallbacksToDispatcher(HBThreadProtocolHandlers)");
- DeleteHBTimer(pObj);
- DeletePObj(pObj);
- // LCOV_EXCL_STOP
- // LCOV_EXCL_BR_START 4: NSFW error case.
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedAttachParentCallbacksToDispatcher(hThread,
- HBThreadCommonHandlers, static_cast<UI_32>(_countof(HBThreadCommonHandlers))))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedAttachParentCallbacksToDispatcher(HBThreadCommonHandlers)");
- DetachParentCbThreadProtocols(hThread, HBThreadProtocolHandlers);
- DeleteHBTimer(pObj);
- DeletePObj(pObj);
- // LCOV_EXCL_STOP
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedAttachCallbacksToDispatcher(hThread, FRAMEWORKUNIFIED_ANY_SOURCE, HBThreadCommonHandlers, static_cast<UI_32>(_countof(HBThreadCommonHandlers)), NULL))) { // LCOV_EXCL_BR_LINE 4: NSFW error case. // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedAttachCallbacksToDispatcher("
- "FRAMEWORKUNIFIED_ANY_SOURCE, HBThreadCommonHandlers)");
- DetachParentCbThreadProtocols(hThread, HBThreadCommonHandlers);
- DetachParentCbThreadProtocols(hThread, HBThreadProtocolHandlers);
- DeleteHBTimer(pObj);
- DeletePObj(pObj);
- // LCOV_EXCL_STOP
- } else {
- l_eStatus = FrameworkunifiedSetThreadSpecificData(hThread, pObj); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 4: NSFW error case.
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedSetThreadSpecificData(hThread, pObj)");
- DetachCbProtocols(hThread, FRAMEWORKUNIFIED_ANY_SOURCE, HBThreadCommonHandlers,
- NULL);
- DetachParentCbThreadProtocols(hThread, HBThreadCommonHandlers);
- DetachParentCbThreadProtocols(hThread, HBThreadProtocolHandlers);
- DeleteHBTimer(pObj);
- DeletePObj(pObj);
- // LCOV_EXCL_STOP
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Successful");
- }
- }
- FRAMEWORKUNIFIEDLOG0(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************/
-/**
- @ingroup: SS_SystemManager
- @brief: HBThreadStop: function would be called at the time of stopping of the thread
- @note: .
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus
- */
-/*****************************************************************************/
-EFrameworkunifiedStatus HBThreadStop(HANDLE hThread) { // LCOV_EXCL_START 14: Resident process, not called by NSFW
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus;
-
- FRAMEWORKUNIFIEDLOG0(ZONE_FUNC, __FUNCTION__, "+");
-
- CHeartBeatThread * pObj = static_cast<CHeartBeatThread *>(FrameworkunifiedGetThreadSpecificData(hThread));
- if (NULL == pObj) {
- l_eStatus = eFrameworkunifiedStatusNullPointer;
- LOG_ERROR("FrameworkunifiedGetThreadSpecificData(hThread)");
- } else {
- // delete timers
- CALL_AND_LOG_STATUS_IF_ERRORED(pObj->HeartBeatTimersDelete());
- CALL_AND_LOG_STATUS_IF_ERRORED(pObj->HBPublishAvailabilityStatus(hThread, FALSE));
- DeletePObj(pObj);
- }
-
- FrameworkunifiedSetThreadSpecificData(hThread, NULL);
- CALL_AND_LOG_STATUS_IF_ERRORED(FrameworkunifiedDetachServiceFromDispatcher(hThread, FrameworkunifiedGetAppName(hThread)));
-
- FRAMEWORKUNIFIEDLOG0(ZONE_FUNC, __FUNCTION__, "-");
-
- return l_eStatus;
-}// LCOV_EXCL_STOP
diff --git a/systemservice/system_manager/server/src/heartbeat/ss_hb_service_protocol.cpp b/systemservice/system_manager/server/src/heartbeat/ss_hb_service_protocol.cpp
deleted file mode 100755
index 5fb4e00..0000000
--- a/systemservice/system_manager/server/src/heartbeat/ss_hb_service_protocol.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for the application heartbeat system.
-///
-///////////////////////////////////////////////////////////////////////////////
-#include <system_service/ss_heartbeat_service_protocol.h>
-#include <system_service/ss_system_manager_if.h>
-#include <system_service/ss_system_manager_if_local.h>
-#include <stdlib.h>
-#include <string.h>
-#include <native_service/frameworkunified_framework_if.h>
-#include <system_service/ss_services.h>
-#include <system_service/ss_templates.h>
-
-#include "ss_hb_thread.h"
-#include "ss_sm_systemmanagerlog.h"
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBOnTimerExpiry
- @note: .
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus
- *****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBOnTimerExpiry(HANDLE f_hThread) {
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- // check heart beat replies received from clients.
- l_eStatus = HBCheckHeartBeatResponses(f_hThread);
- LOG_STATUS_IF_ERRORED(l_eStatus, "HBCheckHeartBeatResponses()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- // send heart beat requests to clients
- l_eStatus = HBSendRequest(f_hThread);
- LOG_STATUS_IF_ERRORED(l_eStatus, "HBSendRequest()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBOnClientResponse
- @note: .
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus OK or Fail
- *****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBOnClientResponse(HANDLE f_hThread) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "+");
- l_eStatus = m_oSessionHandler.HBProcessClientResponse(f_hThread);
- LOG_STATUS_IF_ERRORED(l_eStatus, "m_oSessionHandler.HBProcessClientResponse(f_hThread)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBOnPeriodicStatusRequest
- @note: .
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus OK or Fail
- *****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBOnPeriodicStatusRequest(HANDLE f_hThread) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "+");
- // LCOV_EXCL_BR_START 4: NSFW error case.
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedSendParent(f_hThread, SS_HEARTBEAT_PERIODIC_RESP, 0, NULL))) {
- // LCOV_EXCL_BR_STOP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedSendParent(SS_HEARTBEAT_PERIODIC_RESP)"); // LCOV_EXCL_LINE 4: NSFW error case.
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__, "Successful");
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBOnPeriodicStatusRequest
- @note: .
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus OK or Fail
- *****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBOnAvailCheckRequest(HANDLE f_hThread) {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "+");
-
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- THbAvailCheck check;
- l_eStatus = m_oSessionHandler.HBAvailableCheck(check);
- SS_ASERT(l_eStatus == eFrameworkunifiedStatusOK); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- // LCOV_EXCL_BR_START 4: NSFW error case.
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedSendParent(f_hThread, SS_HEARTBEAT_AVAIL_CHECK_RESP, sizeof(check), &check))) {
- // LCOV_EXCL_BR_STOP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedSendParent(SS_HEARTBEAT_AVAIL_CHECK_RESP)"); // LCOV_EXCL_LINE 4: NSFW error case.
- }
-
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBOnRemoveModule
- @note: .
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus OK or Fail
- *****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBOnRemoveModule(HANDLE f_hThread) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- TSMRequestMessage tReqMsgData;
- // ReadMsg(): *
- // Check hApp ptr, msg size, msg reception, read msg if all ok. *
- // Report any errors found. *
- // *
- // LCOV_EXCL_BR_START 4: NSFW error case.
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg <TSMRequestMessage> (f_hThread, tReqMsgData))) {
- // LCOV_EXCL_BR_STOP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_LINE 4: NSFW error case.
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " %s is required to be Deleted from HeartBeat Monitor List", tReqMsgData.pstModuleName);
-
- // delete module entry from map
- l_eStatus = m_oSessionHandler.HBDeleteRegisteredClientEntry(f_hThread, tReqMsgData.pstModuleName);
- LOG_STATUS_IF_ERRORED(l_eStatus, "m_oSessionHandler.HBDeleteRegisteredProcessEntry()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBOnAppendModule
- @note: .
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus OK or Fail
- *****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBOnAppendModule(HANDLE f_hThread) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- TSMRequestMessage tReqMsgData;
- // ReadMsg(): *
- // Check hApp ptr, msg size, msg reception, read msg if all ok. *
- // Report any errors found. *
- // *
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < TSMRequestMessage > (f_hThread, tReqMsgData))) {
- LOG_ERROR("ReadMsg()");
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " %s is required to be Appended from HeartBeat Monitor List", tReqMsgData.pstModuleName);
-
- // append module entry from map
- SubscriberName l_Subscriber = tReqMsgData.pstModuleName;
- l_eStatus = m_oSessionHandler.HBEntrySubscriber(l_Subscriber); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- LOG_STATUS_IF_ERRORED(l_eStatus, "m_oSessionHandler.HBEntrySubscriber()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-// EOF
diff --git a/systemservice/system_manager/server/src/heartbeat/ss_hb_session.cpp b/systemservice/system_manager/server/src/heartbeat/ss_hb_session.cpp
deleted file mode 100755
index 8178e46..0000000
--- a/systemservice/system_manager/server/src/heartbeat/ss_hb_session.cpp
+++ /dev/null
@@ -1,415 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for the application heartbeat system.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/frameworkunified_service_protocol.h>
-#include <system_service/ss_heartbeat_service_protocol.h>
-#include <system_service/ss_services.h>
-#include <system_service/ss_sm_thread_names.h>
-#include <system_service/ss_templates.h>
-#include <iostream>
-#include <iomanip>
-#include <utility>
-#include <list>
-#include <string>
-
-#include "ss_sm_systemmanagerlog.h"
-#include "ss_hb_thread.h"
-#include "ss_hb_session.h"
-#include "ss_system_manager.h"
-
-using namespace std; // NOLINT
-
-CHeartBeatSessionHandler::CHeartBeatSessionHandler() {
-}
-
-CHeartBeatSessionHandler::~CHeartBeatSessionHandler() { // LCOV_EXCL_START 14: Resident process, not called by NSFW
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-}
-// LCOV_EXCL_STOP
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HbSessionInfo
- @note: HbSessionInfo constructor
- @param
- @return
- *****************************************************************************/
-CHeartBeatSessionHandler::HbSessionInfo::HbSessionInfo(SubscriberName f_Subscriber) {
- fRunning = FALSE;
- fHeartBeatRequestSent = FALSE;
- fHeartBeatResponseReceived = FALSE;
- HeartBeatRetryCount = 0;
- fHeartBeatTimedOut = FALSE;
- hSession = NULL;
- szName = f_Subscriber;
- fisAvailability = FALSE;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBEntrySubscriber
- @note:
- @param
- @return
- *****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatSessionHandler::HBEntrySubscriber(SubscriberName &f_Subscriber) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- // check if the subscriber is already in map
- HbSessionIter l_SessionInfoIterator = m_mapHbSessions.find(f_Subscriber);
-
- // the l_SessionInfoIterator is set to the end then the subscriber is not in the map
- if (m_mapHbSessions.end() == l_SessionInfoIterator) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Entry Subscriber : %s", f_Subscriber.c_str());
- HbSessionInfo l_NewHBClientSessionInfo(f_Subscriber.c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- pair<HbSessionIter, bool> ret;
- // insert new subscriber entry into the session map
- ret = m_mapHbSessions.insert(std::make_pair(f_Subscriber, l_NewHBClientSessionInfo));
- if (!ret.second) { // LCOV_EXCL_BR_LINE 6:l_NewHBClientSessionInfo must not be NULL.
- // LCOV_EXCL_START 6:l_NewHBClientSessionInfo must not be NULL.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusFail;
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "Subscriber '%s' is already in the map", f_Subscriber.c_str());
- }
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: ProcessHBClientResponse
- @note: Process the response received from client, update relevant structure data
- @param HANDLE
- @return EFrameworkunifiedStatus
- *****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatSessionHandler::HBProcessClientResponse(HANDLE f_hThread) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__, "+");
- BOOL l_availability = FALSE;
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg<BOOL>(f_hThread, l_availability))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
-
- // find the subscriber...
- HbSessionIter l_SessionInfoIterator = m_mapHbSessions.find(FrameworkunifiedGetMsgSrc(f_hThread));
-
- // the l_SessionInfoIterator is set to the end then the subscriber is not in the map
- if (m_mapHbSessions.end() != l_SessionInfoIterator) {
- l_SessionInfoIterator->second.HeartBeatRetryCount = 0;
- l_SessionInfoIterator->second.fHeartBeatResponseReceived = TRUE;
- l_SessionInfoIterator->second.fHeartBeatRequestSent = FALSE;
- l_SessionInfoIterator->second.fisAvailability = l_availability;
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__,
- "HeartBeat received from module: %s ", l_SessionInfoIterator->first.c_str());
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__,
- "Ignoring Heart Beat Response, Client: %s not found in the map!", FrameworkunifiedGetMsgSrc(f_hThread));
- }
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBPrintConnection
- @note: .Print registered client information
- @param VOID
- @return VOID
- *****************************************************************************/
-VOID CHeartBeatSessionHandler::HBPrintConnection() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // find the subscriber...
- HbSessionIter l_SessionInfoIterator = m_mapHbSessions.begin();
- for (; l_SessionInfoIterator != m_mapHbSessions.end(); l_SessionInfoIterator++) {
- FRAMEWORKUNIFIEDLOG(ZONE_DEBUG_DUMP, __FUNCTION__,
- "HeartBeat Service is Connected to: %s via a Session: Running: %s ",
- l_SessionInfoIterator->second.szName.data(),
- (l_SessionInfoIterator->second.fRunning ? "YES" : "NO"));
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBPrintStack
- @note: .Print registered client information
- @param VOID
- @return VOID
- *****************************************************************************/
-VOID CHeartBeatSessionHandler::HBPrintStack(UI_32 f_MaxHeartBeatRetryCount) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // find the subscriber...
- HbSessionIter l_SessionInfoIterator = m_mapHbSessions.begin();
- for (; l_SessionInfoIterator != m_mapHbSessions.end(); l_SessionInfoIterator++) {
- if (FALSE == l_SessionInfoIterator->second.fHeartBeatResponseReceived) {
- FRAMEWORKUNIFIEDLOG(ZONE_DEBUG_DUMP, __FUNCTION__,
- "HeartBeat Service is Connected to: %s via a Session: Running: %s ",
- l_SessionInfoIterator->second.szName.data(),
- (l_SessionInfoIterator->second.fRunning ? "YES" : "NO"));
- FRAMEWORKUNIFIEDLOG(ZONE_DEBUG_DUMP, __FUNCTION__,
- "Retry count (%d) within limit (%d), HeartBeatTimedout = %s",
- l_SessionInfoIterator->second.HeartBeatRetryCount,
- f_MaxHeartBeatRetryCount,
- (l_SessionInfoIterator->second.fHeartBeatTimedOut == TRUE ?
- "TRUE" : "FALSE"));
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBCheckResponses
- @note: Check if all clients have replied to heartbeat query and generate report
- @param THbReportData Report structure to be filled
- @param UI_32 Heartbeat max retry count
- @return eFrameworkunifiedStatusFail if one or more modules have timed out, eFrameworkunifiedStatusOK otherwise.
- *****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatSessionHandler::HBCheckResponses(
- THbReportData &f_tReportData, UI_32 f_MaxHeartBeatRetryCount,
- SI_32 f_HeartBeatIntervalRepeat, SI_32 f_ChkIndex) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "+");
-
- HbSessionIter l_SessionInfoIterator = m_mapHbSessions.begin();
- memset(&f_tReportData, 0, sizeof(THbReportData));
-
- int index = 0;
-
- while (l_SessionInfoIterator != m_mapHbSessions.end()) {
- if (f_ChkIndex == (index % f_HeartBeatIntervalRepeat)) {
- // check if report queue is full
- // LCOV_EXCL_BR_START 6: f_tReportData.nNumOfModules can't more than SS_MAX_NUM_MODULES
- if (SS_MAX_NUM_MODULES <= f_tReportData.nNumOfModules) {
- // LCOV_EXCL_BR_STOP
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: SS_MAX_NUM_MODULES '%d' <= f_tReportData.nNumOfModules '%d'. See ss_system_manager_if.h.",
- SS_MAX_NUM_MODULES, f_tReportData.nNumOfModules);
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusInvldBuf;
- }
-
-
- strncpy(f_tReportData.tModuleList[f_tReportData.nNumOfModules].ProcQueueName,
- l_SessionInfoIterator->first.c_str(),
- sizeof(f_tReportData.tModuleList[f_tReportData.nNumOfModules].ProcQueueName) - 1);
- f_tReportData.tModuleList[f_tReportData.nNumOfModules].HeartBeatRetryCount =
- l_SessionInfoIterator->second.HeartBeatRetryCount;
- f_tReportData.tModuleList[f_tReportData.nNumOfModules].ProcHBState = HB_STATUS_GOOD;
-
- if (TRUE == l_SessionInfoIterator->second.fHeartBeatResponseReceived) {
- l_SessionInfoIterator->second.fHeartBeatResponseReceived = FALSE;
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__,
- "[%s] Heart Beat Response Received !",
- l_SessionInfoIterator->second.szName.c_str());
- } else if (TRUE == l_SessionInfoIterator->second.fHeartBeatTimedOut) {
- f_tReportData.tModuleList[f_tReportData.nNumOfModules].ProcHBState = HB_STATUS_TIMEOUT;
- } else if ((TRUE == l_SessionInfoIterator->second.fHeartBeatRequestSent)
- && (FALSE == l_SessionInfoIterator->second.fHeartBeatTimedOut)) {
- l_SessionInfoIterator->second.HeartBeatRetryCount++;
-
- if (l_SessionInfoIterator->second.HeartBeatRetryCount > f_MaxHeartBeatRetryCount) {
- l_eStatus = eFrameworkunifiedStatusFail;
- l_SessionInfoIterator->second.fHeartBeatTimedOut = TRUE;
- l_SessionInfoIterator->second.HeartBeatRetryCount = 0;
-
- f_tReportData.tModuleList[f_tReportData.nNumOfModules].ProcHBState = HB_STATUS_TIMEOUT;
-
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Heart Beat Retry count of [%s] has crossed max limit (%d)."
- "Disabling sending HeartBeat query to it",
- l_SessionInfoIterator->second.szName.c_str(),
- f_MaxHeartBeatRetryCount);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: [%s] has missed a Heart Beat. Retry count (%d) is within max retry limit (%d)",
- l_SessionInfoIterator->second.szName.c_str(),
- l_SessionInfoIterator->second.HeartBeatRetryCount,
- f_MaxHeartBeatRetryCount);
- }
- }
- }
-
- f_tReportData.nNumOfModules++;
- ++l_SessionInfoIterator;
- index++;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBSendRequest
- @note: .Sent heart beat query to the registered clients
- @param void
- @return EFrameworkunifiedStatus
-******************************************************************************/
-EFrameworkunifiedStatus CHeartBeatSessionHandler::HBSendRequest(HANDLE f_hThread,
- SI_32 f_HeartBeatIntervalRepeat, SI_32 f_ChkIndex) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "+");
-
- // Get session iterator
- HbSessionIter l_SessionInfoIterator = m_mapHbSessions.begin();
-
- if (l_SessionInfoIterator == m_mapHbSessions.end()) {
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__, "No Client has opened session with HeartBeat");
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return l_eStatus;
- }
-
- int index = 0;
-
- while (l_SessionInfoIterator != m_mapHbSessions.end()) {
- if (f_ChkIndex == (index % f_HeartBeatIntervalRepeat)) {
- if (l_SessionInfoIterator->second.hSession == NULL) { // LCOV_EXCL_BR_LINE 200:hSession must not be NULL
- l_SessionInfoIterator->second.hSession = FrameworkunifiedMcOpenSender(f_hThread, l_SessionInfoIterator->first.c_str());
- if (NULL == l_SessionInfoIterator->second.hSession) { // LCOV_EXCL_BR_LINE 200:hSession must not be NULL
- // LCOV_EXCL_START 200: hSession must not be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedMcOpenSender(%s) returned NULL",
- l_SessionInfoIterator->first.c_str());
- // LCOV_EXCL_STOP
- } else {
- l_SessionInfoIterator->second.fRunning = TRUE;
- }
- }
-
- if ((NULL != l_SessionInfoIterator->second.hSession)
- && (FALSE == l_SessionInfoIterator->second.fHeartBeatTimedOut)) {
- if (eFrameworkunifiedStatusOK == (l_eStatus = FrameworkunifiedSendMsg(l_SessionInfoIterator->second.hSession, SS_HEARTBEAT_REQUEST, 0, NULL))) { // LCOV_EXCL_BR_LINE 5:NSFW's error // NOLINT(whitespace/line_length)
- /// TODO review if we are required to return failure if sending message to one process failed.
- l_SessionInfoIterator->second.fHeartBeatResponseReceived = FALSE;
- l_SessionInfoIterator->second.fHeartBeatRequestSent = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__,
- "HeartBeat Request sent to : %s", l_SessionInfoIterator->first.c_str());
- } else {
- // LCOV_EXCL_START 5:NSFW's error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedSendMsg(%s, SS_HEARTBEAT_REQUEST) errored: %d/'%s'",
- l_SessionInfoIterator->first.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__,
- " HeartBeat Request was not sent to '%s', timeout is '%s'",
- l_SessionInfoIterator->first.c_str(),
- (l_SessionInfoIterator->second.fHeartBeatTimedOut == TRUE ? "TRUE" : "FALSE"));
- }
- }
- ++l_SessionInfoIterator;
- index++;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBDeleteRegisteredClientEntry
- @note: .
- @param
- @return EFrameworkunifiedStatus
-******************************************************************************/
-EFrameworkunifiedStatus CHeartBeatSessionHandler::HBDeleteRegisteredClientEntry(HANDLE f_hThread, PSTR pQueueName) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- SubscriberName tQueuename(pQueueName);
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Looking for %s.", tQueuename.c_str());
-
- HbSessionIter l_SessionInfoIterator = m_mapHbSessions.find(tQueuename);
-
- if (m_mapHbSessions.end() != l_SessionInfoIterator) {
- // Close the session handle
- if (NULL != l_SessionInfoIterator->second.hSession) { // LCOV_EXCL_BR_LINE 200:hSession must not be NULL when tQueuename exists. // NOLINT(whitespace/line_length)
- // LCOV_EXCL_BR_START 4: NSFW error case.
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedMcClose(l_SessionInfoIterator->second.hSession))) {
- // LCOV_EXCL_BR_STOP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedMcClose()"); // LCOV_EXCL_LINE 4: NSFW error case.
- }
- l_SessionInfoIterator->second.hSession = NULL;
- }
- m_mapHbSessions.erase(tQueuename);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Deleting '%s' Successful ", tQueuename.c_str());
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "%s not found in Heart beat client list", tQueuename.c_str());
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBAvailableCheck
- @note: .
- @param
- @return EFrameworkunifiedStatus
-******************************************************************************/
-EFrameworkunifiedStatus CHeartBeatSessionHandler::HBAvailableCheck(THbAvailCheck &check) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- BOOL isOk = TRUE;
-
- std::list<std::string> ngList;
- for (HbSessionIter ite = m_mapHbSessions.begin(); ite != m_mapHbSessions.end(); ite++) {
- if (ite->second.fisAvailability == FALSE) {
- ngList.push_back(ite->first);
- // Notify Last Service as Representative
- snprintf(check.serviceName, SS_SM_HB_MAX_PROC_NAME_SIZE, "%s", ite->first.c_str());
- isOk = FALSE;
- }
- }
-
- if (isOk == FALSE) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "********* AVAILABILITY CHECK ERROR **********");
- fprintf(stderr, "HBOnAvailCheckRequest/********* AVAILABILITY CHECK ERROR **********\n"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "********* AVAILABILITY CHECK OK **********");
- fprintf(stderr, "HBOnAvailCheckRequest/********* AVAILABILITY CHECK OK **********\n"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- for (std::list<std::string>::iterator ite = ngList.begin(); ite != ngList.end(); ite++) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " %s", ite->c_str());
- fprintf(stderr, " %s\n", ite->c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- check.isOk = isOk;
-
- return l_eStatus;
-}
diff --git a/systemservice/system_manager/server/src/heartbeat/ss_hb_thread.cpp b/systemservice/system_manager/server/src/heartbeat/ss_hb_thread.cpp
deleted file mode 100755
index 19d124a..0000000
--- a/systemservice/system_manager/server/src/heartbeat/ss_hb_thread.cpp
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for the application heartbeat system.
-///
-///////////////////////////////////////////////////////////////////////////////
-#include <native_service/frameworkunified_application.h>
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/frameworkunified_service_protocol.h>
-#include <system_service/ss_heartbeat_notifications.h>
-#include <system_service/ss_heartbeat_service_protocol.h>
-#include <system_service/ss_power_service_notifications.h>
-#include <system_service/ss_services.h>
-#include <system_service/ss_templates.h>
-
-#include "ss_hb_thread.h"
-#include "ss_sm_systemmanagerlog.h"
-#include "ss_system_manager.h"
-
-/// Total Timers used by Heart Beat Thread
-/// This value is used for creating timers
-#define HBMaxTimers 1
-#define HBTimerInterval 1
-
-template<typename C, eFrameworkunifiedStatus (C::*M)(HANDLE)> EFrameworkunifiedStatus HBThreadCallback(HANDLE hThread) {
- EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusOK;
- C * pObj = static_cast<C *>(FrameworkunifiedGetThreadSpecificData(hThread));
- if (pObj) { // LCOV_EXCL_BR_LINE 4:pObj must not be NULL
- eStatus = (pObj->*M)(hThread);
- }
- return eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: CHeartBeatThread
- @note: Constructor
-*****************************************************************************/
-CHeartBeatThread::CHeartBeatThread(HANDLE f_hThread) :
- m_oTimerCtrl(HBMaxTimers)
- , m_HBTimerID(0)
- , m_NextChkIndex(0)
- , m_hThread(f_hThread) { // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- std::memset(&m_HBConfigParams, 0, sizeof(m_HBConfigParams));
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: ~CHeartBeatThread
- @note: Destructor
-*****************************************************************************/
-CHeartBeatThread::~CHeartBeatThread() { // LCOV_EXCL_START 14: Resident process, not called by NSFW
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-}
-// LCOV_EXCL_STOP
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBPublishAvailabilityStatus
- @note: .
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @param BOOL - The Availability Status to be published
- @return EFrameworkunifiedStatus
-*****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBPublishAvailabilityStatus(HANDLE hThread, BOOL f_bAvailabiltyStatus) {// LCOV_EXCL_START 14: Resident process, not called by NSFW
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // Send availability notification to users
- l_eStatus = FrameworkunifiedPublishServiceAvailability(hThread, f_bAvailabiltyStatus);
- char l_cBuf[100] = { 0 };
- snprintf(l_cBuf,
- sizeof(l_cBuf),
- "FrameworkunifiedPublishServiceAvailability(%s)",
- GetStr(f_bAvailabiltyStatus).c_str());
- LOG_STATUS(l_eStatus, l_cBuf); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}// LCOV_EXCL_STOP
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBOnStartThread
- @note: .
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus
-*****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBOnStartThread(HANDLE hThread) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- UI_32 l_DataLen = FrameworkunifiedGetMsgLength(hThread); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if ((sizeof(UI_32) + (SS_MAX_NUM_MODULES * SS_SM_HB_MAX_PROC_NAME_SIZE) + sizeof(m_HBConfigParams)) < l_DataLen) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: message buffer sizes invalid:received %d", l_DataLen);
- return eFrameworkunifiedStatusInvldParam;
- }
-
- CHAR l_Data[l_DataLen]; // NOLINT
- // LCOV_EXCL_BR_START 4: NSFW error case.
- if (eFrameworkunifiedStatusOK !=
- (l_eStatus = FrameworkunifiedGetMsgDataOfSize(hThread, (PVOID) & l_Data, static_cast<UI_32>(sizeof(l_Data)), eSMRRelease))) {
- // LCOV_EXCL_BR_STOP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedGetMsgDataOfSize() errored: 0x%x", l_eStatus);
- return l_eStatus;
- }
-
- CHAR* p_Data = &l_Data[0];
- UI_32 list_num;
- memcpy(&m_HBConfigParams, p_Data, sizeof(m_HBConfigParams));
- p_Data = p_Data + sizeof(m_HBConfigParams);
- memcpy(&list_num, p_Data, sizeof(list_num));
- p_Data = p_Data + sizeof((list_num));
-
- for (UI_32 i = 0; i < list_num; i++) {
- SubscriberName l_Subscriber = p_Data; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- // LCOV_EXCL_BR_START 4: NSFW error case.
- if (eFrameworkunifiedStatusOK != m_oSessionHandler.HBEntrySubscriber(l_Subscriber)) {
- // LCOV_EXCL_BR_STOP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: HBEntrySubscriber");
- }
- p_Data = p_Data + SS_SM_HB_MAX_PROC_NAME_SIZE;
- }
-
- if (0 == m_HBConfigParams.ApplicationHeartBeatIntervalInitial) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning: Heart beat disabled via configuration file interval "
- "parameter set to 0.");
- } else if (0 != m_HBTimerID) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning: Heart Beat Timer ID '%d' already created, ignoring "
- "repeated Heart Beat Start command.", m_HBTimerID);
- } else {
- // LCOV_EXCL_BR_START 4: NSFW error case.
- if (eFrameworkunifiedStatusOK !=
- (l_eStatus = FrameworkunifiedRegisterServiceAvailabilityNotification(hThread, NTFY_HeartBeatAvailability))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedRegisterServiceAvailabilityNotification(" NTFY_HeartBeatAvailability ")");
- // LCOV_EXCL_STOP
- }
- else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Service availability %s Registered SOURCE : %s",
- NTFY_HeartBeatAvailability,
- FrameworkunifiedGetAppName(hThread));
-
- // Publish Heart Beat Availability
- // LCOV_EXCL_BR_START 4: NSFW error case.
- if (eFrameworkunifiedStatusOK != (l_eStatus = HBPublishAvailabilityStatus(hThread, TRUE))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("HBPublishAvailabilityStatus(TRUE)");
- // LCOV_EXCL_STOP
- }
- }
- // Create Heart Beat app monitor
- m_HBTimerID = m_oTimerCtrl.CreateTimer(HBThreadCallback<CHeartBeatThread, &CHeartBeatThread::HBOnTimerExpiry>); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (0 == m_HBTimerID) { // LCOV_EXCL_BR_LINE 8: m_HBTimerID can't be 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: Heart Beat Timer ID creation failed.");
- // return eFrameworkunifiedStatusFail;
- } else {
- // Start Heart Beat app monitor
- m_oTimerCtrl.StartTimer(m_HBTimerID,
- m_HBConfigParams.ApplicationHeartBeatIntervalInitial,
- 0,
- HBTimerInterval,
- 0); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Initial Heart Beat Timer created for %d seconds interval",
- m_HBConfigParams.ApplicationHeartBeatIntervalInitial);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Repetitive Heart Beat Timer created for %d seconds interval",
- m_HBConfigParams.ApplicationHeartBeatIntervalRepeat);
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBOnStopThread
- @note: .
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus
-*****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBOnStopThread(HANDLE hThread) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- if (0 != m_HBTimerID) {
- // Stop HeartBeat timer
- m_oTimerCtrl.StopTimer(m_HBTimerID);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Timer '%d' stopped", m_HBTimerID);
- }
- else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: 'm_HBTimerID' is '0'; unable to stop timer");
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HeartBeatTimerInit
- @note:
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus
-*****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HeartBeatTimerInit(HANDLE hThread) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_oTimerCtrl.Initialize(hThread);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HeartBeatTimersDelete
- @note:
- @param void
- @return EFrameworkunifiedStatus
-*****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HeartBeatTimersDelete() {// LCOV_EXCL_START 14: Resident process, not called by NSFW
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (0 == m_HBTimerID) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: 'm_HBTimerID' is '0'; unable to delete timer");
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- } else {
- // Delete Heart Beat timer
- UI_32 l_TimerID = m_oTimerCtrl.DeleteTimer(m_HBTimerID);
- if (0 == l_TimerID) {
- l_eStatus = eFrameworkunifiedStatusDbRecNotFound;
- LOG_ERROR("m_oTimerCtrl.DeleteTimer(m_HBTimerID)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Successful");
- }
- m_HBTimerID = 0;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}// LCOV_EXCL_STOP
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBCheckHeartBeatResponses
- @note: This function checks heartbeat responses and generates a summary
- report for System Manager if one or more modules have failed to
- reply within the configured maximum number of heartbeat retries.
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus
-*****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBCheckHeartBeatResponses(HANDLE hThread) {
- EFrameworkunifiedStatus l_eStatus;
- THbReportData f_tReportData;
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "+");
-
- l_eStatus = m_oSessionHandler.HBCheckResponses(f_tReportData,
- m_HBConfigParams.MaxHeartBeatRetryCount,
- m_HBConfigParams.ApplicationHeartBeatIntervalRepeat,
- m_NextChkIndex);
- if (l_eStatus == eFrameworkunifiedStatusFail) { // Send a heartbeat report ONLY if a heartbeat failure is detected.
- // send report to system manager
- l_eStatus = FrameworkunifiedSendParent(hThread,
- SS_HEARTBEAT_ERROR_DETECTED,
- sizeof(f_tReportData),
- &f_tReportData);
- LOG_STATUS_IF_ERRORED(l_eStatus, "FrameworkunifiedSendParent(SS_HEARTBEAT_ERROR_DETECTED)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- FRAMEWORKUNIFIEDLOG0(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBSendRequest
- @note: .
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus
-*****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBSendRequest(HANDLE hThread) {
- EFrameworkunifiedStatus l_eStatus;
-
- CALL_AND_LOG_STATUS_IF_ERRORED( // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- m_oSessionHandler.HBSendRequest(hThread, m_HBConfigParams.ApplicationHeartBeatIntervalRepeat, m_NextChkIndex)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- m_NextChkIndex++;
- if (m_HBConfigParams.ApplicationHeartBeatIntervalRepeat <= m_NextChkIndex) {
- m_NextChkIndex = 0;
- }
-
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBOnPrintConnections
- @note: .Prints all active sessions connected to HeartBeat
- @param HANDLE hThread
- @return EFrameworkunifiedStatus
-*****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBOnPrintConnections(HANDLE hThread) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_oSessionHandler.HBPrintConnection();
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-/*****************************************************************************
- @ingroup: SS_SystemManager
- @brief: HBOnPrintStack
- @note: . Prints all sessions connected to HeartBeat
- @param HANDLE - Handle to message queue of HeartBeat Service.
- @return EFrameworkunifiedStatus
-*****************************************************************************/
-EFrameworkunifiedStatus CHeartBeatThread::HBOnPrintStack(HANDLE hThread) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_oSessionHandler.HBPrintStack(m_HBConfigParams.MaxHeartBeatRetryCount);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
diff --git a/systemservice/system_manager/server/src/processlauncher/ProcessLauncher.cpp b/systemservice/system_manager/server/src/processlauncher/ProcessLauncher.cpp
deleted file mode 100755
index 6b709fe..0000000
--- a/systemservice/system_manager/server/src/processlauncher/ProcessLauncher.cpp
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for process launching and termination.
-///
-///////////////////////////////////////////////////////////////////////////////
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/frameworkunified_multithreading.h>
-#include <system_service/ss_templates.h>
-#include <system_service/ss_string_maps.h>
-#include <native_service/ns_plogger_if.h>
-#include <string>
-
-#include "ProcessLauncher.h"
-#include "ss_sm_process_launcher_protocol.h"
-#include "ss_sm_process_launcher.h"
-#include "ss_sm_systemmanagerlog.h"
-#include "ss_sm_signals.h"
-
-CProcessLauncher::CProcessLauncher() { // LCOV_EXCL_START 8: dead code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
-}
-// LCOV_EXCL_STOP
-
-CProcessLauncher::CProcessLauncher(void *) {
-}
-
-CProcessLauncher::~CProcessLauncher() { // LCOV_EXCL_START 14: resident process end
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- m_mapOfProcesses.clear();
-}
-// LCOV_EXCL_STOP
-
-EFrameworkunifiedStatus CProcessLauncher::PLTerminateModule(
- HANDLE hThread,
- T_ProcessLauncherTerminationResp *f_pTerminateRespData) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- T_ProcessLauncherTerminationReq l_ModuleTerminateReq;
-
- // LCOV_EXCL_BR_START 4:NSFW error case
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = ReadMsg < T_ProcessLauncherTerminationReq > (hThread, l_ModuleTerminateReq, eSMRRetain))) {
- // LCOV_EXCL_BR_STOP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_LINE 4:NSFW error case
- } else {
- // get pointer to the process object launched earlier
- Process * l_pProcessPtr = m_mapOfProcesses[l_ModuleTerminateReq.path]; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- // Confirm that the process pointer for the module exists in the map
- if (NULL != l_pProcessPtr) { // LCOV_EXCL_BR_LINE 200: l_pProcessPtr must not be null
- // check if process still exists
- if (l_pProcessPtr->DoesProcessExist()) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Terminating %s, PID: %d.", l_ModuleTerminateReq.path, l_pProcessPtr->GetProcessId());
- // kill unresponsive process
- l_pProcessPtr->KillProcess(SS_SM_ABORT_SIGNAL);
-
- if (NULL != f_pTerminateRespData) { // LCOV_EXCL_BR_LINE 200: f_pTerminateRespData must not be null
- std::strcpy(f_pTerminateRespData->name, // NOLINT
- l_ModuleTerminateReq.name);
- std::strcpy(f_pTerminateRespData->path, // NOLINT
- l_ModuleTerminateReq.path);
- std::strcpy(f_pTerminateRespData->args, // NOLINT
- l_ModuleTerminateReq.args);
- f_pTerminateRespData->moduleIterator =
- l_ModuleTerminateReq.moduleIterator;
- f_pTerminateRespData->groupIterator =
- l_ModuleTerminateReq.groupIterator;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Info: %s has already terminated.", l_ModuleTerminateReq.path);
-
- l_eStatus = eFrameworkunifiedStatusServNotFound;
- }
- // remove process entry
- m_mapOfProcesses.erase(l_ModuleTerminateReq.path);
- // delete process object
- delete l_pProcessPtr; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- } else { // LCOV_EXCL_BR_LINE 200: l_pProcessPtr will not be null
- // LCOV_EXCL_START 200: l_pProcessPtr will not be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusDbRecNotFound;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: %s not in m_mapOfProcesses", l_ModuleTerminateReq.path);
- // LCOV_EXCL_STOP
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CProcessLauncher::PLOnCmdTerminateModule(HANDLE hThread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- T_ProcessLauncherTerminationResp l_TerminateRespData;
- if (eFrameworkunifiedStatusOK == (l_eStatus = PLTerminateModule(hThread, &l_TerminateRespData))) {
- // reply to System Manager about successful module termination
- l_eStatus = FrameworkunifiedSendParent(hThread,
- ePLThrdCmd_TERMINATE_MODULE_RESP,
- sizeof(l_TerminateRespData),
- &l_TerminateRespData);
- LOG_STATUS(l_eStatus, "FrameworkunifiedSendParent(ePLThrdCmd_TERMINATE_MODULE_RESP"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else if (eFrameworkunifiedStatusServNotFound == l_eStatus) { // Already terminated
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Info. Module already terminated.");
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: PLTerminateModule(%s) errored: %d/'%s'",
- l_TerminateRespData.name, l_eStatus, GetStr(l_eStatus).c_str());
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CProcessLauncher::PLOnCmdModuleStatus(HANDLE hThread) {
- return eFrameworkunifiedStatusOK;
-}
-
-VOID buildArgList(StringList& arg_list, PSTR args) { // NOLINT
- arg_list.clear();
- char * pch = NULL;
- pch = std::strtok(args, " ");
- while (pch != NULL) {
- arg_list.push_back(pch);
- pch = std::strtok(NULL, " ");
- }
-}
-
-EFrameworkunifiedStatus CProcessLauncher::PLLaunchModule(HANDLE hThread, T_ProcessLaunchResp &f_LaunchRespData) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- Process *l_pProcessPtr = NULL;
- T_ProcessLauncherLaunchReq l_ModuleLaunchReq;
-
- // LCOV_EXCL_BR_START 4:NSFW error case
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = ReadMsg < T_ProcessLauncherLaunchReq > (hThread, l_ModuleLaunchReq))) {
- // LCOV_EXCL_BR_STOP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_LINE 4:NSFW error case
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Sending to Launcher name: %s, path: %s, args: %s, lmsk: %s, "
- "prio: %d ", l_ModuleLaunchReq.name,
- l_ModuleLaunchReq.path, l_ModuleLaunchReq.args,
- l_ModuleLaunchReq.logging_mask, l_ModuleLaunchReq.priority);
-
- StringList args;
- buildArgList(args, l_ModuleLaunchReq.args); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- int log_mask_str_len = static_cast<int>(std::strlen(l_ModuleLaunchReq.logging_mask));
- if (log_mask_str_len > 0) {
- // Create mask argument to be passed to application.
- // The argument must be of the form "-m 0x00000000,0x00000000,...", assuming n 32-bit mask values.
- // The storage size of the argument must include one byte for the NULL termination character.
- args.push_back("-m");
- args.push_back(l_ModuleLaunchReq.logging_mask);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " %s args: logging_mask: %s",
- l_ModuleLaunchReq.path, l_ModuleLaunchReq.logging_mask);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_PROC_LAUNCH_INFO, __FUNCTION__,
- " '%s' has no logging_mask specified. Using compile time defaults.",
- l_ModuleLaunchReq.path);
- }
-
- std::strcpy(f_LaunchRespData.name, l_ModuleLaunchReq.name); // NOLINT Module queue name
- std::strcpy(f_LaunchRespData.path, l_ModuleLaunchReq.path); // NOLINT Module path and file name
- std::strcpy(f_LaunchRespData.args, l_ModuleLaunchReq.args); // NOLINT
- f_LaunchRespData.moduleIterator = l_ModuleLaunchReq.moduleIterator;
- f_LaunchRespData.groupIterator = l_ModuleLaunchReq.groupIterator;
-
- // Process exists? If not, re-launch the process and create a new map entry.
- l_pProcessPtr = m_mapOfProcesses[l_ModuleLaunchReq.path]; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (NULL == l_pProcessPtr) { // LCOV_EXCL_BR_LINE 200: l_pProcessPtr must not be null
- FRAMEWORKUNIFIEDLOG(ZONE_PROC_LAUNCH_INFO, __FUNCTION__,
- " '%s' is not in the module map. Creating new process.",
- l_ModuleLaunchReq.name);
-
- SS_String sPathAndFileName = l_ModuleLaunchReq.path; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_pProcessPtr = new (std::nothrow) Process(l_ModuleLaunchReq.cpu_assign); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (NULL == l_pProcessPtr) { // LCOV_EXCL_BR_LINE 11::new operation failed
- // LCOV_EXCL_START 11::new operation failed
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: Process() returned NULL");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusThreadNotExist;
- // LCOV_EXCL_STOP 11::new operation failed
- }
-
- const char* uname =
- ('\0' == f_LaunchRespData.moduleIterator->unix_user_name[0]) ?
- NULL : &f_LaunchRespData.moduleIterator->unix_user_name[0]; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_pProcessPtr->CreateProcess(sPathAndFileName, "", l_ModuleLaunchReq.priority, args, uname); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_PROC_LAUNCH_INFO, __FUNCTION__,
- " Process Name: %s Process File: %s Pid: %d Is Alive: %s\n",
- l_pProcessPtr->GetProcessName().data(),
- l_pProcessPtr->GetExecutableFileName(),
- l_pProcessPtr->GetProcessId(),
- (l_pProcessPtr->DoesProcessExist() == FALSE) ? "No" : "Yes");
-
- // Add the process in the map
- m_mapOfProcesses[l_ModuleLaunchReq.path] = l_pProcessPtr; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- // launch response
- f_LaunchRespData.pid = l_pProcessPtr->GetProcessId();
- f_LaunchRespData.priority = l_pProcessPtr->GetPriority(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_eStatus = eFrameworkunifiedStatusOK;
- } else {
- // LCOV_EXCL_START 200: l_pProcessPtr must not be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_PROC_LAUNCH_INFO, __FUNCTION__,
- " %s already in Process Map", l_ModuleLaunchReq.name);
- // the module is already in the list. Send the response to system manager with PID 0x7FFFFFFF
- f_LaunchRespData.pid = 0x7FFFFFFF;
- f_LaunchRespData.priority = l_ModuleLaunchReq.priority;
- l_eStatus = eFrameworkunifiedStatusOK;
- // LCOV_EXCL_STOP
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CProcessLauncher::PLOnCmdLaunchModule(HANDLE hThread) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- l_eStatus = PLCmdLaunchModule(hThread, ePLThrdCmd_LAUNCH_MODULE_RESP, "ePLThrdCmd_LAUNCH_MODULE_RESP"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- LOG_STATUS_IF_ERRORED(l_eStatus, " PLCmdLaunchModule(ePLThrdCmd_LAUNCH_MODULE_RESP)"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CProcessLauncher::PLOnCmdRelaunchModule(HANDLE hThread) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // Terminate unresponsive module
- CALL_AND_LOG_STATUS(PLTerminateModule(hThread)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- l_eStatus = PLCmdLaunchModule(hThread, ePLThrdCmd_RELAUNCH_MODULE_RESP, "ePLThrdCmd_RELAUNCH_MODULE_RESP"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- LOG_STATUS_IF_ERRORED(l_eStatus, "PLCmdLaunchModule(ePLThrdCmd_RELAUNCH_MODULE_RESP)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CProcessLauncher::PLCmdLaunchModule(HANDLE hThread, UI_32 f_protocol_ID, std::string f_protocol_str) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- T_ProcessLaunchResp l_LaunchRespData;
- l_LaunchRespData.pid = 0;
- if (eFrameworkunifiedStatusOK != (l_eStatus = PLLaunchModule(hThread, l_LaunchRespData))) { // LCOV_EXCL_BR_LINE 4:NSFW error case
- // LCOV_EXCL_START 4:NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: PLLaunchModule(%s, %s) errored: %d/'%s'",
- l_LaunchRespData.name, f_protocol_str.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP 4:NSFW error case
- } else {
- l_eStatus = FrameworkunifiedSendParent(hThread, f_protocol_ID,
- sizeof(T_ProcessLaunchResp), &l_LaunchRespData);
-
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 4:NSFW error case
- // LCOV_EXCL_START 4:NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedSendParent( %s, %s ) errored: %d/'%s'",
- l_LaunchRespData.name, f_protocol_str.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP 4:NSFW
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CProcessLauncher::PLOnCmdStop(HANDLE hThread) { // LCOV_EXCL_START 14: resident process end
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- return eFrameworkunifiedStatusOK;
-}
-// LCOV_EXCL_STOP
-
-EFrameworkunifiedStatus CProcessLauncher::PLOnCmdStart(HANDLE hThread) {
- return eFrameworkunifiedStatusOK;
-}
-
-EFrameworkunifiedStatus CProcessLauncher::PLOnCmdHeartbeatStatusReq(HANDLE hThread) {
- FrameworkunifiedSendParent(hThread, ePLThrdCmd_THREAD_STATUS_RESP, 0, NULL);
- return eFrameworkunifiedStatusOK;
-}
-
diff --git a/systemservice/system_manager/server/src/processlauncher/ProcessLauncher_if.cpp b/systemservice/system_manager/server/src/processlauncher/ProcessLauncher_if.cpp
deleted file mode 100755
index 3d9b2e9..0000000
--- a/systemservice/system_manager/server/src/processlauncher/ProcessLauncher_if.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for process launching and termination.
-///
-///////////////////////////////////////////////////////////////////////////////
-#include <native_service/frameworkunified_framework_if.h>
-
-#include "ProcessLauncher.h"
-#include "ss_sm_process_launcher_protocol.h"
-#include "ss_sm_systemmanagerlog.h"
-
-template<typename C, eFrameworkunifiedStatus (C::*M)(HANDLE)> EFrameworkunifiedStatus ProcessLauncherCallback(HANDLE hThread) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- C * pObj = static_cast<C *>(FrameworkunifiedGetThreadSpecificData(hThread));
-
- if (pObj) { // LCOV_EXCL_BR_LINE 5:pObj must not be NULL
- l_eStatus = (pObj->*M)(hThread);
- }
-
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus ProcessLauncherOnStart(HANDLE hThread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- CProcessLauncher * pObj = new (std::nothrow) CProcessLauncher(NULL); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (pObj) { // LCOV_EXCL_BR_LINE 5:new error
- // LCOV_EXCL_BR_START 200:l_eStatus always return eFrameworkunifiedStatusOK
- if (eFrameworkunifiedStatusOK != (l_eStatus = pObj->PLOnCmdStart(hThread))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 200:l_eStatus always return eFrameworkunifiedStatusOK
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: pObj->PLOnCmdStart(hThread) errored: %d/'%s'",
- l_eStatus, GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- } else {
- FrameworkunifiedSetThreadSpecificData(hThread, pObj);
-
- FrameworkunifiedProtocolCallbackHandler aParentHandlers[] = { {
- ePLThrdCmd_LAUNCH_MODULE_REQST, ProcessLauncherCallback<
- CProcessLauncher,
- &CProcessLauncher::PLOnCmdLaunchModule> }, {
- ePLThrdCmd_TERMINATE_MODULE_REQST, ProcessLauncherCallback<
- CProcessLauncher,
- &CProcessLauncher::PLOnCmdTerminateModule> }, {
- ePLThrdCmd_RELAUNCH_MODULE_REQST, ProcessLauncherCallback<
- CProcessLauncher,
- &CProcessLauncher::PLOnCmdRelaunchModule> }, {
- ePLThrdCmd_MODULE_STATUS_REQST, ProcessLauncherCallback<
- CProcessLauncher,
- &CProcessLauncher::PLOnCmdModuleStatus> }, {
- ePLThrdCmd_THREAD_STATUS_REQST, ProcessLauncherCallback<
- CProcessLauncher,
- &CProcessLauncher::PLOnCmdHeartbeatStatusReq> } }; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- // LCOV_EXCL_BR_START 4:NSFW error case
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = FrameworkunifiedAttachParentCallbacksToDispatcher(hThread, aParentHandlers,
- static_cast<UI_32>(_countof(aParentHandlers))))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 4:NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedAttachParentCallbacksToDispatcher() errored: %d/'%s'",
- l_eStatus, GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- } else {
- // Add other Attaches here!!!
- }
- }
- } else { // LCOV_EXCL_BR_LINE 5::new operation failed
- // LCOV_EXCL_START 5:new error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: new CProcessLauncher( NULL ) returned NULL");
- l_eStatus = eFrameworkunifiedStatusNullPointer;
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-// LCOV_EXCL_START 200:Thread which registered in init_process_launcher() is never stoppped.
-EFrameworkunifiedStatus ProcessLauncherOnStop(HANDLE hThread) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- CProcessLauncher * pObj = static_cast<CProcessLauncher *>(FrameworkunifiedGetThreadSpecificData(hThread));
-
- if (pObj) {
- if (eFrameworkunifiedStatusOK != (l_eStatus = pObj->PLOnCmdStop(hThread))) {
- LOG_ERROR("PLOnCmdStop()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- delete pObj;
- pObj = NULL;
- }
-
- FrameworkunifiedSetThreadSpecificData(hThread, NULL);
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedDetachServiceFromDispatcher(hThread, FrameworkunifiedGetAppName(hThread)))) {
- LOG_ERROR("FrameworkunifiedDetachServiceFromDispatcher()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-// LCOV_EXCL_STOP
-
diff --git a/systemservice/system_manager/server/src/ss_sm_config.cpp b/systemservice/system_manager/server/src/ss_sm_config.cpp
deleted file mode 100755
index 2a8d11e..0000000
--- a/systemservice/system_manager/server/src/ss_sm_config.cpp
+++ /dev/null
@@ -1,1528 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager configuration.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#include <boost/algorithm/string.hpp>
-
-
-#include <other_service/PosixBasedOS001ClockCycleApi.h>
-#include <other_service/ultoa.h>
-#include <native_service/frameworkunified_framework_if.h>
-#include <system_service/ss_string_maps.h>
-#include <system_service/ss_templates.h>
-#include <native_service/ns_config_parser_if.h>
-#include <errno.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <cctype>
-#include <string>
-#include <iomanip>
-#include <fstream>
-#include <iostream>
-#include <sstream>
-#include <algorithm>
-#include <functional>
-#include <list>
-#include <vector>
-#include <utility>
-
-#include "ss_sm_config.h"
-#include "ss_sm_systemmanagerlog.h"
-#include "ss_sm_launch_configuration.h"
-#include "system_launcher_cfg_format.h"
-#include "ss_sm_default_paths.h"
-
-using namespace std; // NOLINT
-
-// Constants for Heart Beat configuration data
-const UI_32 HBApplicationHeartBeatIntervalInitial = 40u; // Units of seconds. 0 = HB Disabled.
-const UI_32 HBApplicationHeartBeatIntervalRepeat = 5u; // Units of seconds. 0 = HB Disabled.
-const UI_32 HBMaxHeartBeatRetryCount = 3u;
-
-// Constants for Crash Detector configuration data
-const BOOL CDEnabled = TRUE;
-
-// Constants for system low memory configuration data
-
-const UI_32 SLMTimerValue = 5000; // msec
-const UI_32 SLMThresholdValue = (1024 * 512); // bytes
-const UI_32 SLMRetryCount = 6;
-const UI_32 SLMSystemmanagerLogIntervalMs = 30000;
-
-// Constants for Module connect time and Stat Resp Time
-
-const UI_32 ModuleConnectionNumTimesToCheck = 5;
-const UI_32 ModuleConnectionTimeOutSec = 5; // sec
-const UI_32 ModuleStartRespTimeOutSec = 120; // sec
-
-// Constants for Critical Apps Max wait timeout
-
-const UI_32 CriticalAppsMaxShutdownTimeFastSleepSec = 2; // sec
-const UI_32 CriticalAppsMaxShutdownTimeNormalResetSec = 15; // sec
-
-// Constants for User Mode data structure type
-const BOOL isBoolean = TRUE;
-
-const CHAR SMConfigDataHeader[] = "SystemManager";
-const CHAR HBConfigDataHeader[] = "HeartBeat";
-const CHAR CDConfigDataHeader[] = "CrashDetector";
-const CHAR SLMConfigDataHeader[] = "SysLowMemory";
-const CHAR UserModeConfigDataHeader[] = "UserMode";
-
-struct CfgLaunchParams {
- CfgLaunchParams() :
- group_id(0),
- group_launch_wait(0),
- group_wait_for_trigger(0),
- priority(0),
- critical(0),
- retry_cnt(0),
- is_start_required(0),
- shutdown_critical(0),
- shutdown_wait_time(0),
- fast_shutdown_wait_time(0),
- cpu_assign(0x0),
- is_agl_unit(TRUE),
- disable_agl_resethistory(FALSE),
- disable_nonagl_resethistory(FALSE) {
- std::memset(&group_name[0], 0, sizeof(group_name));
- std::memset(&name[0], 0, sizeof(name));
- std::memset(&binary_name[0], 0, sizeof(binary_name));
- std::memset(&arguments[0], 0, sizeof(arguments));
- std::memset(&logging_msk_str[0], 0, sizeof(logging_msk_str));
- std::memset(&restart[0], 0, sizeof(restart));
- std::memset(&unix_user_name[0], 0, sizeof(unix_user_name));
- std::memset(&env_value_condition[0], 0, sizeof(env_value_condition));
- }
-
- CHAR group_name[100];
- UI_32 group_id;
- UI_32 group_launch_wait;
- BOOL group_wait_for_trigger;
- CHAR name[100];
- CHAR binary_name[MAX_PATH_LENGTH];
- UI_32 priority;
- BOOL critical;
- UI_32 retry_cnt;
- CHAR arguments[512];
- CHAR logging_msk_str[50];
- CHAR restart[32];
- BOOL is_start_required;
- BOOL shutdown_critical;
- UI_32 shutdown_wait_time;
- UI_32 fast_shutdown_wait_time;
- TUserNameBuffer unix_user_name; // TODO(username): Stuff.: Does Posix define a useful
- // constant representing max length of user id?
- CHAR env_value_condition[256];
- int cpu_assign;
-
- public:
- BOOL IsAGLUnit(void) const { return is_agl_unit; }
- BOOL IsAGLResetHistoryDisable(void) const { return disable_agl_resethistory; }
- BOOL IsNonAGLResetHistoryDisable(void) const { return disable_nonagl_resethistory; }
- void SetAGLUnit(BOOL f_is_agl_unit) { is_agl_unit = f_is_agl_unit; }
- void SetAGLResetHistoryDisable(BOOL f_disable_agl_resethistory) {
- disable_agl_resethistory = f_disable_agl_resethistory;
- }
- void SetNonAGLResetHisoryDisable(BOOL f_disable_nonagl_resethistory) {
- disable_nonagl_resethistory = f_disable_nonagl_resethistory;
- }
-
- private:
- BOOL is_agl_unit;
- BOOL disable_agl_resethistory;
- BOOL disable_nonagl_resethistory;
-};
-
-namespace ss_sm_cfg {
-class cfg_args {
- public:
- enum { // typedef enum _tokens
- group_name,
- group_id,
- group_launch_wait,
- group_wait_for_trigger,
- name,
- binary_name,
- priority,
- critical,
- retry_cnt,
- arguments,
- logging_msk,
- restart,
- is_start_required,
- shutdown_critical,
- shutdown_wait_time,
- fast_shutdown_wait_time,
- unix_user_name,
- is_agl_unit,
- disable_agl_resethistory,
- disable_nonagl_resethistory,
- env_value_condition,
- cpu_assign,
- END
- };
-};
-}; // namespace ss_sm_cfg
-
-static void set_grp_member_info(const LaunchInfo& launch_info, ModuleLaunchList& module_lst); // NOLINT
-static void load_parameters_order_cfg(
- GroupLaunchMap& groups_map, LaunchOrderedVector& f_OrderList, SS_String& f_launchOrderName, SS_String& f_launchCfgFn); // NOLINT
-
-/*******************************************************************************
- * CTimeSpan class *
- * *
- * Set Initial time, reset Final and Delta to zero, return time *
- * */
-UI_64 CTimeSpan::Begin() {
- initial = GetTimeMilliseconds();
- final = 0;
- delta = 0;
- return initial;
-} // End of UI_64 CTimeSpan::Begin()
-
-/*
- * Set Final time, calculate Delta time, return time
- */
-UI_64 CTimeSpan::End() {
- final = GetTimeMilliseconds();
- delta = (final > initial) ? (final - initial) : 0; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- return final;
-} // End of UI_64 CTimeSpan::End()
-
-UI_64 CTimeSpan::GetInitial(void) {
- return initial;
-}
-
-UI_64 CTimeSpan::GetFinal() {
- return final;
-}
-
-UI_64 CTimeSpan::GetDelta() {
- return delta;
-}
-
-UI_64 CTimeSpan::GetTimeMilliseconds() {
- UI_64 l_totalmsec = 0;
- struct timespec timeSpec;
-
- if (0 != clock_gettime(CLOCK_MONOTONIC, &timeSpec)) {
- SS_ASERT_ERRNO(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- l_totalmsec = (timeSpec.tv_sec * 1000ULL)
- + (timeSpec.tv_nsec / 1000000);
- }
-
- return l_totalmsec;
-}
-
-/* *
- * End of CTimeSpan class *
- ******************************************************************************/
-
-ModuleLaunchParams::ModuleLaunchParams():
- name("")
- , path("")
- , arguments("")
- , restart("")
- , configuration_priority(0)
- , cpu_assign(0x0)
- , previous_priority(0)
- , current_priority(0)
- , critical(FALSE)
- , retry_cnt(0)
- , logging_msk_str("")
- , is_start_required(FALSE)
- , shutdown_critical(FALSE)
- , shutdown_wait_time(0)
- , fast_shutdown_wait_time(0)
- , pid(0)
- , hsession(NULL)
- , relaunch_count(0)
- , relaunch_status(NotRelaunched)
- , group_id(0xFFFF)
- , m_serviceAvailability(FALSE)
- , m_startReason()
- , m_stopReason()
- , m_ModuleDebugDumpState(MODULE_DEBUG_DUMP_STATE_NOT_REQUESTED)
- , is_agl_unit(TRUE)
- , disable_agl_resethistory(FALSE)
- , disable_nonagl_resethistory(FALSE) { // LCOV_EXCL_BR_START 11:Gcov constraints (because exception-handling routes are automatically generated)
- SetModuleState(MODULE_STATE_INVALID, FALSE);
- //
- // Module State strings
- m_ModuleStateStrMap[MODULE_STATE_INVALID] = "INVALID";
- m_ModuleStateStrMap[MODULE_STATE_SKIPPED] = "SKIPPED";
- m_ModuleStateStrMap[MODULE_STATE_LAUNCHING] = "LAUNCHING";
- m_ModuleStateStrMap[MODULE_STATE_LAUNCHED] = "LAUNCHED";
- m_ModuleStateStrMap[MODULE_STATE_LAUNCH_FAILED] = "LAUNCH_FAIL";
- m_ModuleStateStrMap[MODULE_STATE_CONNECTED] = "CONNECTED";
- m_ModuleStateStrMap[MODULE_STATE_START_SENT] = "START_SENT";
- m_ModuleStateStrMap[MODULE_STATE_START_FAILED] = "START_FAIL";
- m_ModuleStateStrMap[MODULE_STATE_STARTED] = "STARTED";
- m_ModuleStateStrMap[MODULE_STATE_STOP_FAILED] = "STOP_FAIL";
- m_ModuleStateStrMap[MODULE_STATE_STOP_SENT] = "STOP_SENT";
- m_ModuleStateStrMap[MODULE_STATE_STOPPED] = "STOPPED";
- m_ModuleStateStrMap[MODULE_STATE_START_PRE_SENT] = "PRE_START_SENT";
- m_ModuleStateStrMap[MODULE_STATE_START_PRE_FAILED] = "PRE_START_FAIL";
- m_ModuleStateStrMap[MODULE_STATE_STARTED_PRE] = "PRE_STARTED";
- m_ModuleStateStrMap[MODULE_STATE_STOP_PRE_SENT] = "PRE_STOP_SENT";
- m_ModuleStateStrMap[MODULE_STATE_STOP_PRE_FAILED] = "PRE_STOP_FAIL";
- m_ModuleStateStrMap[MODULE_STATE_STOPPED_PRE] = "PRE_STOPPED";
- m_ModuleStateStrMap[MODULE_STATE_START_BACKGROUND_SENT] = "BACKGROUND_START_SENT";
- m_ModuleStateStrMap[MODULE_STATE_START_BACKGROUND_FAILED] = "BACKGROUND_START_FAIL";
- m_ModuleStateStrMap[MODULE_STATE_STARTED_BACKGROUND] = "BACKGROUND_STARTED";
- m_ModuleStateStrMap[MODULE_STATE_STOP_BACKGROUND_SENT] = "BACKGROUND_STOP_SENT";
- m_ModuleStateStrMap[MODULE_STATE_STOP_BACKGROUND_FAILED] = "BACKGROUND_STOP_FAIL";
- m_ModuleStateStrMap[MODULE_STATE_STOPPED_BACKGROUND] = "BACKGROUND_STOPPED";
- // LCOV_EXCL_BR_STOP
-
- m_startReason.SetReason(NotStarted);
- m_stopReason.SetReason(NotStopped);
-
- MAP_ENTRY(m_ModuleDebugDumpStateStrMap, MODULE_DEBUG_DUMP_STATE_NOT_REQUESTED); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- MAP_ENTRY(m_ModuleDebugDumpStateStrMap, MODULE_DEBUG_DUMP_STATE_REQUEST_SENT); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- MAP_ENTRY(m_ModuleDebugDumpStateStrMap, MODULE_DEBUG_DUMP_STATE_RESPONSE_RECEIVED); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- std::memset(&unix_user_name[0], 0, sizeof(unix_user_name));
-} // End of ModuleLaunchParams::ModuleLaunchParams() :
-
-ModuleLaunchParams::~ModuleLaunchParams() {
-} // End of ModuleLaunchParams::~ModuleLaunchParams() :
-
-SMModuleState ModuleLaunchParams::GetModuleState(void) {
- return m_moduleState;
-} // End of SMModuleState ModuleLaunchParams::GetModuleState(void)
-
-BOOL ModuleLaunchParams::IsModuleState(SMModuleState f_moduleState) {
- return m_moduleState == f_moduleState;
-} // End of BOOL ModuleLaunchParams::IsModuleState(SMModuleState f_moduleState )
-
-// IsModuleConnected
-// Determine if a module is in a state capable of receiving messages from System Manager.
-BOOL ModuleLaunchParams::IsModuleConnected() const {
- BOOL l_isModuleConnected = FALSE;
-
- switch (m_moduleState) {
- case MODULE_STATE_CONNECTED:
- case MODULE_STATE_START_SENT:
- case MODULE_STATE_START_FAILED:
- case MODULE_STATE_STARTED:
- case MODULE_STATE_STOP_SENT:
- case MODULE_STATE_STOP_FAILED:
- case MODULE_STATE_STOPPED:
- case MODULE_STATE_START_PRE_SENT:
- case MODULE_STATE_START_PRE_FAILED:
- case MODULE_STATE_STARTED_PRE:
- case MODULE_STATE_STOP_PRE_SENT:
- case MODULE_STATE_STOP_PRE_FAILED:
- case MODULE_STATE_STOPPED_PRE:
- case MODULE_STATE_START_BACKGROUND_SENT:
- case MODULE_STATE_START_BACKGROUND_FAILED:
- case MODULE_STATE_STARTED_BACKGROUND:
- case MODULE_STATE_STOP_BACKGROUND_SENT:
- case MODULE_STATE_STOP_BACKGROUND_FAILED:
- case MODULE_STATE_STOPPED_BACKGROUND:
- l_isModuleConnected = TRUE;
- break;
-
- default:
- l_isModuleConnected = FALSE;
- break;
- }
-
- return (l_isModuleConnected);
-} // End of BOOL ModuleLaunchParams::IsModuleConnected(void)
-
-VOID ModuleLaunchParams::SetModuleState(SMModuleState f_moduleState, BOOL f_bLog) {
- m_moduleState = f_moduleState;
-
- switch (m_moduleState) { // Because the module status cannot be changed from the external API
- case MODULE_STATE_INVALID:
- case MODULE_STATE_SKIPPED:
- case MODULE_STATE_LAUNCH_FAILED:
- case MODULE_STATE_LAUNCHING:
- case MODULE_STATE_LAUNCHED:
- case MODULE_STATE_CONNECTED:
- break;
- case MODULE_STATE_START_SENT:
- m_startReason.Begin();
- break;
- case MODULE_STATE_START_FAILED:
- m_startReason.End();
- m_startReason.SetReason(StartedByModuleStartFail);
- break;
- case MODULE_STATE_STARTED:
- m_startReason.End();
- m_startReason.SetReason(StartedByModuleStartComplete);
- break;
-
- case MODULE_STATE_STOP_SENT:
- m_stopReason.Begin();
- break;
-
- case MODULE_STATE_STOP_FAILED:
- m_stopReason.End();
- m_stopReason.SetReason(StoppedByModuleStopFail);
- break;
- case MODULE_STATE_STOPPED:
- m_stopReason.End();
- m_stopReason.SetReason(StoppedByModuleStopComplete);
- break;
-
- case MODULE_STATE_START_PRE_SENT:
- m_startReason.Begin();
- break;
- case MODULE_STATE_START_PRE_FAILED:
- m_startReason.End();
- m_startReason.SetReason(StartedByModulePreStartFail);
- break;
- case MODULE_STATE_STARTED_PRE:
- m_startReason.End();
- m_startReason.SetReason(StartedByModulePreStartComplete);
- break;
- case MODULE_STATE_STOP_PRE_SENT:
- m_stopReason.Begin();
- break;
- case MODULE_STATE_STOP_PRE_FAILED:
- m_stopReason.End();
- m_stopReason.SetReason(StoppedByModulePreStopFail);
- break;
- case MODULE_STATE_STOPPED_PRE:
- m_stopReason.End();
- m_stopReason.SetReason(StoppedByModulePreStopComplete);
- break;
-
- case MODULE_STATE_START_BACKGROUND_SENT:
- m_startReason.Begin();
- break;
- case MODULE_STATE_START_BACKGROUND_FAILED:
- m_startReason.End();
- m_startReason.SetReason(StartedByModuleBackgroundStartFail);
- break;
- case MODULE_STATE_STARTED_BACKGROUND:
- m_startReason.End();
- m_startReason.SetReason(StartedByModuleBackgroundStartComplete);
- break;
- case MODULE_STATE_STOP_BACKGROUND_SENT:
- m_stopReason.Begin();
- break;
- case MODULE_STATE_STOP_BACKGROUND_FAILED:
- m_stopReason.End();
- m_stopReason.SetReason(StoppedByModuleBackgroundStopFail);
- break;
- case MODULE_STATE_STOPPED_BACKGROUND:
- m_stopReason.End();
- m_stopReason.SetReason(StoppedByModuleBackgroundStopComplete);
- break;
-
- // default: Don't code a 'default' here - let the compiler
- // issue a warning ( set via -Wall or -Wswitch ) when the set of
- // enumerations changes - then the maintainer will
- // automagically know to update this switch statement.
- }
-
- if (f_bLog) {
- char buf[255];
- char *p = buf;
- strcpy(p, m_ModuleStateStrMap[m_moduleState].c_str()); // NOLINT
- p += m_ModuleStateStrMap[m_moduleState].size();
- strcpy(p, ":"); // NOLINT
- p += sizeof(":") - 1;
- strcpy(p, name.c_str()); // NOLINT
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, buf);
- }
-} // End of VOID ModuleLaunchParams::SetModuleState(SMModuleState f_moduleState )
-
-std::string ModuleLaunchParams::ModuleStateStr(void) {
- return m_ModuleStateStrMap[m_moduleState];
-} // End of std::string ModuleLaunchParams::ModuleStateStr(SMModuleState f_moduleState )
-
-SMModuleDebugDumpState ModuleLaunchParams::GetModuleDebugDumpState(void) { // LCOV_EXCL_START 6: Because the condition cannot be set // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- return m_ModuleDebugDumpState;
-} // End of SMModuleDebugDumpState ModuleLaunchParams::GetModuleDebugDumpState(void)
-// LCOV_EXCL_STOP
-
-std::string ModuleLaunchParams::GetModuleDebugDumpStateStr(void) {
- return m_ModuleDebugDumpStateStrMap[m_ModuleDebugDumpState];
-} // End of std::string ModuleLaunchParams::GetModuleDebugDumpStateStr()
-
-VOID ModuleLaunchParams::SetModuleDebugDumpState(
- SMModuleDebugDumpState f_moduleDebugDumpState, BOOL f_bLog) {
- m_ModuleDebugDumpState = f_moduleDebugDumpState;
-
- if (f_bLog) { // LCOV_EXCL_BR_LINE 200:f_bLog must be TRUE
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " %s set for %s",
- GetModuleDebugDumpStateStr().c_str(), name.c_str());
- }
-} // End of VOID ModuleLaunchParams::SetModuleDebugDumpState(SMModuleDebugDumpState f_moduleDebugDumpState )
-
-EFrameworkunifiedStatus ModuleLaunchParams::SendMsgAndUpdateState(
- const UI_32 f_iCmd, const T_SS_SM_START_DataStructType* const f_startData) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- char l_cBuf[500] = " Error: char l_cBuf[] not built";
- T_SS_SM_START_DataStructType l_startData;
- SMModuleState l_SendSuccess = MODULE_STATE_START_SENT;
- SMModuleState l_SendFailed = MODULE_STATE_START_FAILED;
-
- memcpy(&l_startData, f_startData, sizeof(T_SS_SM_START_DataStructType));
-
- switch (relaunch_status) { // LCOV_EXCL_BR_LINE 6: Because all conditions cannot be satisfied from the external API
- case NotRelaunched:
- // Setting startup information at the first startup
- break;
- case RelaunchSafe: // LCOV_EXCL_START 6: Because all conditions cannot be satisfied from the external API
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_startData.resetStatus = e_SS_SM_RESET_STATUS_NONE;
- break;
- case RelaunchErr:
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_startData.resetStatus = e_SS_SM_RESET_STATUS_NG;
- break;
- default:
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0);
- break;
- // LCOV_EXCL_STOP
- }
-
- switch (f_iCmd) {
- case SS_SM_PRE_START:
- l_SendSuccess = MODULE_STATE_START_PRE_SENT;
- l_SendFailed = MODULE_STATE_START_PRE_FAILED;
- break;
- case SS_SM_PRE_STOP:
- l_SendSuccess = MODULE_STATE_STOP_PRE_SENT;
- l_SendFailed = MODULE_STATE_STOP_PRE_FAILED;
- break;
- case SS_SM_BACKGROUND_START:
- l_SendSuccess = MODULE_STATE_START_BACKGROUND_SENT;
- l_SendFailed = MODULE_STATE_START_BACKGROUND_FAILED;
- break;
- case SS_SM_BACKGROUND_STOP:
- l_SendSuccess = MODULE_STATE_STOP_BACKGROUND_SENT;
- l_SendFailed = MODULE_STATE_STOP_BACKGROUND_FAILED;
- break;
- case SS_SM_START:
- default:
- l_SendSuccess = MODULE_STATE_START_SENT;
- l_SendFailed = MODULE_STATE_START_FAILED;
- break;
- }
-
- const EFrameworkunifiedStatus l_eStatus = FrameworkunifiedSendMsg(hsession, f_iCmd,
- sizeof(T_SS_SM_START_DataStructType),
- static_cast<PCVOID>(&l_startData));
-
- // LCOV_EXCL_START 6: As no TRUE is returned
- if (IS_ZONE_SET(ZONE_ERR) || IS_ZONE_SET(ZONE_INFO)) {
-
- snprintf(l_cBuf, sizeof(l_cBuf), "FrameworkunifiedSendMsg(%s, system_manager protocol message, %d/%s)",
- name.c_str(), l_startData.startupReason,
- GetStr(l_startData.startupReason).c_str());
- }
- // LCOV_EXCL_STOP 6:As no TRUE is returned
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 4:NSFW's error
- // LCOV_EXCL_START 4:NSFW's error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR(l_cBuf); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- SetModuleState(l_SendFailed);
- // LCOV_EXCL_STOP
- } else {
- LOG_SUCCESS(l_cBuf); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- SetModuleState(l_SendSuccess);
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-// End of EFrameworkunifiedStatus ModuleLaunchParams::SendMsgAndUpdateState(T_SS_SM_START_DataStructType const * f_startData)
-
-EFrameworkunifiedStatus ModuleLaunchParams::SendMsgAndUpdateState(
- T_SS_SM_STOP_DataStructType const* f_stopData) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- char l_cBuf[500] = " Error: char l_cBuf[] not built";
- EFrameworkunifiedStatus l_eStatus = FrameworkunifiedSendMsg(hsession, SS_SM_STOP,
- sizeof(T_SS_SM_STOP_DataStructType),
- static_cast<PCVOID>(f_stopData));
-
- if (IS_ZONE_SET(ZONE_ERR) || IS_ZONE_SET(ZONE_INFO)) { // LCOV_EXCL_BR_LINE 200:alwasy true
- snprintf(l_cBuf, sizeof(l_cBuf), "FrameworkunifiedSendMsg(%s, SS_SM_STOP, %d/%s, "
- "Last User Mode: %s)", name.c_str(),
- f_stopData->shutdownTrigger,
- GetStr(f_stopData->shutdownTrigger).c_str(),
- GetStr(f_stopData->lastUserMode).c_str());
- }
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 4:NSFW's error
- // LCOV_EXCL_START 4:NSFW's error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR(l_cBuf); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- SetModuleState(MODULE_STATE_STOP_FAILED);
- // LCOV_EXCL_STOP
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " %s successful", l_cBuf);
- SetModuleState(MODULE_STATE_STOP_SENT);
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-// End of EFrameworkunifiedStatus ModuleLaunchParams::SendMsgAndUpdateState(T_SS_SM_STOP_DataStructType const * f_stopData)
-
-EFrameworkunifiedStatus ModuleLaunchParams::GetPriority(UI_32& f_Priority) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- struct sched_param cur_sch_params;
- errno = 0;
- f_Priority = 0xDEAD;
-
- if (0 == pid) { // LCOV_EXCL_BR_LINE 200: pid can not be 0
- // LCOV_EXCL_START 200: pid can not be 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- LOG_ERROR("0 == pid"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else if (-1 >= sched_getparam(pid, &cur_sch_params)) { // LCOV_EXCL_BR_LINE 5: system function failed
- // LCOV_EXCL_START 5: system function failed
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusFault;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: 'sched_getparam( pid %d, &cur_sch_params )' returned -1, "
- "strerr() is '%s'", pid, strerror(errno));
- // LCOV_EXCL_STOP
- } else {
- l_eStatus = eFrameworkunifiedStatusOK;
- f_Priority = cur_sch_params.sched_priority;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus ModuleLaunchParams::GetPriority (UI_32 & f_Priority )
-
-EFrameworkunifiedStatus ModuleLaunchParams::SetPriority(UI_32 f_Priority) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- errno = 0;
-
- if (99 < f_Priority) { // LCOV_EXCL_BR_LINE 200: priority can not greater than 99
- // LCOV_EXCL_START 200: priority can not greater than 99
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: Invalid 'f_Priority' %d/0x%X",
- f_Priority, f_Priority);
- // LCOV_EXCL_STOP
- } else if (0 == pid) { // LCOV_EXCL_BR_LINE 200: pid can not be 0
- // LCOV_EXCL_START 200: pid can not be 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- LOG_ERROR("0 == pid"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else {
- int rc;
- struct sched_param l_schedParam = { };
- l_schedParam.sched_priority = f_Priority;
-
- if (f_Priority == 0) { // LCOV_EXCL_BR_LINE 200: f_Priority can not be 0
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- rc = sched_setscheduler(pid, SCHED_OTHER, &l_schedParam); // LCOV_EXCL_LINE 200: f_Priority can not be 0
- } else {
- rc = sched_setscheduler(pid, SCHED_FIFO, &l_schedParam);
- }
- SS_ASERT_ERRNO(0 == rc); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- if (rc == 0) {
- previous_priority = current_priority;
- current_priority = f_Priority;
- l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " setprio( %s, pid %d, 'previous_priority' %d -> %d ) successful",
- name.c_str(), pid, previous_priority, f_Priority);
- } else if (rc == -1) { // LCOV_EXCL_BR_LINE 5: system function failed
- // LCOV_EXCL_START 5: system function failed
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusFault;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " setprio( %s, pid %d, 'current_priority' %d -> %d ) returned '-1', strerr() is '%s'",
- name.c_str(), pid, current_priority, f_Priority,
- strerror(errno));
- // LCOV_EXCL_STOP
- } else { // LCOV_EXCL_BR_LINE 5: can not be other value
- // LCOV_EXCL_START 5: can not be other value
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusFault;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " setprio( %s, pid %d, 'current_priority' %d -> %d ) returned '%d'; "
- "'rc' is neither original priority nor '-1': 'errno' is '%d', strerr() is '%s'",
- name.c_str(), pid, current_priority, f_Priority, rc,
- errno, strerror(errno));
- // LCOV_EXCL_STOP
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus ModuleLaunchParams::SetPriority( UI_32 f_Priority )
-
-SysMgrConfiguration::SysMgrConfiguration():
-l_pReaderCfg(NULL) {
-}
-
-SysMgrConfiguration::~SysMgrConfiguration() {
-}
-
-static BOOL is_satisfy_env_launch_cond(CHAR *env_cond) { // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- BOOL l_isSatisfy = FALSE;
- BOOL l_isReverse = FALSE;
- CHAR *l_pString = NULL;
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "env_cond [%s]", env_cond);
-
- if (NULL != (l_pString = strstr(env_cond, "!="))) {
- l_isReverse = TRUE;
- } else if (NULL == (l_pString = strstr(env_cond, "=="))) {
- SS_ASERT(0);
- }
-
- if (NULL != l_pString) {
- CHAR *l_pEnv = env_cond;
- CHAR *l_pValue = l_pString + 2;
- *l_pString = '\0';
-
- CHAR *l_pEnvVariable = NULL;
-
- if (NULL != (l_pEnvVariable = std::getenv(l_pEnv))) {
- l_isSatisfy = (0 == strcmp(l_pValue, l_pEnvVariable)) ? TRUE : FALSE;
- if (l_isReverse) {
- l_isSatisfy = !l_isSatisfy;
- }
- }
- }
-
- return l_isSatisfy;
-}
-
-static void set_grp_member_info(const LaunchInfo& launch_info, ModuleLaunchList& module_lst) { // NOLINT
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- // Note: the
- ModuleLaunchParams grp_member_info;
- grp_member_info.name = launch_info.name;
- grp_member_info.path = launch_info.binary_name;
- grp_member_info.arguments = launch_info.arguments;
- grp_member_info.restart = launch_info.restart;
- grp_member_info.configuration_priority = launch_info.priority;
- grp_member_info.retry_cnt = launch_info.retry_cnt;
- grp_member_info.logging_msk_str = launch_info.logging_msk_str;
- grp_member_info.critical = launch_info.critical;
- grp_member_info.shutdown_critical = launch_info.shutdown_critical;
- grp_member_info.shutdown_wait_time = launch_info.shutdown_wait_time;
- grp_member_info.group_id = launch_info.group_id;
- grp_member_info.is_start_required = launch_info.is_start_required;
- grp_member_info.fast_shutdown_wait_time = launch_info.fast_shutdown_wait_time;
- grp_member_info.SetAGLUnit(launch_info.IsAGLUnit());
- grp_member_info.SetAGLResetHistoryDisable(launch_info.IsAGLResetHistoryDisable());
- grp_member_info.SetNonAGLResetHisoryDisable(launch_info.IsNonAGLResetHistoryDisable());
-
- module_lst.push_back(grp_member_info);
-}
-// LCOV_EXCL_STOP
-
-static ModuleLaunchListIter set_cfg_grp_member_info(
- const CfgLaunchParams& launch_info, ModuleLaunchList& module_lst) { // NOLINT
- ModuleLaunchParams grp_member_info;
- ModuleLaunchListIter moduleLaunchListIter;
-
- grp_member_info.name = launch_info.name;
- grp_member_info.path = launch_info.binary_name;
- grp_member_info.arguments = ( // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- std::strcmp(launch_info.arguments, "NULL") == 0 ? "" : launch_info.arguments);
- grp_member_info.restart = ( // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- std::strcmp(launch_info.restart, "NULL") == 0 ? "" : launch_info.restart);
- grp_member_info.configuration_priority = launch_info.priority;
- grp_member_info.cpu_assign = launch_info.cpu_assign;
- grp_member_info.retry_cnt = launch_info.retry_cnt;
- grp_member_info.logging_msk_str = ( // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- std::strcmp(launch_info.logging_msk_str, "NULL") == 0 ? "" : launch_info.logging_msk_str);
-
- grp_member_info.critical = launch_info.critical;
- grp_member_info.shutdown_critical = launch_info.shutdown_critical;
- grp_member_info.shutdown_wait_time = launch_info.shutdown_wait_time;
- grp_member_info.group_id = launch_info.group_id;
- grp_member_info.is_start_required = launch_info.is_start_required;
- grp_member_info.fast_shutdown_wait_time = launch_info.fast_shutdown_wait_time;
- grp_member_info.SetAGLUnit(launch_info.IsAGLUnit());
- grp_member_info.SetAGLResetHistoryDisable(launch_info.IsAGLResetHistoryDisable());
- grp_member_info.SetNonAGLResetHisoryDisable(launch_info.IsNonAGLResetHistoryDisable());
-
- strncpy(&grp_member_info.unix_user_name[0], &launch_info.unix_user_name[0],
- sizeof(TUserNameBuffer));
-
- moduleLaunchListIter = module_lst.insert(module_lst.end(), grp_member_info);
- return (moduleLaunchListIter);
-}
-
-static void load_parameters_order_cfg(GroupLaunchMap& groups_map, // NOLINT
- LaunchOrderedVector& f_OrderList, SS_String& f_launchOrderName, // NOLINT
- SS_String& f_launchCfgFn) { // NOLINT
- SS_String l_OrderCfgFn = f_launchCfgFn;
- string::size_type pos = l_OrderCfgFn.find(".cfg");
-
- if (pos == string::npos) { // LCOV_EXCL_BR_LINE 5:C error
- // LCOV_EXCL_START 5:C error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "invalid file name:%s",
- f_launchCfgFn.c_str());
- return;
- // LCOV_EXCL_STOP
- }
-
- l_OrderCfgFn.replace(pos, strlen(".order.cfg"), ".order.cfg");
- CNSConfigReader *l_pReaderOrderCfg = new CNSConfigReader(l_OrderCfgFn);
-
- if (l_pReaderOrderCfg != NULL) { // LCOV_EXCL_BR_LINE 5:new error
- CHAR key[128];
- std::sprintf(key, "%s.order", f_launchOrderName.c_str()); // NOLINT
- SS_String value = l_pReaderOrderCfg->GetString(key);
- std::vector<std::string> strList;
- if (value.empty()) { // LCOV_EXCL_BR_LINE 200:cannot be empty
- goto ERROR;
- }
-// LCOV_EXCL_START 6: Because an initialization condition is set at SystemManager startup and the branching condition cannot be satisfied
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- boost::split(strList, value, boost::is_any_of("|"));
- for (UI_32 i = 0; i < strList.size(); i++) {
- char* endptr = NULL;
- f_OrderList.push_back(
- static_cast<UI_32>(strtoul(strList[i].c_str(), &endptr, 10)));
- if (*endptr != '\0') {
- // Discard boot order if invalid string is detected
- f_OrderList.clear();
- goto ERROR;
- }
- }
- std::sprintf(key, "%s.owlist", f_launchOrderName.c_str()); // NOLINT
- SS_String ow_list_value = l_pReaderOrderCfg->GetString(key);
- std::vector<std::string> owList;
-
- if (!ow_list_value.empty()) {
- boost::split(owList, ow_list_value, boost::is_any_of("|"));
- for (UI_32 i = 0; i < owList.size(); i++) {
- std::sprintf(key, "%s.%s", f_launchOrderName.c_str(), // NOLINT
- owList[i].c_str());
- SS_String grop_ow_time = l_pReaderOrderCfg->GetString(key);
- if (owList[i].compare(0, 4, "oww_") == 0) {
- char* endptr = NULL;
- SS_String group_name = owList[i].substr(strlen("oww_"));
- UI_32 group_launch_wait = static_cast<UI_32>(strtoul(
- grop_ow_time.c_str(), &endptr, 10));
- if (*endptr != '\0') {
- continue;
- }
- GroupLaunchMapIter grp_iter = groups_map.begin();
- while (grp_iter != groups_map.end()) {
- if (group_name == grp_iter->second.name) {
- grp_iter->second.grp_launch_wait = group_launch_wait;
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__,
- "grp_launch_wait %s=%d", group_name.c_str(),
- group_launch_wait);
- break;
- }
- grp_iter++;
- }
- }
- }
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "ConfigReader(%s) is NULL",
- l_OrderCfgFn.c_str());
- }
-// LCOV_EXCL_STOP
- ERROR: if (l_pReaderOrderCfg != NULL) { // LCOV_EXCL_BR_LINE 200:cannot be null
- delete l_pReaderOrderCfg; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
- return;
-}
-
-// Given a string, splits it up on the seperator character
-// SubStringIterator( "a|b|| c |", '|' )
-// -> On each subsequent invocation of next() would return "a", "b", "", " c ", ""
-class SubStringIterator {
- typedef std::string::const_iterator SCIter;
-
- public:
- SubStringIterator(const std::string& s, char c) :
- m_position(s.begin()), m_end(s.end()), m_seperator(c), m_done(false) {
- }
-
- std::string next() {
- SCIter begin = m_position;
- while (m_position != m_end &&
- *m_position != m_seperator) {
- ++m_position;
- }
-
- const std::string ret(begin, m_position);
- if (m_position == m_end) {
- m_done = true;
- } else {
- ++m_position;
- }
-
- return ret;
- }
- bool done() const {
- return m_done;
- }
-
- private:
- SCIter m_position;
- const SCIter m_end;
- const char m_seperator;
- bool m_done;
-};
-
-template<class Iter>
-static
-Iter skipPrecedingWS(Iter begin, Iter end) { // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- return std::find_if(begin, end,
- std::not1(std::ptr_fun((int (*)(int))std::isspace)));
-}
-
-// remove only preceding and trailing whitespace, but leave intermediate whitespace characters alone
-std::string strip(const std::string& str) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- std::string::const_iterator skipTo = skipPrecedingWS(str.begin(), str.end());
- if (skipTo == str.end()) { // if string consists of ONLY whitespace
- return std::string("");
- } else {
- return std::string(skipTo, skipPrecedingWS(str.rbegin(), str.rend()).base());
- }
-}
-// LCOV_EXCL_STOP
-
-BOOL SysMgrConfiguration::LoadParametersCfg(GroupLaunchMap& groups_map,
- ProcessNameMap& f_processNameMap, LaunchOrderedVector& f_OrderList,
- SS_String& f_launchOrderName, SS_String& f_launchCfgFn) {
- BOOL rtn_code = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- l_pReaderCfg = new (std::nothrow) CNSConfigReader(f_launchCfgFn); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (NULL != l_pReaderCfg) { // LCOV_EXCL_BR_LINE 5:new error
- UI_32 launch_idx = 1;
- CHAR key[128];
- std::sprintf(key, "ModulesLaunchConfig.Launch%d", launch_idx); // NOLINT
- SS_String value = l_pReaderCfg->GetString(key);
-
- if (value.empty()) { // LCOV_EXCL_BR_LINE 200:cannot be empty
-// LCOV_EXCL_START 6: For setting the initialization conditions at SystemManager startup
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: l_pReaderCfg->GetString(%s) returned empty-string; "
- "is launch configuration file mis-configured ?",
- key);
- rtn_code = FALSE;
-// LCOV_EXCL_STOP
- } else {
- const char* nfsenv = getenv("AGL_NFS");
- bool isNfs = (nfsenv && strcmp(nfsenv, "y") == 0) ? true : false; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- std::list<std::string> capFiles;
- if (isNfs) {
-// LCOV_EXCL_START 6: Because an initialization condition is set at SystemManager startup and the branching condition cannot be satisfied
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- const std::string capPath("/usr/debug/share/target/cap.lst");
- std::ifstream fin(capPath.c_str());
- std::string line;
- while (fin && std::getline(fin, line)) {
- std::list<std::string> strList;
- boost::split(strList, line, boost::is_any_of("|"));
- if (!strList.empty()) {
- if (strList.front()[0] == '/') { // Only character strings beginning with '/' are considered PATH
- capFiles.push_back(strList.front().c_str());
- }
- }
- }
- }
-// LCOV_EXCL_STOP
- while (!value.empty()) {
- CHAR critical[10] = { };
- CHAR is_start_required[10] = { };
- CHAR shutdown_critical[10] = { };
- CHAR group_wait_for_trigger[10] = { };
- CHAR is_agl_unit[10] = { };
- CHAR disable_agl_resethistory[10] = { };
- CHAR disable_nonagl_resethistory[10] = { };
- CfgLaunchParams cfg_data;
-
- int at = static_cast<int>(ss_sm_cfg::cfg_args::group_name);
-
- SubStringIterator iter(value, '|');
- while (!iter.done() && ss_sm_cfg::cfg_args::END != at) {
- const std::string data_ = iter.next();
- if (!data_.empty()) {
- const char* data = data_.c_str();
- switch (at) {
- case ss_sm_cfg::cfg_args::group_name:
- snprintf(cfg_data.group_name,
- sizeof(cfg_data.group_name), "%s", data);
- break;
- case ss_sm_cfg::cfg_args::group_id:
- cfg_data.group_id = static_cast<UI_32>(strtoul(data, NULL, 10));
- break;
- case ss_sm_cfg::cfg_args::group_launch_wait:
- cfg_data.group_launch_wait =
- static_cast<UI_32>(strtoul(data, NULL, 10));
- break;
- case ss_sm_cfg::cfg_args::group_wait_for_trigger:
- snprintf(group_wait_for_trigger,
- sizeof(group_wait_for_trigger), "%s", data);
- break;
- case ss_sm_cfg::cfg_args::name:
- snprintf(cfg_data.name, sizeof(cfg_data.name), "%s", data);
- break;
- case ss_sm_cfg::cfg_args::binary_name:
- snprintf(cfg_data.binary_name,
- sizeof(cfg_data.binary_name), "%s", data);
- break;
- case ss_sm_cfg::cfg_args::priority:
- cfg_data.priority = static_cast<UI_32>(strtoul(data, NULL, 10));
- break;
- case ss_sm_cfg::cfg_args::critical:
- snprintf(critical, sizeof(critical), "%s", data);
- break;
- case ss_sm_cfg::cfg_args::retry_cnt:
- cfg_data.retry_cnt = static_cast<UI_32>(strtoul(data, NULL, 10));
- break;
- case ss_sm_cfg::cfg_args::arguments:
- strncpy(cfg_data.arguments, data,
- sizeof(cfg_data.arguments) - 1);
- break;
- case ss_sm_cfg::cfg_args::logging_msk:
- snprintf(cfg_data.logging_msk_str,
- sizeof(cfg_data.logging_msk_str), "%s", data);
- break;
- case ss_sm_cfg::cfg_args::restart:
- snprintf(cfg_data.restart, sizeof(cfg_data.restart), "%s", data);
- break;
- case ss_sm_cfg::cfg_args::is_start_required:
- snprintf(is_start_required,
- sizeof(is_start_required), "%s", data);
- break;
- case ss_sm_cfg::cfg_args::shutdown_critical:
- snprintf(shutdown_critical,
- sizeof(shutdown_critical), "%s", data);
- break;
- case ss_sm_cfg::cfg_args::shutdown_wait_time:
- cfg_data.shutdown_wait_time =
- static_cast<UI_32>(strtoul(data, NULL, 10));
- break;
- case ss_sm_cfg::cfg_args::fast_shutdown_wait_time:
- cfg_data.fast_shutdown_wait_time =
- static_cast<UI_32>(strtoul(data, NULL, 10));
- break;
- case ss_sm_cfg::cfg_args::unix_user_name:
- strncpy(&cfg_data.unix_user_name[0],
- strip(data_).c_str(),
- sizeof(cfg_data.unix_user_name) - 1);
- break;
- case ss_sm_cfg::cfg_args::is_agl_unit:
- strncpy(is_agl_unit, data, sizeof(is_agl_unit));
- break;
- case ss_sm_cfg::cfg_args::disable_agl_resethistory:
- strncpy(disable_agl_resethistory, data, sizeof(disable_agl_resethistory));
- break;
- case ss_sm_cfg::cfg_args::disable_nonagl_resethistory:
- strncpy(disable_nonagl_resethistory, data, sizeof(disable_nonagl_resethistory));
- break;
- case ss_sm_cfg::cfg_args::env_value_condition: // LCOV_EXCL_START 6: Because an initialization condition is set at SystemManager startup and the branching condition cannot be satisfied // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- snprintf(cfg_data.env_value_condition,
- sizeof(cfg_data.env_value_condition), "%s", data);
- break;
- case ss_sm_cfg::cfg_args::cpu_assign:
- cfg_data.cpu_assign =
- static_cast<int>(strtoul(data, NULL, 16));
- break;
- default:
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: unknown ss_sm_cfg::cfg_args::xxx/'at' "
- "enum value '%d'", at);
- break;
- // LCOV_EXCL_STOP
- }
- }
- ++at;
- }
- ////////////////////////////////////////////////////////////////////////////////
-// LCOV_EXCL_BR_START 6: Because an initialization condition is set at SystemManager startup and the branching condition cannot be satisfied
- if (0 != std::strlen(cfg_data.env_value_condition)
- && FALSE
- == is_satisfy_env_launch_cond(
-// LCOV_EXCL_BR_STOP
- cfg_data.env_value_condition)) { // LCOV_EXCL_LINE 6: For setting the initialization conditions at SystemManager startup
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "exclude %s from wakeup service", cfg_data.name);
- } else {
- if (isNfs) { // LCOV_EXCL_BR_LINE 6: Because an initialization condition is set at SystemManager startup and the branching condition cannot be satisfied
- // Since the NFS environment is used by copying the executable file containing the CAP to /tmp, it is read out.
-// LCOV_EXCL_START 6: Because an initialization condition is set at SystemManager startup and the branching condition cannot be satisfied
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- std::string binPath(cfg_data.binary_name);
- for (std::list<std::string>::iterator ite =
- capFiles.begin(); ite != capFiles.end(); ite++) {
- if (binPath == *ite) {
- std::list<std::string> nodes;
- boost::split(nodes, binPath, boost::is_any_of("/"));
- std::string newPath("/tmp/");
- newPath += nodes.back();
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "EXCHG %s", newPath.c_str());
- snprintf(cfg_data.binary_name,
- sizeof(cfg_data.binary_name), "%s", newPath.c_str());
- break;
- }
- }
- }
-// LCOV_EXCL_STOP
- // FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "is_start_required: %s", is_start_required);
- cfg_data.is_start_required = (std::strcmp("True",
- is_start_required) == 0);
-
- if (std::strcmp("True", group_wait_for_trigger) == 0) {
- cfg_data.group_wait_for_trigger = TRUE;
- } else {
- cfg_data.group_wait_for_trigger = FALSE;
- }
-
- // FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "critical: %s", critical);
- cfg_data.critical = (std::strcmp("True", critical) == 0);
-
- // FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "shutdown_critical: %s", shutdown_critical);
- cfg_data.shutdown_critical = (std::strcmp("True",
- shutdown_critical) == 0);
-
- cfg_data.SetAGLUnit(ParseBoolParameter(is_agl_unit, TRUE));
- cfg_data.SetAGLResetHistoryDisable(ParseBoolParameter(disable_agl_resethistory));
- cfg_data.SetNonAGLResetHisoryDisable(ParseBoolParameter(disable_nonagl_resethistory));
-
- GroupLaunchInfo grp_info;
- grp_info.start_complete = FALSE;
- grp_info.stop_complete = FALSE;
- grp_info.launch_complete = FALSE;
- grp_info.name = cfg_data.group_name;
- grp_info.id = cfg_data.group_id;
- grp_info.grp_launch_wait = cfg_data.group_launch_wait;
- grp_info.grp_wait_for_trigger =
- cfg_data.group_wait_for_trigger;
- ModuleLaunchListIter l_moduleLaunchListIter;
-
- GroupLaunchMapIter grp_iter = groups_map.find(grp_info.id);
- if (grp_iter != groups_map.end()) {
- l_moduleLaunchListIter = set_cfg_grp_member_info(
- cfg_data, grp_iter->second.modules);
- } else {
- l_moduleLaunchListIter = set_cfg_grp_member_info(
- cfg_data, grp_info.modules);
-
- // add this grp info object to the list of grps
- groups_map.insert(make_pair(grp_info.id, grp_info));
- }
-
- std::string l_binaryNameStr = cfg_data.binary_name;
- size_t l_binaryNamePos = l_binaryNameStr.find_last_of("/");
- if (std::string::npos != l_binaryNamePos) {
- l_binaryNameStr = l_binaryNameStr.substr(l_binaryNamePos + 1);
- f_processNameMap.insert(
- make_pair(l_binaryNameStr, l_moduleLaunchListIter));
- }
- }
-
- std::sprintf(key, "ModulesLaunchConfig.Launch%d", ++launch_idx); // NOLINT
- value = l_pReaderCfg->GetString(key);
- } // end while
- }
- } else { // LCOV_EXCL_START 6: Because new doesn't pass the failure case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- // defaults use from the header file ... this is much faster then reading from an xml file.
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning: \"new CNSConfigReader(%s)\" returned NULL; using "
- "constants.", f_launchCfgFn.c_str());
- UI_32 num_of_items = static_cast<UI_32>(_countof(g_arrLaunchTableCfg));
- for (UI_32 arr_idx = 0; arr_idx < num_of_items; arr_idx++) {
- GroupLaunchInfo grp_info;
- grp_info.launch_complete = FALSE;
- grp_info.name = g_arrLaunchTableCfg[arr_idx].group_name;
- grp_info.id = g_arrLaunchTableCfg[arr_idx].group_id;
- grp_info.grp_launch_wait =
- g_arrLaunchTableCfg[arr_idx].group_launch_wait;
-
- GroupLaunchMapIter grp_iter = groups_map.find(grp_info.id);
-
- if (grp_iter != groups_map.end()) {
- set_grp_member_info(g_arrLaunchTableCfg[arr_idx],
- grp_iter->second.modules);
- } else {
- set_grp_member_info(g_arrLaunchTableCfg[arr_idx],
- grp_info.modules);
- // add this grp info object to the list of grps
- groups_map.insert(make_pair(grp_info.id, grp_info));
- }
- }
- }
- // LCOV_EXCL_STOP
- if (rtn_code == TRUE) {
- load_parameters_order_cfg(groups_map, f_OrderList, f_launchOrderName, f_launchCfgFn);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return rtn_code;
-}
-
-VOID SysMgrConfiguration::PrintGroupInfo(GroupLaunchInfo& refGrpInfo) {
- std::stringstream l_logMsg;
-
- l_logMsg << endl << "Group: " << refGrpInfo.name.data() << endl
- << " id: " << refGrpInfo.id << endl << " wait-time: "
- << refGrpInfo.grp_launch_wait << endl << " launch complete: "
- << (refGrpInfo.launch_complete == TRUE ? "YES" : "NO"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- std::string l_logStr = l_logMsg.str();
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "%s", l_logStr.c_str());
-}
-
-VOID SysMgrConfiguration::PrintModuleInfo(ModuleLaunchParams& refMbrInfo) {
- std::stringstream l_logMsg;
-
- // LCOV_EXCL_BR_START 11:unexpected branch // NOLINT(whitespace/line_length)
- l_logMsg << endl << "Module: " << refMbrInfo.name.data() << endl
- << " path: " << refMbrInfo.path.data() << endl << " args: "
- << refMbrInfo.arguments.data() << endl << " restart: "
- << refMbrInfo.restart.data() << endl
- << " configuration_priority: "
- << refMbrInfo.configuration_priority << endl
- << " cpu_assign: "
- << refMbrInfo.cpu_assign << endl
- << " current_priority: " << refMbrInfo.current_priority << endl
- << " previous_priority: " << refMbrInfo.previous_priority << endl
- << " critical: " << (refMbrInfo.critical == TRUE ? "YES" : "NO")
- << endl
- << " retry count: " << refMbrInfo.retry_cnt << endl
- << " logging mask: " << refMbrInfo.logging_msk_str << endl
- << " is_start_required: "
- << (refMbrInfo.is_start_required == TRUE ? "YES" : "NO")
- << endl
- << " shutdown_critical: "
- << (refMbrInfo.shutdown_critical == TRUE ? "YES" : "NO") << endl
- << " shutdown_wait_time: " << refMbrInfo.shutdown_wait_time
- << endl << " fast_shutdown_wait_time: "
- << refMbrInfo.fast_shutdown_wait_time << endl << " is_agl_unit: "
- << refMbrInfo.IsAGLUnit() << endl << " disable_agl_resethistory: "
- << refMbrInfo.IsAGLResetHistoryDisable() << endl << " disable_nonagl_resethistory: "
- << refMbrInfo.IsNonAGLResetHistoryDisable() << endl << " state: "
- << refMbrInfo.ModuleStateStr() << endl << " group ID: "
- << refMbrInfo.group_id << endl << " debug dump state: "
- << refMbrInfo.GetModuleDebugDumpStateStr();
- // LCOV_EXCL_BR_STOP
- std::string l_logStr = l_logMsg.str();
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "%s", l_logStr.c_str());
-}
-
-VOID SysMgrConfiguration::PrintAllInfo(GroupLaunchMap& refGrpMap) {
- // get first client from the map...
- GroupLaunchMapIter grp_iter = refGrpMap.begin();
-
- for (; grp_iter != refGrpMap.end(); grp_iter++) {
- PrintGroupInfo(grp_iter->second);
- ModuleLaunchListIter mbr_iter = grp_iter->second.modules.begin();
- for (; mbr_iter != grp_iter->second.modules.end(); mbr_iter++) {
- PrintModuleInfo(*mbr_iter);
- }
- }
-}
-
-BOOL SysMgrConfiguration::ParseBoolParameter(PCSTR f_value, BOOL f_default) const {
- if (FALSE == f_default) {
- const char TRUE_VALUE[] = "True";
- if (0 == strcmp(TRUE_VALUE, f_value)) {
- return TRUE;
- }
- } else {
- const char FALSE_VALUE[] = "False";
- if (0 == strcmp(FALSE_VALUE, f_value)) {
- return FALSE;
- }
- }
- return f_default;
-}
-
-/*
- * SM Configuration data constructor
- */
-SMConfigParams::SMConfigParams() {
-}
-
-/*
- * SM Configuration data destructor
- */
-SMConfigParams::~SMConfigParams() {
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// PrintConfigInfo
-/// \brief Print the configuration data stored in config structure
-///
-/// \param [in] configata
-/// ConfigurationData & - Ref to structure that get populated.
-///
-/// \return VOID
-////////////////////////////////////////////////////////////////////////////////////////////
-VOID SMConfigParams::PrintConfigInfo(ConfigurationData const & f_ConfigParams) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "AppHeartBeatInterval_Initial Info: %d",
- f_ConfigParams.HBConfig.ApplicationHeartBeatIntervalInitial);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "AppHeartBeatInterval_Repeat Info: %d",
- f_ConfigParams.HBConfig.ApplicationHeartBeatIntervalRepeat);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "HBMaxHeartBeatRetryCount Info: %d",
- f_ConfigParams.HBConfig.MaxHeartBeatRetryCount);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "CDEnabled: %d",
- f_ConfigParams.CDConfig.CrashDetectorEnabled);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "SLMTimerValue: %d",
- f_ConfigParams.SLMConfig.SLMTimerValue);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "SLMMaxRetryCount: %d",
- f_ConfigParams.SLMConfig.SLMMaxRetryCount);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "SLMThresholdValue: %d",
- f_ConfigParams.SLMConfig.SLMThresholdValue);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "SLMSystemmanagerLogIntervalMs: %d",
- f_ConfigParams.SLMConfig.SLMSystemmanagerLogIntervalMs);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "UserModeStructIsBoolean: %s",
- GetStr(f_ConfigParams.UMConfig.IsUserModeNotificationABOOL).c_str());
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "ModuleConnectionNumTimesToCheck: %d",
- f_ConfigParams.MCConfig.ModuleConnectionNumTimesToCheck);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "ModuleConnectionTimeOutSec: %d",
- f_ConfigParams.MCConfig.ModuleConnectionTimeOutSec);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "ModuleStartRespTimeOutSec: %d",
- f_ConfigParams.MCConfig.ModuleStartRespTimeOutSec);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "CriticalAppsMaxShutdownTimeFastSleep: %d",
- f_ConfigParams.CAMSTConfig.CriticalAppsMaxShutdownTimeFastSleep);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "CriticalAppsMaxShutdownTimeNormalReset: %d",
- f_ConfigParams.CAMSTConfig.CriticalAppsMaxShutdownTimeNormalReset);
- return;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// GetSMConfigInformation
-/// \brief Read config data from cfg file and populate the configuration data structure
-///
-/// \param [in] f_ConfigParams & - Ref to ConfigurationData that get populated.
-/// \param [in] f_FileName - Configuration file name.
-///
-/// \return BOOL
-/// BOOL - TRUE or FALSE
-////////////////////////////////////////////////////////////////////////////////////////////
-BOOL SMConfigParams::GetSMConfigInformation(ConfigurationData& f_ConfigParams, SS_String f_FileName) {
- EFrameworkunifiedStatus l_eStatus;
- BOOL l_rtnCode = FALSE; // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- CNSConfigReader *l_pReaderCfg = new (std::nothrow) CNSConfigReader(); // LCOV_EXCL_BR_LINE 10: As new does not fail
-// LCOV_EXCL_BR_START 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- if (NULL == l_pReaderCfg) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. new CNSConfigReader() returned NULL pointer.");
- } else {
- if (eFrameworkunifiedStatusOK != (l_eStatus = l_pReaderCfg->Parse(f_FileName))) {
- // LCOV_EXCL_START 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. l_pReaderCfg->Open(%s) returned NULL pointer.",
- f_FileName.c_str());
- // LCOV_EXCL_STOP
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetInt(
- "Heartbeat.MaxHeartBeatRetryCount",
- f_ConfigParams.HBConfig.MaxHeartBeatRetryCount))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_START 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetInt('Heartbeat.MaxHeartBeatRetryCount')");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetInt(
- "Heartbeat.AppHeartBeatIntervalInitial",
- f_ConfigParams.HBConfig.ApplicationHeartBeatIntervalInitial))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetInt('Heartbeat.AppHeartBeatIntervalInitial')");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetInt(
- "Heartbeat.AppHeartBeatIntervalRepeat",
- f_ConfigParams.HBConfig.ApplicationHeartBeatIntervalRepeat))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetInt('Heartbeat.AppHeartBeatIntervalRepeat')");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetBool("CrashDetector.Enabled",
- f_ConfigParams.CDConfig.CrashDetectorEnabled))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetBool('CrashDetector.Enabled')");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetInt("SysLowMemory.TimerValue",
- f_ConfigParams.SLMConfig.SLMTimerValue))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetInt('SysLowMemory.TimerValue')");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetInt(
- "SysLowMemory.MaxRetryCount",
- f_ConfigParams.SLMConfig.SLMMaxRetryCount))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetInt('SysLowMemory.MaxRetryCount')");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetInt(
- "SysLowMemory.ThresholdValue",
- f_ConfigParams.SLMConfig.SLMThresholdValue))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetInt('SysLowMemory.ThresholdValue')");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetInt(
- "SysLowMemory.InterfaceunifiedLogIntervalMs",
- f_ConfigParams.SLMConfig.SLMSystemmanagerLogIntervalMs))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetInt('SysLowMemory.InterfaceunifiedLogIntervalMs')");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetBool(
- "UserModeNotification.IsBoolean",
- f_ConfigParams.UMConfig.IsUserModeNotificationABOOL))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetBool('UserModeNotification.IsBoolean')");
- f_ConfigParams.UMConfig.IsUserModeNotificationABOOL = TRUE;
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetInt(
- "Module.ModuleConnectionNumTimesToCheck",
- f_ConfigParams.MCConfig.ModuleConnectionNumTimesToCheck))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetInt('Module.ModuleConnectionNumTimesToCheck')");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetInt(
- "Module.ModuleConnectionTimeOutSec",
- f_ConfigParams.MCConfig.ModuleConnectionTimeOutSec))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetInt('Module.ModuleConnectionTimeOutSec')");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetInt(
- "Module.ModuleStartRespTimeOutSec",
- f_ConfigParams.MCConfig.ModuleStartRespTimeOutSec))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetInt('Module.ModuleStartRespTimeOutSec')");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetInt(
- "CriticalApps.CriticalAppsMaxShutdownTimeFastSleep",
- f_ConfigParams.CAMSTConfig.CriticalAppsMaxShutdownTimeFastSleep))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetInt('CriticalApps.CriticalAppsMaxShutdownTimeFastSleep')");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = l_pReaderCfg->GetInt(
- "CriticalApps.CriticalAppsMaxShutdownTimeNormalReset",
- f_ConfigParams.CAMSTConfig.CriticalAppsMaxShutdownTimeNormalReset))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- "l_pReaderCfg->GetInt('CriticalApps.CriticalAppsMaxShutdownTimeNormalReset')");
- } else {
- l_rtnCode = TRUE;
- }
-
- delete l_pReaderCfg; // LCOV_EXCL_BR_LINE 10: As the delete does not fail
- }
-// LCOV_EXCL_BR_STOP
-
- return (l_rtnCode);
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// LoadSMConfigParameters
-/// \brief Read System Manager configuration parameters from cfg file or
-/// use defaults values in case cfg file is not available
-///
-/// \param [in] f_ConfigParams & - Ref to ConfigurationData that get populated.
-/// \param [in] f_FileName - Configuration file name.
-///
-/// \return BOOL
-/// BOOL - TRUE or FALSE
-////////////////////////////////////////////////////////////////////////////////////////////
-BOOL SMConfigParams::LoadSMConfigParameters(ConfigurationData& f_ConfigParams, SS_String f_FileName) {
- BOOL rtn_code = TRUE;
-
- rtn_code = GetSMConfigInformation(f_ConfigParams, f_FileName);
-
- // cfg config file not found, use constants
- if (FALSE == rtn_code) {
- // LCOV_EXCL_START 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning: cfg config file not open, using constants");
-
- // Heart Beat constants
- f_ConfigParams.HBConfig.ApplicationHeartBeatIntervalInitial =
- HBApplicationHeartBeatIntervalInitial;
- f_ConfigParams.HBConfig.ApplicationHeartBeatIntervalRepeat =
- HBApplicationHeartBeatIntervalRepeat;
- f_ConfigParams.HBConfig.MaxHeartBeatRetryCount = HBMaxHeartBeatRetryCount;
-
- // Crash Detector constants
- f_ConfigParams.CDConfig.CrashDetectorEnabled = CDEnabled;
-
- // System Low Memory
- f_ConfigParams.SLMConfig.SLMTimerValue = SLMTimerValue;
- f_ConfigParams.SLMConfig.SLMMaxRetryCount = SLMRetryCount;
- f_ConfigParams.SLMConfig.SLMThresholdValue = SLMThresholdValue;
- f_ConfigParams.SLMConfig.SLMSystemmanagerLogIntervalMs = SLMSystemmanagerLogIntervalMs;
-
- // Module connect and start resp
- f_ConfigParams.MCConfig.ModuleConnectionNumTimesToCheck =
- ModuleConnectionNumTimesToCheck;
- f_ConfigParams.MCConfig.ModuleConnectionTimeOutSec =
- ModuleConnectionTimeOutSec;
- f_ConfigParams.MCConfig.ModuleStartRespTimeOutSec = ModuleStartRespTimeOutSec;
-
- // Critical Apps shutdown time
- f_ConfigParams.CAMSTConfig.CriticalAppsMaxShutdownTimeFastSleep =
- CriticalAppsMaxShutdownTimeFastSleepSec;
- f_ConfigParams.CAMSTConfig.CriticalAppsMaxShutdownTimeNormalReset =
- CriticalAppsMaxShutdownTimeNormalResetSec;
-
- // USer Mode Data Structure Type
- f_ConfigParams.UMConfig.IsUserModeNotificationABOOL = TRUE;
- // LCOV_EXCL_STOP
- }
- PrintConfigInfo(f_ConfigParams);
-
- return rtn_code;
-} // LCOV_EXCL_BR_LINE 10: Final line
-
diff --git a/systemservice/system_manager/server/src/ss_sm_dynamic_launcher.cpp b/systemservice/system_manager/server/src/ss_sm_dynamic_launcher.cpp
deleted file mode 100755
index 6144fa4..0000000
--- a/systemservice/system_manager/server/src/ss_sm_dynamic_launcher.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager process launching.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#include <string>
-#include <sstream>
-#include <iomanip>
-
-#include "ss_sm_dynamic_launch_table.h"
-#include "ss_sm_systemmanagerlog.h"
-
-DynamicLaunchBase::DynamicLaunchBase():
-m_vOrderedGroup(),
-m_iterOrderedGroup() {
-}
-
-
-DynamicLaunchBase::~DynamicLaunchBase() {
-}
-
-UI_32 DynamicLaunchBase::get_id() const {
- // FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " DLB: Active Group ID is %d", *m_iterOrderedGroup);
- return *m_iterOrderedGroup;
-}
-
-UI_32 DynamicLaunchBase::advance_id() {
- if (!is_end()) {
- m_iterOrderedGroup++;
- }
- // FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " DLB: Active Group ID is %d", *m_iterOrderedGroup);
- return *m_iterOrderedGroup;
-}
-
-UI_32 DynamicLaunchBase::decrement_id() {
- if (!is_begin()) { // LCOV_EXCL_BR_LINE 5: stdlib error case.
- m_iterOrderedGroup--;
- }
- // FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " DLB: Active Group ID is %d", *m_iterOrderedGroup);
- return *m_iterOrderedGroup;
-}
-
-BOOL DynamicLaunchBase::is_begin() {
- // FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " DLB: Active Group ID is %d", *m_iterOrderedGroup);
- return (m_iterOrderedGroup == m_vOrderedGroup.begin());
-}
-
-BOOL DynamicLaunchBase::is_end() {
- // FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " DLB: Active Group ID is %d", *m_iterOrderedGroup);
- DynamicOrderedIter l_it = m_iterOrderedGroup;
- l_it++;
- return (l_it == m_vOrderedGroup.end());
-}
-
-VOID DynamicLaunchBase::to_begin() {
- m_iterOrderedGroup = m_vOrderedGroup.begin();
- return;
-}
-
-VOID DynamicLaunchBase::to_end() {
- m_iterOrderedGroup = m_vOrderedGroup.end();
- m_iterOrderedGroup--;
- return;
-}
-
-VOID DynamicLaunchBase::print_info() {
- UI_32 idx = 1;
- std::stringstream l_logMsg;
- DynamicOrderedIter l_dyn_iter = m_vOrderedGroup.begin();
- for (; l_dyn_iter != m_vOrderedGroup.end(); l_dyn_iter++) {
- l_logMsg << std::endl << "Index: " << std::setw(2) << idx
- << " Group Id: " << std::setw(2) << *l_dyn_iter;
-
- idx++;
- }
-
- std::string l_logStr = l_logMsg.str();
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "%s", l_logStr.c_str());
-}
-
-DynamicLauncher::DynamicLauncher() :DynamicLaunchBase(),
-m_nLaunchGroupId(0),
-m_nLaunchBeforeGroupId(0),
-m_nLaunchAfterGroupId(0),
-m_nAviageTriggerId(0),
-m_bDynamicLaunchEnabled(FALSE), // by default until set by some one will this be disabled.
-m_eSourceType(SS_SOURCE_NA) { // invalid
-}
-
-DynamicLauncher::~DynamicLauncher() {
-}
-
-BOOL DynamicLauncher::dynamic_launch_enabled() const { // LCOV_EXCL_START 8: Dead code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- return m_bDynamicLaunchEnabled;
-}
-// LCOV_EXCL_STOP
-
-VOID DynamicLauncher::configure_dynamic_launch(const SS_SOURCE& source_type,
- GroupLaunchMap& group_info, LaunchOrderedVector& order_info) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- m_eSourceType = source_type;
- // "Dynamic Launch" is not used due to high dependency on a service table
- create_normal_launch_vector(group_info, order_info);
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-BOOL DynamicLauncher::is_inGroupLaunchMap(UI_32& id,
- GroupLaunchMap& group_info) { // LCOV_EXCL_START 8: Dead code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- BOOL Ret = FALSE;
- GroupLaunchMapIter l_grp_iter = group_info.find(id);
- if (l_grp_iter != group_info.end()) {
- Ret = TRUE;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return Ret;
-}
-// LCOV_EXCL_STOP
-
-// LCOV_EXCL_START 8: Dead code
-DynamicLaunchInfo* DynamicLauncher::get_dynamic_source_info(
- const SS_SOURCE& source_type, BOOL& source_trigger,
- BOOL& is_aviage_required) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- UI_32 num_of_items = static_cast<UI_32>(_countof(g_arrDynamicLaunchTableCfg));
- DynamicLaunchInfo * point_to_this = NULL;
- for (UI_32 arr_idx = 0; arr_idx < num_of_items; arr_idx++) {
- if (g_arrDynamicLaunchTableCfg[arr_idx].source == source_type) {
- source_trigger = g_arrDynamicLaunchTableCfg[arr_idx].group_trigger;
- point_to_this = &g_arrDynamicLaunchTableCfg[arr_idx];
- if ((SS_SOURCE_FM == source_type) || (SS_SOURCE_AM == source_type)
- || (SS_SOURCE_FM_DAB == source_type)
- || (SS_SOURCE_SDARS == source_type)) {
- is_aviage_required = FALSE;
- }
- break;
- }
- }
-
- return point_to_this;
-}
-// LCOV_EXCL_STOP
-
-UI_32 DynamicLauncher::get_id_using_group_name(PCSTR group_name,
- GroupLaunchMap& group_info) { // LCOV_EXCL_START 8: Dead code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- GroupLaunchMapIter l_grp_iter = group_info.begin();
- UI_32 rtn_grp_id = 0;
- for (; l_grp_iter != group_info.end(); l_grp_iter++) {
- if (0 == strcmp(group_name, l_grp_iter->second.name.c_str())) {
- rtn_grp_id = l_grp_iter->second.id;
- break;
- }
- }
-
- return rtn_grp_id;
-}
-// LCOV_EXCL_STOP
-
-VOID DynamicLauncher::create_normal_launch_vector(GroupLaunchMap& group_info,
- LaunchOrderedVector& order_info) {
- m_vOrderedGroup.clear();
-
- if (order_info.size() != 0) { // LCOV_EXCL_BR_LINE 6: To initialize conditions for launching SystemManager
- // LCOV_EXCL_START 6: To initialize conditions for launching SystemManager
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LaunchOrderedIter l_ord_iter = order_info.begin();
- while (l_ord_iter != order_info.end()) {
- if (is_inGroupLaunchMap(*l_ord_iter, group_info) == TRUE) {
- m_vOrderedGroup.push_back(*l_ord_iter);
- }
- l_ord_iter++;
- }
- // LCOV_EXCL_STOP
- } else {
- GroupLaunchMapIter l_grp_iter = group_info.begin();
- while (l_grp_iter != group_info.end()) {
- m_vOrderedGroup.push_back(l_grp_iter->second.id);
- l_grp_iter++;
- }
- }
- m_iterOrderedGroup = m_vOrderedGroup.begin();
- m_bDynamicLaunchEnabled = TRUE;
- print_info();
-}
-
-VOID DynamicLauncher::copyDynOrderedVector(DynamicModuleStart& Start) {
- Start.setGroupVector(this->m_vOrderedGroup);
-}
-
-// DynamicModuleStart
-
-DynamicModuleStart::DynamicModuleStart() :DynamicLaunchBase() {
-}
-
-DynamicModuleStart::~DynamicModuleStart() {
-}
-
-VOID DynamicModuleStart::setGroupVector(DynamicOrderedVector& Vector) {
- m_vOrderedGroup.assign(Vector.begin(), Vector.end());
- m_iterOrderedGroup = m_vOrderedGroup.begin();
-} // LCOV_EXCL_BR_LINE 10: Final line
diff --git a/systemservice/system_manager/server/src/ss_sm_version.cpp b/systemservice/system_manager/server/src/ss_sm_version.cpp
deleted file mode 100755
index 9df970f..0000000
--- a/systemservice/system_manager/server/src/ss_sm_version.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for module version management.
-///
-///////////////////////////////////////////////////////////////////////////////
-#include <system_service/ss_package.h>
-#include <system_service/ss_ver.h>
-#include <system_service/ss_templates.h>
-#include <system_service/ss_string_maps.h>
-#include <system_service/ss_system_manager_protocol.h>
-#include <system_service/ss_system_manager_protocol_local.h>
-#include <iostream>
-#include <string>
-#include <sstream>
-#include <fstream>
-#include "ss_sm_systemmanagerlog.h"
-#include "ss_sm_version.h"
-
-using namespace std; // NOLINT
-
-CSMVersion::CSMVersion() {
-}
-
-CSMVersion::~CSMVersion() {
-}
-
-EFrameworkunifiedStatus CSMVersion::get_version(SS_VersionNumberType& f_VersionNumber) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- CSSVer ver;
-
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- f_VersionNumber = 0;
-
- SSVER_PkgInfo info;
- l_eStatus = ver.getPkgInfo(SS_PKG_MAIN_EMMC, &info);
- if (l_eStatus == eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 6: To initialize conditions for launching SystemManager
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- f_VersionNumber = strtoull(info.version, NULL, 10); // LCOV_EXCL_LINE 6: To initialize conditions for launching SystemManager
- } else {
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSMVersion::get_version(SS_VersionNumberType &f_VersionNumber)
-
-EFrameworkunifiedStatus CSMVersion::get_build_info(std::string& f_buildInfoStr) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- std::string build_info_str;
- CSSVer ver;
- SSVER_PkgInfo info;
- l_eStatus = ver.getPkgInfo(SS_PKG_MAIN_PRODUCT_SI, &info);
- if (l_eStatus == eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 6: To initialize conditions for launching SystemManager
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- build_info_str += info.version; // LCOV_EXCL_LINE 6: To initialize conditions for launching SystemManager
- } else {
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- f_buildInfoStr = build_info_str;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // LCOV_EXCL_BR_LINE 10: Final line End of EFrameworkunifiedStatus CSMVersion::get_build_info(SS_String &f_buildInfoStr)
-// EOF /SS_SystemManager/src/ss_sm_version.cpp
diff --git a/systemservice/system_manager/server/src/ss_system_manager.cpp b/systemservice/system_manager/server/src/ss_system_manager.cpp
deleted file mode 100755
index 8e26f23..0000000
--- a/systemservice/system_manager/server/src/ss_system_manager.cpp
+++ /dev/null
@@ -1,3655 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager business logic.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#include <native_service/cl_lock.h>
-#include <native_service/cl_process.h>
-#include <native_service/cl_monitor.h>
-
-#include <native_service/frameworkunified_application.h>
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/frameworkunified_multithreading.h>
-#include <native_service/frameworkunified_thread_priority.h>
-
-#include <native_service/ns_np_service_nor_persistence.h>
-#include <native_service/ns_np_service_protocol.h>
-#include <native_service/ns_plogger_if.h>
-#include <native_service/ns_np_service_if.h>
-#include <native_service/ns_backup.h>
-
-#include <heartbeat/ss_hb_if.h>
-
-#include <processlauncher/ProcessLauncher_if.h>
-#include <processlauncher/ss_sm_process_launcher.h>
-#include <processlauncher/ss_sm_process_launcher_protocol.h>
-
-#include <system_service/ss_system_manager_conf.h>
-#include <stub/ss_diag.h>
-
-#include <system_service/ss_client_names.h>
-#include <system_service/ss_heartbeat_service_protocol.h>
-#include <system_service/ss_power_service_if.h>
-#include <system_service/ss_power_service_notifications.h>
-#include <system_service/ss_power_service_protocol.h>
-#include <system_service/ss_services.h>
-#include <system_service/ss_sm_thread_names.h>
-#include <system_service/ss_sm_thread_names_local.h>
-#include <system_service/ss_sm_client_if.h>
-#include <system_service/ss_string_maps.h>
-#include <system_service/ss_system_manager_notifications.h>
-#include <system_service/ss_system_manager_notifications_local.h>
-#include <system_service/ss_templates.h>
-#include <system_service/ss_sm_client_if_local.h>
-#include <system_service/ss_test_clients.h>
-#include <stub/Clock_API.h>
-#include <power_hal.h>
-#include <dirent.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/mman.h>
-#include <sys/resource.h>
-#include <sys/procfs.h>
-#include <sys/timeb.h>
-#include <sys/wait.h>
-#include <inttypes.h>
-#include <libgen.h>
-#include <spawn.h>
-#include <pthread.h>
-#include <linux/oom.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <sched.h>
-#include <other_service/itoa.h>
-#include <iomanip>
-#include <fstream>
-#include <string>
-#include <map>
-#include <vector>
-#include "ss_sm_signals.h"
-#include "ss_sm_default_paths.h"
-#include "ss_sm_systemmanagerlog.h"
-#include "ss_sm_version.h"
-#include "ss_system_manager.h"
-using namespace std; // NOLINT
-
-static CSystemManager g_oSystemManger;
-
-#define SS_SM_TEMP_FILE_FOR_STORE_LOGS "/nv/BS/ss/system_manager/rwdata/sm_tempStoreLogs"
-#define TR_USB_PATH "/usr/agl/bin/realtimeUsbLog"
-
-// \brief: public structure that is used for logging by NSLogger.
-FRAMEWORKUNIFIEDLOGPARAM g_FrameworkunifiedLogParams = {
- FRAMEWORKUNIFIEDLOGOPTIONS,
- {
- ZONE_TEXT_10, ZONE_TEXT_11, ZONE_TEXT_12,
- ZONE_TEXT_13, ZONE_TEXT_14, ZONE_TEXT_15,
- ZONE_TEXT_16, ZONE_TEXT_17, ZONE_TEXT_18,
- ZONE_TEXT_19, ZONE_TEXT_20, ZONE_TEXT_21,
- ZONE_TEXT_22, ZONE_TEXT_23, ZONE_TEXT_24,
- ZONE_TEXT_25, ZONE_TEXT_26, ZONE_TEXT_27,
- ZONE_TEXT_28, ZONE_TEXT_29, ZONE_TEXT_30,
- ZONE_TEXT_31
- },
- FRAMEWORKUNIFIEDLOGZONES
-};
-
-std::string NumberToString(int Number) { // LCOV_EXCL_START 8: dead code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- std::ostringstream ss;
- ss << Number;
- return ss.str();
-}
-// LCOV_EXCL_STOP
-
-/* Check if "Mount Point" exsists as Directory */
-/*****************************************************************************/
-/**
- @ingroup: CSystemManager
- @brief: No Argument Constructor.
- @note: .
- @param void
- @return void
- */
-/*****************************************************************************/
-template<typename C, eFrameworkunifiedStatus (C::*M)(HANDLE)> EFrameworkunifiedStatus SysMgrCallback(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail;
- C * pObj = static_cast<C *>(&g_oSystemManger);
- if (pObj) {
- l_eStatus = (pObj->*M)(hApp);
- }
- return l_eStatus;
-}
-
-//**************************************************************************
-// System Manager State String Map *
-// *
-void Init_SS_SMModuleState_StrMap(std::map<SS_SMModuleState, SS_String> & m_strMap) { // NOLINT
- MAP_ENTRY(m_strMap, SS_SM_READY_TO_LAUNCH_APP);
- MAP_ENTRY(m_strMap, SS_SM_APPS_LAUNCH_IN_PROGRESS);
- MAP_ENTRY(m_strMap, SS_SM_APPS_LAUNCHED_READY_TO_START);
- MAP_ENTRY(m_strMap, SS_SM_APPS_START_IN_PROGRESS);
- MAP_ENTRY(m_strMap, SS_SM_APPS_START_COMPLETE);
- MAP_ENTRY(m_strMap, SS_SM_APPS_STOPPING_AT__CWORD56__REQ);
- MAP_ENTRY(m_strMap, SS_SM_APPS_STOPPING_AT_INTERNAL_REQ);
- MAP_ENTRY(m_strMap, SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ);
- MAP_ENTRY(m_strMap, SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ);
- MAP_ENTRY(m_strMap, SS_SM_APPS_PRE_START_IN_PROGRESS);
- MAP_ENTRY(m_strMap, SS_SM_APPS_PRE_STOP_IN_PROGRESS);
- MAP_ENTRY(m_strMap, SS_SM_APPS_PRE_RUN_COMPLETE);
- MAP_ENTRY(m_strMap, SS_SM_APPS_BACKGROUND_START_IN_PROGRESS);
- MAP_ENTRY(m_strMap, SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS);
- MAP_ENTRY(m_strMap, SS_SM_APPS_BACKGROUND_RUN_COMPLETE);
-} // End of void Init_SS_SMModuleState_StrMap(std::map<SS_SMModuleState,
-
-class EnumStringMap<SS_SMModuleState, Init_SS_SMModuleState_StrMap>
- m_oSS_SMModuleStateStrMap;
-SS_String GetStr(SS_SMModuleState f_enum) {
- return m_oSS_SMModuleStateStrMap.GetStr(f_enum); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-} // End of SS_String :GetStr(SS_SMModuleState f_enum)
-// *
-// End of System Manager State String Map *
-//**************************************************************************
-
-std::string CSystemManager::m_bootOpt; // NOLINT
-
-/*****************************************************************************/
-/**
- @ingroup: CSystemManager
- @brief: No Argument Constructor.
- @note: .
- @param void
- @return void
- */
-/*****************************************************************************/
-CSystemManager & CSystemManager::GetInstance() {
- return g_oSystemManger;
-}
-
-/*****************************************************************************/
-/**
- @ingroup: CSystemManager
- @brief: No Argument Constructor.
- @note: .
- @param void
- @return void
- */
-/*****************************************************************************/
-CSystemManager::CSystemManager() :
- m_hHeartbeatThread(INVALID_HANDLE, eSM_ThreadNotExist),
- m_hProcLauncherThread(INVALID_HANDLE, eSM_ThreadNotExist),
- m_SystemLaunchProgress(SS_SM_INITIAL_GROUP),
- m_GroupLaunchTimer(NULL),
- m_GroupRelaunchCount(0),
- m_GroupRelaunchLimit(0),
- m_hPowerServiceSession(NULL),
- m_ActiveGroupId(SS_SM_INITIAL_GROUP),
- m_StartUpReason(epswfINVALID),
- m_DataResetMode(e_SS_SM_DATA_RESET_MODE_NONE),
- m_ProgUpdateState(SS_SM_PROG_UPDATE_STATE_NONE),
- m_NextWakeupType(e_SS_SM_NEXT_WAKEUP_TYPE_NONE),
- m_DramBackupStatus(e_SS_SM_DRAM_BACKUP_NG),
- m_isIlgReset(FALSE),
- m_ResetStatus(e_SS_SM_RESET_STATUS_NONE),
- m_ResetCount(0),
- m_SMCurrentState(SS_SM_READY_TO_LAUNCH_APP),
-
- m_MaxShutdownTime(0),
- m_NbrDebugDumpRspnRecv(0),
- m_isRcvModeInfo(FALSE),
- m_BinaryFilesPath(""),
- m_ConfigFilesPath(""),
- m_pfStopCompleteHandler(
- SysMgrCallback<CSystemManager, &CSystemManager::send_shutdown_complete_response>),
- m_VersionNumberStruct(0, eFrameworkunifiedStatusErrOther),
- m_BuildInfoStr(""),
- m_isRstPending(FALSE),
- m_rstPendingInfo(),
- m_UsingVMPlayer(FALSE),
- NVM_VALID_SIGNATURE(0xBA5EBA11),
- m_lastUserMode(epsumON),
- m_shutdownTrigger(epssdmsdtINVALID),
- m_isImmediateReset(FALSE),
- m_isImmResetReq(FALSE),
- m_needReNotifyStartPrm(FALSE),
- m_pVarCodeStr(NULL),
- m_SSLGroupLaunchMapIterator(NULL),
- m_ModuleLaunchListIter(NULL),
- m_bIsNPP_ServicesStarted(FALSE),
- m_bIsBackupAvail(FALSE),
- m_oSystemLauncher(),
- m_SystemStarter(),
- m_NPPStopSent(FALSE),
- m_userModeChangeReason(epsumcrNOT_AVAILABLE),
- m__CWORD56_CmdHist(SS_SM__CWORD56__CMD_HIST_SIZE),
- m_SMCmdHist(SS_SM_CMD_HIST_SIZE),
- m_TimerCmdHist(SS_SM_TIMER_CMD_HIST_SIZE),
- m_PubCmdHist(SS_SM_PUB_CMD_HIST_SIZE),
- m_ErrHist(SS_SM_ERR_HIST_SIZE),
- m_ClProcessSigFd(-1),
- m_SysMemMonitor(),
- m_FreeMemAvailable(0),
- m_coreFileSizeBytes(0),
- m_BootMicroResetReason(SS_SM_BOOT_MICRO_RESET_REASON_SELF_RESET),
- m_errorEventQueueLocked(FALSE),
- m_isPrevErrEventCompleted(TRUE),
- m_errorEventResult(eFrameworkunifiedStatusOK),
- m_requestedArtifactId(eArtifactIdInterfaceunifiedDebugLog) { // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- m_InitialBoot = true;
-
- m_ResetFactor = PSM_FACTOR_NONE;
-
- m_Wake.powerupType = epswsPWRON;
- m_Wake.up.level = epswlFULLRUN;
-
- m_SystemModeInfo.lastUserMode = m_lastUserMode;
- m_SystemModeInfo.limpHomeCutoff = epslhcINVALID;
- m_SystemModeInfo.productionMode = epspmINVALID;
- m_SystemModeInfo.transportMode = epstmINVALID;
- m_SystemModeInfo.systemMode = epssinfINVALID;
- m_SystemModeInfo.startupStage = epssusfINVALID;
-
- bzero(&m_SMConfig, sizeof(m_SMConfig));
- bzero(&m_startUpConfirmationMsg, sizeof(m_startUpConfirmationMsg));
- bzero(&m_HBReport, sizeof(m_HBReport));
-
- m__CWORD56_HistIter = m__CWORD56_CmdHist.begin();
- m_TimerHistIter = m_TimerCmdHist.begin();
- m_SMHistIter = m_SMCmdHist.begin();
- m_PubHistIter = m_PubCmdHist.begin();
- m_ErrHistIter = m_ErrHist.begin();
-
- ////******************************************************************////
- //// Initialization of enum<=>enum and enum=>string maps ////
- //// ////
-
- //
- // **** Initialization of powerupType enum maps ****
- // Map of System Services powerupType to BOOL enum values
- m_PowerType_to_SSBoolEnumMap[epswsPWRON] = TRUE;
- m_PowerType_to_SSBoolEnumMap[epswsPWROFF] = FALSE;
- //
- // Map of System Services powerupType to System Services User Mode enum values
- m_PowerType_to_SSUserModeEnumMap[epswsPWRON] = epsumON;
- m_PowerType_to_SSUserModeEnumMap[epswsPWROFF] = epsumOFF;
- //
- // Map of BOOL to System Services powerupType enum values
- m_SSBool_to_PowerTypeEnumMap[TRUE] = epswsPWRON;
- m_SSBool_to_PowerTypeEnumMap[FALSE] = epswsPWROFF;
- //
- // **** Initialization of User Mode ( aka Last User Mode ) maps ****
- // Map of BOOL to System Services User Mode enum values
- m_SSBool_to_SSUserModeEnumMap[FALSE] = epsumOFF;
- m_SSBool_to_SSUserModeEnumMap[TRUE] = epsumON;
- //
- // Map of BOOL to System Services User Mode enum values
- m_SSUserMode_to_SSBoolEnumMap[epsumOFF] = FALSE;
- m_SSUserMode_to_SSBoolEnumMap[epsumON] = TRUE;
-
- // LCOV_EXCL_BR_STOP
- //// ////
- //// End of Initialization of enum<=>enum and enum=>string maps ////
- ////******************************************************************////
-
- m_startUpConfirmationMsg.wakeupType = epsstINVALID;
- m_startUpConfirmationMsg.coldStartRequest = epsscrtINVALID;
- m_startUpConfirmationMsg.HWVersion = UINT32_MAX;
- m_startUpConfirmationMsg.matchedHardwareType = UINT32_MAX;
- m_startUpConfirmationMsg.softwareType = UINT32_MAX;
- m_startUpConfirmationMsg.imageType = UINT32_MAX;
- m_startUpConfirmationMsg.majorVersion = UINT32_MAX;
- m_startUpConfirmationMsg.minorVersion = UINT32_MAX;
-
- m_SystemManagerPriority = PR_SS_SYSMANAGER;
-}
-
-/*****************************************************************************/
-/**
- @ingroup: CSystemManager
- @brief: Destructor
- @note: .
- @param void
- @return void
- */
-/*****************************************************************************/
-CSystemManager::~CSystemManager() { // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (NULL != m_pVarCodeStr) {
- delete[] m_pVarCodeStr; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-}
-
-/*****************************************************************************/
-/**
- @ingroup: CSystemManager
- @brief: Initialize_memory Memory initialization processing
- @note: .
- @param
- @return void
- */
-/*****************************************************************************/
-void CSystemManager::Initialize_memory(HANDLE hApp, bool* l_isInitFail, EFrameworkunifiedStatus* l_eStatus_work, BOOL isIllReset) {
- int ret;
- EFrameworkunifiedStatus l_eStatus;
-
- /// Start Process for Realtime USB Logging
- {
- PreLaunchModuleParams l_rtuparam;
- l_rtuparam.LaunchFunc = CreateRtUsb;
- l_rtuparam.relaunchLimit = 1;
- l_rtuparam.name = "realtimeUsbLog";
- l_rtuparam.binaryFileName = TR_USB_PATH;
-/* l_rtuparam.pid = CreateRtUsb();
- if (l_rtuparam.pid == 1) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: CreateRtUsb()");
- } */
- m_PreLaunchModuleList.push_back(l_rtuparam);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- int fd = open("/dev/urandom", O_RDONLY); // LCOV_EXCL_BR_LINE 5: standard lib error
- if (fd == -1) { // LCOV_EXCL_BR_LINE 5: standard lib error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT_ERRNO(0); // LCOV_EXCL_LINE 5: standard lib error
- } else {
- char buf[4];
- ret = static_cast<int>(read(fd, buf, 4)); // LCOV_EXCL_BR_LINE 5: standard lib error
- if (-1 == ret) { // LCOV_EXCL_BR_LINE 5: standard lib error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT_ERRNO(0); // LCOV_EXCL_LINE 5: standard lib error
- } else if (4 != ret) { // LCOV_EXCL_BR_LINE 5: standard lib error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_LINE 5: standard lib error
- } else {
- fprintf(stderr, "WakeupID:%X%X%X%X\n", buf[0], buf[1], buf[2], buf[3]);
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "WakeupID:%X%X%X%X", buf[0], buf[1], buf[2], buf[3]);
- }
- close(fd);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "bootOpt:%s", m_bootOpt.c_str());
-
- *l_eStatus_work = FrameworkunifiedAttachCallbackToDispatcherWithFd(hApp, m_ClProcessSigFd, // LCOV_EXCL_BR_LINE 4: nsfw error
- SysMgrCallback<CSystemManager, &CSystemManager::OnProcessTermDetected>);
-
- if (eFrameworkunifiedStatusOK != *l_eStatus_work) { // LCOV_EXCL_BR_LINE 4: nsfw error
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedAttachCallbackToDispatcherWithFd()");
- *l_isInitFail = true;
- // LCOV_EXCL_STOP
- }
-
- pthread_mutex_init(&sm_hist_mutex, NULL);
-
- ReadPathFromEnvironmentVariables();
- ReadUsingVMPlayerEnvironmentVariable();
-
- // FIXME : Dump information from power_hal by using
-
- if (eFrameworkunifiedStatusOK != (*l_eStatus_work = SetSystemModeInfoStruct())) {
- LOG_ERROR("SetSystemModeInfoStruct()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- *l_isInitFail = true;
- }
-
- // Select configuration file for wakeup services
- BOOL bIsVupMode = (m_SystemModeInfo.systemMode == epssinfPROGRAMMING) ? TRUE : FALSE; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- T_SS_SM_INIT_HOOK_IN_PARAM inPrm;
-
- std::memset(&inPrm, 0, sizeof(inPrm));
- inPrm.bIsVupMode = bIsVupMode;
-
- if (eFrameworkunifiedStatusOK != (*l_eStatus_work = ss_sm_initHook(hApp, &inPrm, &m_productCustomPrm))) {
- SS_ASERT_LOG(0, "ERROR: ss_sm_initHook()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- *l_isInitFail = true;
- }
-
- SetEnvVariableForVupMode(bIsVupMode);
-
- // Get the Version Number
- // GetVersionNumber() will report any errors
- m_VersionNumberStruct.m_eSystemmanagerStatus = GetVersionNumber(m_VersionNumberStruct.m_VersionNumber);
-
- *l_eStatus_work = GetBuildInfo(m_BuildInfoStr);
- l_eStatus = *l_eStatus_work;
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "GetBuildInfo()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- INTERFACEUNIFIEDLOG_WHEN_COMPILED; // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " %s priority is %d", SERVICE_SYSMANAGER, m_SystemManagerPriority);
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, " %s was compiled at %s @ %s", __FILE__, __DATE__, __TIME__);
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, " Host Processor Software Version is '0x%016llX'",
- m_VersionNumberStruct.m_VersionNumber);
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, " Host Processor Build Version is '%s'", m_BuildInfoStr.c_str());
-
- LogESystemmanagerStatusEnums();
- LogProtocolIDs();
-}
-
-/*****************************************************************************/
-/**
- @ingroup: CSystemManager
- @brief: Initialize_callbacks Callback enrollment process
- @note: .
- @param
- @return void
- */
-/*****************************************************************************/
-void CSystemManager::Initialize_callbacks(HANDLE hApp, bool *l_isInitFail, EFrameworkunifiedStatus *l_eStatus_work) {
- EFrameworkunifiedStatus l_eStatus;
-
- m_GroupLaunchTimer = new (std::nothrow) TimerCtrl(eSM_TIMERS_END); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (NULL == m_GroupLaunchTimer) { // LCOV_EXCL_BR_LINE 5: Because new doesn't pass the failure case
- // LCOV_EXCL_START 5: Because new doesn't pass the failure case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- *l_eStatus_work = eFrameworkunifiedStatusNullPointer;
- LOG_ERROR("new(std::nothrow)TimerCtrl(eSM_TIMERS_END)");
- *l_isInitFail = true;
- // LCOV_EXCL_STOP
- }
-
- // LCOV_EXCL_BR_START 11:unexpected branch // NOLINT(whitespace/line_length)
- m_GroupLaunchTimer->Initialize(hApp);
- m_aTimerIDs[eSM_TIMER_GROUP_MONITOR] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager, &CSystemManager::OnGroupLaunchTimerExpiry>);
- m_aTimerIDs[eSM_TIMER_PROCESS_LAUNCH_MONITOR] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager, &CSystemManager::OnProcessLaunchTimerExpiry>);
- m_aTimerIDs[eSM_TIMER_HEARTBEAT_MONITOR] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager, &CSystemManager::OnHeartBeatMonitorTimerExpiry>);
- m_aTimerIDs[eSM_TIMER_PROCESSLAUNCHER_MONITOR] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager,
- &CSystemManager::OnProcessLaunchMonitorTimerExpiry>);
- m_aTimerIDs[eSM_TIMER_CLIENT_START_MONITOR] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager,
- &CSystemManager::OnClientStartMonitorTimerExpiry>);
- m_aTimerIDs[eSM_TIMER_NPP_STATUS_CHECK_MONITOR] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager,
- &CSystemManager::OnNPPStatusCheckMonitorTimerExpiry>);
- m_aTimerIDs[eSM_TIMER__CWORD56__HEARTBEAT_RESPONSE] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager,
- &CSystemManager::On_CWORD56_HeartBeatResponseIntervalTimerExpiry>);
- m_aTimerIDs[eSM_TIMER_LAUNCH_GROUP_TRIGGER_PROC_RESP_TIMER] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager,
- &CSystemManager::OnLaunchGroupTriggerProcessResponseTimerExpiry>);
- m_aTimerIDs[eSM_TIMER_GROUP_LAUNCH_WAIT_TIMER] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager, &CSystemManager::OnGroupLaunchWaitTimeout>);
- m_aTimerIDs[eSM_TIMER_MODULE_CONNECT_WAIT_TIMER] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager, &CSystemManager::OnModuleConnectWaitTimeout>);
- m_aTimerIDs[eSM_TIMER_START_RESP_MONITOR_WAIT_TIMER] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager, &CSystemManager::OnStartRespMonitorTimeout>);
- m_aTimerIDs[eSM_TIMER_SHUTDOWN_COMPLETE_MONITOR] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager,
- &CSystemManager::OnShutdownCompleteMonitorTimeout>);
- m_aTimerIDs[eSM_TIMER_CLIENT_STOP_MONITOR] =
- m_GroupLaunchTimer->CreateTimer(SysMgrCallback<CSystemManager, &CSystemManager::OnClientStopMonitorTimerExpiry>);
-
- FrameworkunifiedProtocolCallbackHandler l_cbArrayAnySource[] = {
- // Command ID, Call back functions
- { SS_SM_PROTOCOL_OPEN_SESSION_REQ, SysMgrCallback<CSystemManager, &CSystemManager::OnOpenSession> },
- { SS_SM_CPU_RESET_REQ, SysMgrCallback<CSystemManager, &CSystemManager::OnCpuResetRequest> }
- };
-
- FrameworkunifiedProtocolCallbackHandler l_cbArrayGroupLaunchService[] = {
- // Command ID, Call back functions
- { SS_SM_GROUP_LAUNCH_TRIGGER, SysMgrCallback<CSystemManager, &CSystemManager::OnLaunchGroupTriggerProcessResponse> }
- };
-
- FrameworkunifiedProtocolCallbackHandler l_cbArrayNPPService[] = {
- // Command ID, Call back functions
- { NPS_NPP_READY_EVENT, SysMgrCallback<CSystemManager, &CSystemManager::OnNPPReadyEventCallback> },
- { NPS_GET_READYSTATUS_ACK, SysMgrCallback<CSystemManager, &CSystemManager::OnNPPReadyStatusCallback> },
- { NPS_NPP_STOP_ACK, SysMgrCallback<CSystemManager, &CSystemManager::OnNppStopComplete> }
- };
-
- FrameworkunifiedProtocolCallbackHandler l_cbArrayPowerService[] = {
- // Command ID, Call back functions
- { SS_SM_POWER_REQUEST_MSG, SysMgrCallback<CSystemManager, &CSystemManager::OnPowerRequestCallback> },
- { SS_SM_WAKEUP_MODULES, SysMgrCallback<CSystemManager, &CSystemManager::OnWakeupCallback> },
- { SS_SM_SYSTEM_MODE_INFO_REQ, SysMgrCallback<CSystemManager, &CSystemManager::OnSystemModeInfoRequest> },
- { SS_SM_INITCOMP_REP, SysMgrCallback<CSystemManager, &CSystemManager::OnInitCompReportCallback> },
- { SS_SM_SHUTDOWN_MODULES, SysMgrCallback<CSystemManager, &CSystemManager::OnShutdownModulesRequest> },
- { SS_SM_FWD_STARTUP_CONFIRMATION_MSG_REQ,
- SysMgrCallback<CSystemManager, &CSystemManager::OnSetStartupConfirmationDataRequest> }
- };
-
- FrameworkunifiedProtocolCallbackHandler l_cbArraySystemManager[] = {
- // Command ID, Call back functions
- { SS_SM_SendTriggerToSelf, SysMgrCallback<CSystemManager, &CSystemManager::OnLaunchGroupSelfTrigger> },
- { SS_SM_DEBUG_DUMP_RSPN, SysMgrCallback<CSystemManager, &CSystemManager::OnDebugDumpResponseReceived> }
- };
- // LCOV_EXCL_BR_STOP
-
-#define ATTACH_CBS_TO_DISPATCHER(L_ARRAY, CALLING_SERVICE_NAME) \
- *l_eStatus_work = l_eStatus = FrameworkunifiedAttachCallbacksToDispatcher(hApp, \
- CALLING_SERVICE_NAME, \
- L_ARRAY, \
- static_cast<UI_32>_countof(L_ARRAY)); \
- if (eFrameworkunifiedStatusOK != l_eStatus) { \
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, \
- " Error: FrameworkunifiedAttachCallbacksToDispatcher(%s) errored: %d/'%s'", \
- #L_ARRAY, \
- l_eStatus, \
- GetStr(l_eStatus).c_str()); \
- *l_isInitFail = true; \
- }
-// End of #define ATTACH_CBS_TO_DISPATCHER( CALLING_SERVICE_NAME, L_ARRAY )
-
- // LCOV_EXCL_BR_START 15: marco defined above
- // Note: This macro will exit this function if the embedded fnc errors.
- ATTACH_CBS_TO_DISPATCHER(l_cbArrayAnySource, FRAMEWORKUNIFIED_ANY_SOURCE);
-
- // Note: This macro will exit this function if the embedded fnc errors.
- ATTACH_CBS_TO_DISPATCHER(l_cbArrayGroupLaunchService, SS_GROUP_LAUNCH_TRIGGER);
-
- // Note: This macro will exit this function if the embedded fnc errors.
- ATTACH_CBS_TO_DISPATCHER(l_cbArrayNPPService, FRAMEWORKUNIFIED_NS_NPSERVICE);
-
- // Note: This macro will exit this function if the embedded fnc errors.
- ATTACH_CBS_TO_DISPATCHER(l_cbArrayPowerService, SERVICE_POWER);
-
- // Note: This macro will exit this function if the embedded fnc errors.
- ATTACH_CBS_TO_DISPATCHER(l_cbArraySystemManager, SERVICE_SYSMANAGER);
- // LCOV_EXCL_BR_STOP
-
- {
- char pathBuf[128];
- // LCOV_EXCL_BR_START 11:unexpected branch // NOLINT(whitespace/line_length)
- snprintf(pathBuf, sizeof(pathBuf), "/proc/%d/oom_score_adj", getpid());
- std::ofstream fo(pathBuf);
- fo << OOM_SCORE_ADJ_MIN << endl;
- fo.close();
- // LCOV_EXCL_BR_STOP
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "set OOM_SCORE_ADJ_MIN(SS_SysManager/%d)", getpid());
- }
-
-#undef ATTACH_CBS_TO_DISPATCHER
-
- // LCOV_EXCL_BR_START 4: nsfw error
- *l_eStatus_work = FrameworkunifiedSubscribeNotificationWithCallback(hApp, NTFY_BackupMgr_Availability,
- SysMgrCallback<CSystemManager, &CSystemManager::OnBackupMgrAvailCallback>);
- // LCOV_EXCL_BR_STOP
- if (eFrameworkunifiedStatusOK != *l_eStatus_work) { // LCOV_EXCL_BR_LINE 4: nsfw error
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedSubscribeNotificationWithCallback()");
- *l_isInitFail = true;
- // LCOV_EXCL_STOP
- }
-
- if (eFrameworkunifiedStatusOK != (*l_eStatus_work = ErrorEventInit(hApp))) { // LCOV_EXCL_BR_LINE 6: function do not return error
- // LCOV_EXCL_START 6: function do not return error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("ErrorEventInit()");
- *l_isInitFail = true;
- // LCOV_EXCL_STOP
- }
-
-#ifndef SS_SM_SKIP_HEARTBEAT_INIT
- // LCOV_EXCL_BR_START 6: function do not return error, expect nsfw error
- if (eFrameworkunifiedStatusOK != (*l_eStatus_work = init_Heartbeat(hApp))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 6: function do not return error, expect nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("init_HeartBeat()");
- *l_isInitFail = true;
- // LCOV_EXCL_STOP
- }
-#else
-#warning Test code - NOT calling init_Heartbeat(hApp)
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: NOT calling init_Heartbeat(hApp)");
-#endif
-#undef SS_SM_SKIP_HEARTBEAT_INIT
-
- // LCOV_EXCL_BR_START 6: function do not return error, expect nsfw error
- if (eFrameworkunifiedStatusOK != (*l_eStatus_work = init_process_launcher(hApp))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 6: function do not return error, expect nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("init_process_launcher()");
- *l_isInitFail = true;
- // LCOV_EXCL_STOP
- }
-
- // LCOV_EXCL_BR_START 6: function do not return error, expect init error
- if (eFrameworkunifiedStatusOK != (*l_eStatus_work = start_process_launching(hApp))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 6: function do not return error, expect init error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("start_process_launching()");
- *l_isInitFail = true;
- // LCOV_EXCL_STOP
- }
-
- // LCOV_EXCL_BR_START 6: function do not return error, expect nsfw error
- if (eFrameworkunifiedStatusOK != (*l_eStatus_work = init_sysmem_monitor(hApp))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 6: function do not return error, expect nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("init_sysmem_monitor()");
- *l_isInitFail = true;
- // LCOV_EXCL_STOP
- }
-
- /// Internal thread monitoring start
- // LCOV_EXCL_BR_START 11:unexpected branch // NOLINT(whitespace/line_length)
- m_GroupLaunchTimer->StartTimer(m_aTimerIDs[eSM_TIMER_HEARTBEAT_MONITOR],
- SS_HEARTBEAT_MONITOR_TIMER_CONFIG, 0,
- SS_HEARTBEAT_MONITOR_TIMER_CONFIG, 0);
-
- m_GroupLaunchTimer->StartTimer(
- m_aTimerIDs[eSM_TIMER_PROCESSLAUNCHER_MONITOR],
- SS_PROCESSLAUNCHER_MONITOR_TIMER_CONFIG, 0,
- SS_PROCESSLAUNCHER_MONITOR_TIMER_CONFIG, 0);
-
- m_GroupLaunchTimer->StartTimer(
- m_aTimerIDs[eSM_TIMER_NPP_STATUS_CHECK_MONITOR],
- SS_NPP_STATUS_CHECK_MONITOR_TIME_SEC, 0,
- SS_NPP_STATUS_CHECK_MONITOR_TIME_SEC, 0);
- // LCOV_EXCL_BR_STOP
-}
-
-
-/*****************************************************************************/
-/**
- @ingroup: CSystemManager
- @brief: Initialization
- @note: .
- @param HANDLE hApp
- @return void
- */
-/*****************************************************************************/
-EFrameworkunifiedStatus CSystemManager::Initialize(HANDLE hApp) {
- bool l_isInitFail = false;
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- int ret;
- PsmFactorT l_startup_factor;
-
- // Need to call Lock System Initialize API once in the system
- ret = CL_LockSystemInit();
- if (ret != 0) {
- fprintf(stderr, "SS_SysManager/%s/Error: CL_LockSystemInit() errored: %d\n", __FUNCTION__, ret);
- }
-
- ret = CL_LockProcessInit();
- if (ret != 0) {
- fprintf(stderr, "SS_SysManager/%s/Error: CL_LockProcessInit() errored: %d\n", __FUNCTION__, ret);
- l_isInitFail = true;
- }
-
- ret = PsmGetStartupFactor(hApp, &l_startup_factor);
- if (ret == 0) {
- if ((static_cast<UI_32>(l_startup_factor) & PSM_RESET_HISTORY) == PSM_RESET_HISTORY) {
- DGCODE_RET_API l_ret = DGCODE_RET_ERROR;
- uint64_t l_SystemResetRobCode = 0;
- DGCODE_ROB_SSR_INFO l_info;
- if (l_startup_factor == PSM_FACTOR_AGL_WITH_HISTORY) {
- l_SystemResetRobCode = 0x2219; // AGL cause
- } else if (l_startup_factor == PSM_FACTOR_TIER1_WITH_HISTORY) {
- l_SystemResetRobCode = 0x221A; // Tier1 cause
- } else if (l_startup_factor == PSM_FACTOR_USER_WITH_HISTORY) {
- l_SystemResetRobCode = 0x8027; // USER cause
- } else {
- // No processing
- }
-
- if (l_SystemResetRobCode != 0) {
- memset(&l_info, 0x00, sizeof(DGCODE_ROB_SSR_INFO));
-
- l_ret = Diag_PutRoBInfo(hApp, l_SystemResetRobCode, &l_info);
- if (l_ret == DGCODE_RET_ERROR) {
- LOG_ERROR("Diag_PutRoBInfo()");
- }
- }
- }
- } else {
- (void)fprintf(stderr, "SS_SysManager/%s/ERROR:start-up factor not get\n", __FUNCTION__);
- }
-
- m_isIlgReset = (false == GetSyscomPowerStatusInfo(hApp)) ? TRUE : FALSE;
- if (m_isIlgReset || ("elog" == m_bootOpt)) {
- fprintf(stderr, "SS_SysManager/%s/Error: ILGRST LOG SAVE\n", __func__);
- StoreDebugLogs(hApp, SS_STORELOGS_ILLEGAL);
- } else {
- StoreDebugLogs(hApp, SS_STORELOGS_ACCOFFON);
- }
-
- if (m_isIlgReset == TRUE) {
- // overwrite AGL_ILLRESET_FLAG.
- uint32_t tmp = static_cast<uint32_t>(m_isIlgReset);
- if (PowerHalSetResetInfo(AGL_ILLRESET_FLAG, tmp)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not set AGL_ILLRESET_FLAG to power_hal");
- }
- } else {
- // keep last value of AGL_ILLRESET_FLAG.
- }
-
- FRAMEWORKUNIFIED_SET_ZONES();
- NsLogSetLogMethod(LPRINT | LMSGQ);
- // FRAMEWORKUNIFIEDLOG can not be used until this line
-
- m_ClProcessSigFd = CL_ProcessInit(); // LCOV_EXCL_BR_LINE 4: nsfw error
- if (m_ClProcessSigFd == -1) { // LCOV_EXCL_BR_LINE 4: nsfw error
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: CL_ProcessInit()");
- l_isInitFail = true;
- // LCOV_EXCL_STOP
- }
-
- ret = CL_MonitorInit(CL_MONITOR_INIT_SYSTEM);
- if(ret != 0) {
- fprintf(stderr, "SS_SysManager/%s/Error: CL_MonitorInit() errored: %d\n", __FUNCTION__, ret);
- l_isInitFail = true;
- }
-
- // Threads MUST NOT be started until this line
-// ===== Initialization No.1
- Initialize_memory(hApp, &l_isInitFail, &l_eStatus, m_isIlgReset);
-
-// ===== Initialization No.2
- Initialize_callbacks(hApp, &l_isInitFail, &l_eStatus);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CSystemManager::SetEnvVariableForVupMode(BOOL bIsVupMode) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- const CHAR SmVupModeEnvVariable[] = "SM_VUP_MODE";
- const CHAR *l_pValue = bIsVupMode ? "y" : "n"; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (0 != setenv(SmVupModeEnvVariable, l_pValue, 1)) { // LCOV_EXCL_BR_LINE 5: standard lib error
- // LCOV_EXCL_START 5: standard lib error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT_ERRNO(0);
- l_eStatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- return l_eStatus;
-}
-
-int CSystemManager::CreateRtUsb(void) {// LCOV_EXCL_START 8: dead code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- int pid = -1;
- int ret;
-
- ret = mkdir("/var/run", 0775);
- if ((ret < 0) && (errno != EEXIST)) {
- return -1;
- }
- pid = fork();
- switch (pid) {
- case 0: /* child process */
- {
- struct sched_param param;
- int policy;
- const char *exec;
- exec = const_cast<char *>(TR_USB_PATH);
- param.sched_priority = 0;
- policy = SCHED_OTHER;
- if (sched_setscheduler(getpid(), policy, &param) < 0) {
- SS_ASERT(0);
- _exit(-1);
- }
- if (setpriority(PRIO_PROCESS, getpid(), 0) < 0) {
- SS_ASERT(0);
- _exit(-1);
- }
- // exec
- if (execlp(exec, exec, NULL) < 0) {
- SS_ASERT(0);
- _exit(-1);
- }
- _exit(0);
- }
- break;
-
- case -1: /* error */
- SS_ASERT(0);
- goto ERROR;
-
- default: /* parent process */
- break;
- }
-
-ERROR:
- return pid;
-}// LCOV_EXCL_STOP
-
-bool CSystemManager::StoreDebugLogs(const HANDLE h_app,
- SS_STORELOGS_OPE_TYPE type) {
- bool isMountRamd = false;
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- int pid;
-
- if (!GetDramPowerStatusInfo(h_app)) {
- goto ERROR;
- } else if (access(SS_SM_TEMP_FILE_FOR_STORE_LOGS, F_OK) == 0) {
- fprintf(stderr, "SS_SysManager/%s/Error: Skip StoreDebugLogs\n", __FUNCTION__);
- goto ERROR;
- }
-
- isMountRamd = true;
-
- if (type == SS_STORELOGS_ILLEGAL) {
- UI_32 l_ErrLogCount = 0;
- if (PowerHalGetResetInfo(AGL_ERRLOG_COUNTER, &l_ErrLogCount)) {
- fprintf(stderr, "SS_SysManager/%s/Error: "
- "Could not read AGL_ERRLOG_COUNTER from power_hal\n", __FUNCTION__);
- goto ERROR;
- }
-
- if (l_ErrLogCount >= SS_SM_ERR_LOGGING_LIMIT) {
- fprintf(stderr, "SS_SysManager/%s/Error: "
- "Skip StoreDebugLogs by continuous error l_ErrLogCount=%lu\n",
- __FUNCTION__, l_ErrLogCount);
- goto ERROR;
- }
-
- l_ErrLogCount++;
- if (PowerHalSetResetInfo(AGL_ERRLOG_COUNTER, l_ErrLogCount)) {
- // Just logging, don't go to ERROR.
- fprintf(stderr, "SS_SysManager/%s/Error: "
- "Could not write AGL_ERRLOG_COUNTER to power_hal\n", __FUNCTION__);
- }
- } else if (type == SS_STORELOGS_ACCOFFON) {
- if (0 != unlink(SS_LOGGER_SAVE_INTERFACEUNIFIEDLOG_FLAG)) {
- fprintf(stderr, "SS_SysManager/%s/Error: ACCOFFON LOG SAVE\n", __FUNCTION__);
- } else {
- goto ERROR;
- }
- }
-
- pid = fork();
- if (pid == 0) {
- int fd = open(SS_SM_TEMP_FILE_FOR_STORE_LOGS,
- O_CREAT | O_TRUNC | O_RDWR, 00664);
- if (-1 == fd) { // LCOV_EXCL_BR_LINE 5:fd must not be -1
- fprintf(stderr, "SS_SysManager/%s/Error: Failed open %s errno: %d\n",
- __FUNCTION__, SS_SM_TEMP_FILE_FOR_STORE_LOGS, errno);
- } else {
- fsync(fd);
- close(fd);
- }
- FRAMEWORKUNIFIED_SET_ZONES(); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- NsLogSetLogMethod(LPRINT | LMSGQ);
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = SS_LoggerStoreLogs(type))) { // LCOV_EXCL_BR_LINE 200: always return OK
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- fprintf(stderr, "SS_SysManager/%s/Error: SS_LoggerStoreDebugLogs() errored: %d\n", __FUNCTION__, l_eStatus); // LCOV_EXCL_LINE 200: always return OK // NOLINT(whitespace/line_length)
- }
- // Close accessing the RAMD by FRAMEWORKUNIFIEDLOG for RAMD initialization
- NsForceClose();
-
- if (0 != unlink(SS_SM_TEMP_FILE_FOR_STORE_LOGS)) {
- SS_ASERT_ERRNO(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
-
- exit(0);
- } else if (pid == -1) { // LCOV_EXCL_BR_LINE 5:fork error case
- // LCOV_EXCL_START 5:fork error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- fprintf(stderr, "SS_SysManager/%s/Error: ASSERT %d\n", __FUNCTION__, __LINE__);
- // LCOV_EXCL_STOP
- } else {
- if (-1 == waitpid(pid, NULL, 0)) { // LCOV_EXCL_BR_LINE 5:waitpid error case
- // LCOV_EXCL_START 5:waitpid error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- fprintf(stderr, "SS_SysManager/%s/Error: ASSERT %d\n", __FUNCTION__, __LINE__);
- // LCOV_EXCL_STOP
- }
- }
- ERROR:
- return isMountRamd;
-}
-
-#define SS_SM_SCAC_DEVICE_NODE "/dev/scac_driver"
-#define SS_SM_SCAC_CMD_SHUTDOWN 0x3000
-
-EFrameworkunifiedStatus CSystemManager::SecureChipOff() {
- static bool isOffDone = false;
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- int32_t fd;
- int32_t res;
-
- if (!isOffDone) {
- fd = open(SS_SM_SCAC_DEVICE_NODE, O_RDWR);
- if (fd < 0) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "open(%s) ERR", SS_SM_SCAC_DEVICE_NODE);
- l_eStatus = eFrameworkunifiedStatusFail;
- } else {
- res = ioctl(fd, SS_SM_SCAC_CMD_SHUTDOWN);
- if (res < 0) { // LCOV_EXCL_BR_LINE 5: standard lib error
- // LCOV_EXCL_START 5: standard lib error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "ioctl(SS_SM_SCAC_CMD_SHUTDOWN) ERR");
- l_eStatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- close(fd);
- }
-
- isOffDone = true;
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "Skip Chip Off");
- }
-
- return l_eStatus;
-}
-
-UI_32 CSystemManager::InProgressStateToSendMsg() const {
- UI_32 l_iCmd = SS_SYSTEM_MANAGER_PROTOCOL_ENDING_INDEX;
- switch (m_SMCurrentState) {
- case SS_SM_APPS_PRE_START_IN_PROGRESS:
- l_iCmd = SS_SM_PRE_START;
- break;
- case SS_SM_APPS_PRE_STOP_IN_PROGRESS:
- l_iCmd = SS_SM_PRE_STOP;
- break;
- case SS_SM_APPS_BACKGROUND_START_IN_PROGRESS:
- l_iCmd = SS_SM_BACKGROUND_START;
- break;
- case SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS:
- l_iCmd = SS_SM_BACKGROUND_STOP;
- break;
- case SS_SM_APPS_START_IN_PROGRESS:
- l_iCmd = SS_SM_START;
- break;
- default:
- break;
- }
- return l_iCmd;
-}
-
-SMModuleState CSystemManager::InProgressStateToState() const {
- SMModuleState l_state = MODULE_STATE_INVALID;
- switch (m_SMCurrentState) {
- case SS_SM_APPS_PRE_START_IN_PROGRESS:
- l_state = MODULE_STATE_STARTED_PRE;
- break;
- case SS_SM_APPS_PRE_STOP_IN_PROGRESS:
- l_state = MODULE_STATE_STOPPED_PRE;
- break;
- case SS_SM_APPS_BACKGROUND_START_IN_PROGRESS:
- l_state = MODULE_STATE_STARTED_BACKGROUND;
- break;
- case SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS:
- l_state = MODULE_STATE_STOPPED_BACKGROUND;
- break;
- case SS_SM_APPS_START_IN_PROGRESS:
- l_state = MODULE_STATE_STARTED;
- break;
- default:
- break;
- }
- return l_state;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup SetSystemModeInfoStruct
-/// Read ( or initialize ) NVM and set the SystemModeInfo structure
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::SetSystemModeInfoStruct() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- if (m_UsingVMPlayer) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " 'm_UsingVMPlayer' is True,"
- " using default SystemModeInfo values");
- m_SystemModeInfo.limpHomeCutoff = epslhcDISABLED;
- m_SystemModeInfo.productionMode = epspmDISABLED;
- m_SystemModeInfo.transportMode = epstmDISABLED;
- m_SystemModeInfo.systemMode = epssinfNORMAL;
- m_DataResetMode = e_SS_SM_DATA_RESET_MODE_NONE;
- m_ResetCount = 0;
- m_ProgUpdateState = SS_SM_PROG_UPDATE_STATE_NONE;
- // Don't change the m_SystemModeInfo.startupStage.
- // It is set dynamically as System Manager initializes the _CWORD102_.
- } else {
- uint32_t tmp = 0;
- if (PowerHalGetResetInfo(AGL_RESET_COUNTER, &m_ResetCount)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not read AGLRESET_COUNTER from power_hal, assume to 0");
- m_ResetCount = 0;
- }
-
- if (PowerHalGetResetInfo(AGL_PROGUPDATE_STATE, &m_ProgUpdateState)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not read AGL_PROGUPDATE_STATE from power_hal, "
- "assume to SS_SM_PROG_UPDATE_STATE_NONE");
- m_ProgUpdateState = SS_SM_PROG_UPDATE_STATE_NONE;
- }
-
- if (PowerHalGetResetInfo(AGL_DATARESET_STATE, &tmp)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not read AGL_DATARESET_STATE from power_hal, "
- "assume to e_SS_SM_DATA_REESET_MODE_NONE");
- m_DataResetMode = e_SS_SM_DATA_RESET_MODE_NONE;
- } else {
- m_DataResetMode = static_cast<ESMDataResetModeInfo>(tmp);
- }
- m_SystemModeInfo.systemMode = epssinfNORMAL;
- } // End else ! m_UsingVMPlayer
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::SetSystemModeInfoStruct()
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup ClearDramBackupInfo
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::ClearDramBackupInfo(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- int ret;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "PsmClrRamJudgeFlgPower()");
- ret = PsmClrRamJudgeFlgPower(hApp);
- if (ret != 0) { // LCOV_EXCL_BR_LINE 11: Excluded due to gcov constraints (others)
- SS_ASERT_ERRNO(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- l_eStatus = eFrameworkunifiedStatusFail;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup CloseApplication
-/// Process request to close Application
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::CloseApplication(HANDLE hApp) { // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = FrameworkunifiedPublishServiceAvailability(hApp, FALSE))) {
- LOG_ERROR("FrameworkunifiedPublishServiceAvailability(hApp,FALSE)");
- } else if (eFrameworkunifiedStatusOK != (l_eStatus =
- FrameworkunifiedUnRegisterServiceAvailabilityNotification(hApp))) {
- LOG_ERROR("FrameworkunifiedUnRegisterServiceAvailabilityNotification(hApp)");
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Successful");
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::CloseApplication(HANDLE hApp)
-// LCOV_EXCL_STOP
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup SMStateStartCompleteEntry
-/// entry for SM module state(SS_SM_APPS_START_COMPLETE)
-///
-/// \param
-///
-/// \return EFrameworkunifiedStatus
-///////////////////////////////////////////////////////////////////////////////
-VOID CSystemManager::SMStateStartCompleteEntry(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus;
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "All %d groups have been sent system_manager protocol message, sending Start Complete to _CWORD56_",
- m_SystemStarter.get_id());
- CALL_AND_LOG_STATUS_IF_ERRORED( // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- send_power_request_complete_response(hApp, "Startup")); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- CALL_AND_LOG_STATUS(PublishPowerOnOffNotification(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- if (m_InitialBoot == true) {
- m_InitialBoot = false;
-
- const ESMServiceWakeupStatus l_svcWupStatus = e_SS_SM_SVC_WAKEUP_STATUS_COMPLETE;
-
- CALL_AND_LOG_STATUS( // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- FrameworkunifiedNPPublishNotification(hApp, NTFY_SSServiceWakeupStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- &l_svcWupStatus, sizeof(ESMServiceWakeupStatus))); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- // If all modules are restarted, a passive warning will be issued
- // indicating that Heartbeat is already running.
-
- UI_32 l_list_num = static_cast<UI_32>(m_HBList.size());
- if (SS_MAX_NUM_MODULES < l_list_num) {
- l_list_num = SS_MAX_NUM_MODULES;
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warn: SS_MAX_NUM_MODULES '%d' < m_HBList.size '%d'",
- SS_MAX_NUM_MODULES, l_list_num);
- }
-
- CHAR send_data[sizeof(l_list_num)
- + (l_list_num * SS_SM_HB_MAX_PROC_NAME_SIZE)
- + sizeof(m_SMConfig.HBConfig)];
- CHAR* p_prm = &send_data[0];
-
- memcpy(p_prm, reinterpret_cast<char *>(&m_SMConfig.HBConfig), sizeof(m_SMConfig.HBConfig));
- p_prm = p_prm + sizeof(m_SMConfig.HBConfig);
- memcpy(p_prm, reinterpret_cast<char *>(&l_list_num), sizeof(l_list_num));
- p_prm = p_prm + sizeof(l_list_num);
-
- for (UI_32 i = 0; i < l_list_num; i++) {
- snprintf(p_prm, SS_SM_HB_MAX_PROC_NAME_SIZE, "%s", m_HBList[i].c_str());
- p_prm = p_prm + SS_SM_HB_MAX_PROC_NAME_SIZE;
- }
- l_eStatus = SendRequestToHeartBeat(hApp, SS_HEARTBEAT_START, &send_data, static_cast<UI_32>(sizeof(send_data))); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "SendRequestToHeartBeat()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- m_DataResetMode = e_SS_SM_DATA_RESET_MODE_NONE;
- {
- uint32_t tmp = static_cast<uint32_t>(m_DataResetMode);
- if (PowerHalSetResetInfo(AGL_DATARESET_STATE, tmp)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not set AGL_DATARESET_STATE to power_hal");
- }
- }
-
- m_ProgUpdateState = SS_SM_PROG_UPDATE_STATE_NONE;
- if (PowerHalSetResetInfo(AGL_PROGUPDATE_STATE, m_ProgUpdateState)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not set AGL_PROGUPDATE_STATE to power_hal");
- }
-
- m_isIlgReset = FALSE;
- {
- uint32_t tmp = static_cast<uint32_t>(m_isIlgReset);
- if (PowerHalSetResetInfo(AGL_ILLRESET_FLAG, tmp)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not set AGL_ILLRESET_FLAG to power_hal");
- }
- }
-
- if (access(SS_SM_TEMP_FILE_FOR_STORE_LOGS, F_OK) == 0) {
- SS_ASERT_ERRNO(0 == unlink(SS_SM_TEMP_FILE_FOR_STORE_LOGS)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- }
-
- for (vector<std::string>::iterator protectedSvc =
- m_productCustomPrm.protectedSvcs.begin();
- protectedSvc != m_productCustomPrm.protectedSvcs.end();
- protectedSvc++) {
- ModuleLaunchListIter l_ModuleListIter;
- l_eStatus = GetModuleIterator(protectedSvc->c_str(), l_ModuleListIter);
- if (eFrameworkunifiedStatusOK == l_eStatus) {
- if ((l_ModuleListIter->IsModuleState(MODULE_STATE_STARTED))
- || (l_ModuleListIter->IsModuleState(MODULE_STATE_LAUNCHED)
- && !l_ModuleListIter->is_start_required)) {
- char pathBuf[128];
-
- snprintf(pathBuf, 128, "/proc/%d/oom_score_adj", l_ModuleListIter->pid); // NOLINT
- std::ofstream fo(pathBuf); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- fo << OOM_SCORE_ADJ_MIN << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- fo.close(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "set OOM_SCORE_ADJ_MIN(%s/%d)",
- l_ModuleListIter->name.c_str(), l_ModuleListIter->pid);
- } else {
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- }
- }
-
- for (vector<std::string>::iterator groupRelaunchSvc =
- m_productCustomPrm.groupRelaunchSvcs.begin();
- groupRelaunchSvc != m_productCustomPrm.groupRelaunchSvcs.end();
- groupRelaunchSvc++) {
- ModuleLaunchListIter l_ModuleListIter;
- l_eStatus = GetModuleIterator(groupRelaunchSvc->c_str(), l_ModuleListIter);
- if (eFrameworkunifiedStatusOK == l_eStatus) {
- if ((l_ModuleListIter->IsModuleState(MODULE_STATE_STARTED))
- || (l_ModuleListIter->IsModuleState(MODULE_STATE_LAUNCHED)
- && !l_ModuleListIter->is_start_required)) {
- GroupRelaunchModuleParams l_param; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_param.name = l_ModuleListIter->name.c_str();
- m_GroupRelaunchModuleList.push_back(l_param);
-
- if (l_ModuleListIter->retry_cnt > m_GroupRelaunchLimit) {
- m_GroupRelaunchLimit = l_ModuleListIter->retry_cnt;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "GroupRelaunchSvcs:%s(%d)",
- l_ModuleListIter->name.c_str(), l_ModuleListIter->pid);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "%s is not Launched", groupRelaunchSvc->c_str());
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "%s is not exist", groupRelaunchSvc->c_str());
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "GroupRelaunchLimit:%d", m_GroupRelaunchLimit);
-
- SendDeferMsg(hApp); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-} // End of VOID CSystemManager::SMStateStartCompleteEntry()
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup SMStateEntry
-/// entry for SM module state
-///
-/// \param
-///
-/// \return EFrameworkunifiedStatus
-///////////////////////////////////////////////////////////////////////////////
-VOID CSystemManager::SMStateEntry(HANDLE hApp, SS_SMModuleState l_SMState) {
- switch (l_SMState) {
- case SS_SM_APPS_START_COMPLETE:
- case SS_SM_APPS_PRE_RUN_COMPLETE:
- case SS_SM_APPS_BACKGROUND_RUN_COMPLETE:
- SMStateStartCompleteEntry(hApp);
- break;
- default:
- break;
- }
-} // End of VOID CSystemManager::SMStateEntry(SS_SMModuleState l_SMState)
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup SMStateExit
-/// exit for SM module state
-///
-/// \param
-///
-/// \return EFrameworkunifiedStatus
-///////////////////////////////////////////////////////////////////////////////
-VOID CSystemManager::SMStateExit(HANDLE hApp, SS_SMModuleState l_SMState) {
- switch (l_SMState) {
- case SS_SM_APPS_START_COMPLETE:
- break;
- default:
- break;
- }
-} // End of VOID CSystemManager::SMStateExit(SS_SMModuleState l_SMState)
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup SMSetState
-/// set module state
-///
-/// \param
-///
-/// \return EFrameworkunifiedStatus
-///////////////////////////////////////////////////////////////////////////////
-VOID CSystemManager::SMSetState(HANDLE hApp, SS_SMModuleState l_SMNewState) {
- // FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "%s -> %s",
- GetStr(m_SMCurrentState).c_str(), GetStr(l_SMNewState).c_str());
-
- if (l_SMNewState != m_SMCurrentState) {
- SMStateExit(hApp, m_SMCurrentState);
-
- m_SMCurrentState = l_SMNewState;
-
- SMStateEntry(hApp, m_SMCurrentState);
- }
- // FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup register_all_notification_callbacks
-/// register all notifications and callbacks with NP_NPS
-/// this function gets called when NP_NPS reply launch complete
-///
-/// \param
-///
-/// \return EFrameworkunifiedStatus
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::register_all_notification_callbacks(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FrameworkunifiedNotificationsList userModeNotificationsBOOL[] = { {
- NTFY_SSSystemMgrPowerOnOff, sizeof(BOOL), eFrameworkunifiedStateVar }, {
- NTFY_SSSystemMgrUserMode, sizeof(BOOL), eFrameworkunifiedStateVar } };
-
- FrameworkunifiedNotificationsList userModeNotificationsStruct[] = { {
- NTFY_SSSystemMgrPowerOnOff,
- sizeof(T_SS_SM_UserModeOnOffNotification_Struct), eFrameworkunifiedStateVar }, {
- NTFY_SSSystemMgrUserMode,
- sizeof(T_SS_SM_UserModeOnOffNotification_Struct), eFrameworkunifiedStateVar } };
-
- FrameworkunifiedNotificationsList sm_notifications[] = {
- { NTFY_SSSystemMgrStartUpType, sizeof(EPWR_SC_WAKEUP_TYPE), eFrameworkunifiedStateVar },
- { NTFY_SSSystemMgrDataReset, sizeof(ESMDataResetType), eFrameworkunifiedStateVar },
- { NTFY_SSSystemMgrShutdownStarted, 0, eFrameworkunifiedStateVar },
- { NTFY_SSServiceWakeupStatus, sizeof(ESMServiceWakeupStatus), eFrameworkunifiedStateVar },
- { NTFY_SSNeedAplRestart, 0, eFrameworkunifiedStateVar } };
-
- if (m_SMConfig.UMConfig.IsUserModeNotificationABOOL) {
- l_eStatus = FrameworkunifiedNPRegisterNotifications(hApp, userModeNotificationsBOOL,
- static_cast<UI_32>(_countof(userModeNotificationsBOOL)));
- } else {
- l_eStatus = FrameworkunifiedNPRegisterNotifications(hApp,
- userModeNotificationsStruct,
- static_cast<UI_32>(_countof(userModeNotificationsStruct)));
- }
-
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- LOG_ERROR("FrameworkunifiedNPRegisterNotifications(userModeNotifications)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedNPRegisterNotifications(hApp, sm_notifications, static_cast<UI_32>(_countof(sm_notifications))))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedNPRegisterNotifications(sm_notifications)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedRegisterServiceAvailabilityNotification(hApp, NTFY_SSSystemMgrAvailability))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedRegisterServiceAvailabilityNotification(" // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- NTFY_SSSystemMgrAvailability ")"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedPublishServiceAvailability(hApp, TRUE))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedPublishServiceAvailability('NTFY_SSSystemMgrAvailability ', TRUE)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else {
- LOG_SUCCESS("FrameworkunifiedPublishServiceAvailability('NTFY_SSSystemMgrAvailability ', TRUE)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- REC_HIST_IF_SUCCESSFUL(NTFY_SSSystemMgrAvailability, m_PubCmdHist, // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- m_PubHistIter, "", l_eStatus); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup
-///
-/// \param
-///
-/// \return
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::init_Heartbeat(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FrameworkunifiedProtocolCallbackHandler hb_protocol_callbacks[] = { {
- SS_HEARTBEAT_PERIODIC_RESP, SysMgrCallback<CSystemManager,
- &CSystemManager::OnHeartBeatThreadHeartbeatResponse> }, {
- SS_HEARTBEAT_ERROR_DETECTED, SysMgrCallback<CSystemManager,
- &CSystemManager::OnHeartBeatErrorDetected> }, {
- SS_HEARTBEAT_AVAIL_CHECK_RESP, SysMgrCallback<CSystemManager,
- &CSystemManager::OnCheckAvailResponse> } }; // LCOV_EXCL_BR_LINE 11:unexpected branch
-
- // Subscribe to Notifications (All required notifications)
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedAttachCallbacksToDispatcher(hApp, SS_SMHeartbeat, hb_protocol_callbacks, static_cast<UI_32>(_countof(hb_protocol_callbacks))))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedAttachCallbacksToDispatcher(hb_notification_handlers)");
- // LCOV_EXCL_STOP
- } else if (NULL == (m_hHeartbeatThread.m_ThreadHdl = FrameworkunifiedCreateChildThreadWithPriority(hApp, SS_SMHeartbeat, HBThreadStart, HBThreadStop, PR_SMHEARTBEAT))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusThreadNotExist;
- m_hHeartbeatThread.m_ThreadState = eSM_ThreadNotExist;
- LOG_ERROR("FrameworkunifiedCreateChildThreadWithPriority(hApp, SS_SMHeartbeat)");
- // LCOV_EXCL_STOP
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedStartChildThread(hApp, m_hHeartbeatThread.m_ThreadHdl, 0, NULL))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- m_hHeartbeatThread.m_ThreadState = eSM_ThreadNotExist;
- LOG_ERROR("FrameworkunifiedStartChildThread(SS_SMHeartbeat)");
- // LCOV_EXCL_STOP
- } else {
- m_hHeartbeatThread.m_ThreadState = eSMThreadIsFine;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CSystemManager::init_sysmem_monitor(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FrameworkunifiedProtocolCallbackHandler sysmem_protocol_callbacks[] = { {
- eSysMemThrdCmd_SYS_LOW_MEMORY, SysMgrCallback<CSystemManager,
- &CSystemManager::OnLowSystemMemory> } }; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- // LCOV_EXCL_BR_START 4: For setting the initialization conditions at SystemManager startup
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = FrameworkunifiedAttachCallbacksToDispatcher(
- hApp,
- m_SysMemMonitor.GetThreadName().c_str(), sysmem_protocol_callbacks,
- static_cast<UI_32>(_countof(sysmem_protocol_callbacks))))) {
- // LCOV_EXCL_BR_STOP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedAttachCallbacksToDispatcher()"); // LCOV_EXCL_LINE 4: For setting the initialization conditions at SystemManager startup
- } else {
- m_SysMemMonitor.SetSLMConfigData(m_SMConfig.SLMConfig); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_eStatus = m_SysMemMonitor.Initialize(hApp); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- LOG_ERROR_REC_HIST_IF_ERRORED // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup
- (l_eStatus, "m_SysMemMonitor.Initialize(hApp);"); // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup
-///
-/// \param
-///
-/// \return
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnGroupLaunchTimerExpiry(HANDLE hThread) { // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- UI_32 l_launchID = m_oSystemLauncher.get_id();
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, " Received from group %d", l_launchID);
- REC_HIST_IF_SUCCESSFUL("SM_TIMER_GROUP_MONITOR", m_TimerCmdHist,
- m_TimerHistIter, "TIMER", l_eStatus);
-
- LogGroupModulesState(l_launchID,
- " Group launch timer expired, processing next group.");
-
- if (NULL == hThread) {
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- LOG_ERROR("NULL == hThread");
- } else {
- // FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "Timer expired for group id,%d",m_oSystemLauncher.get_id());
- if (!m_oSystemLauncher.is_end()) {
- l_launchID = m_oSystemLauncher.advance_id();
- if (eFrameworkunifiedStatusOK != (l_eStatus = OnLaunchGroup(hThread))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: OnLaunchGroup(%d) errored: %d/'%s'", l_launchID,
- l_eStatus, GetStr(l_eStatus).c_str());
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnGroupLaunchTimerExpiry( HANDLE hThread )
-// LCOV_EXCL_STOP
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup
-///
-/// \param
-///
-/// \return
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::FindNameOfTerminatedProcess(SI_32 f_pid, SS_String &f_ModuleName) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusDbRecNotFound;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.begin();
- if (l_GroupIterator == m_MapProclaunchGrps.end()) { // LCOV_EXCL_BR_LINE 200: Group Map cannot be empty
- // LCOV_EXCL_START 200: Group Map cannot be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error : Group Map empty"); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- // LCOV_EXCL_STOP
- } else {
- BOOL l_bModuleFound = FALSE;
- for (; (FALSE == l_bModuleFound)
- && (l_GroupIterator != m_MapProclaunchGrps.end());
- l_GroupIterator++) {
- ModuleLaunchListIter l_ModuleListIterator =
- l_GroupIterator->second.modules.begin();
- for (; (FALSE == l_bModuleFound)
- && (l_ModuleListIterator
- != l_GroupIterator->second.modules.end());
- l_ModuleListIterator++) {
- if (l_ModuleListIterator->pid == f_pid) {
- l_bModuleFound = TRUE;
- f_ModuleName = l_ModuleListIterator->name;
- l_eStatus = eFrameworkunifiedStatusOK;
- }
- }
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup
-///
-/// \param
-///
-/// \return
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::GetBinaryNameOfProcess(SS_String f_ModuleQueueName,
- SS_String &f_ModuleBinaryName) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail;
- ModuleLaunchListIter l_moduleIter;
-
- f_ModuleBinaryName = "";
- l_eStatus = GetModuleIterator(f_ModuleQueueName.c_str(), l_moduleIter);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- LOG_ERROR("GetModuleIterator()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- size_t l_pos = l_moduleIter->path.find_last_of("\\/");
- if (std::string::npos == l_pos) { // LCOV_EXCL_BR_LINE 5: stdlib error case.
- // LCOV_EXCL_START 5: stdlib error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. Unable to parse binary name from path %s.",
- l_moduleIter->path.c_str());
- // LCOV_EXCL_STOP
- } else {
- f_ModuleBinaryName = l_moduleIter->path.substr(l_pos + 1);
- l_eStatus = eFrameworkunifiedStatusOK;
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup
-///
-/// \param
-///
-/// \return
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::init_process_launcher(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- UI_32 TODO = 0;
-
- FrameworkunifiedProtocolCallbackHandler process_launcher_protocol_callbacks[] = {
- // Command ID, Call back functions
- { ePLThrdCmd_LAUNCH_MODULE_RESP, SysMgrCallback<CSystemManager,
- &CSystemManager::OnModuleLaunchResponse> },
- { ePLThrdCmd_TERMINATE_MODULE_RESP, SysMgrCallback<CSystemManager,
- &CSystemManager::OnTerminateModuleResponse> },
- { ePLThrdCmd_RELAUNCH_MODULE_RESP, SysMgrCallback<CSystemManager,
- &CSystemManager::OnReLaunchModuleResponse> },
- { ePLThrdCmd_THREAD_STATUS_RESP, SysMgrCallback<CSystemManager,
- &CSystemManager::OnProcessLauncherThreadHeartbeatResponse> } }; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- // setup call backs for my children
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedAttachCallbacksToDispatcher(hApp, SS_SMLauncher, process_launcher_protocol_callbacks, static_cast<UI_32>(_countof(process_launcher_protocol_callbacks))))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedAttachCallbacksToDispatcher()"); // LCOV_EXCL_LINE 4: For setting the initialization conditions at SystemManager startup
- //////// Create Writer Child Threads handles the writing of data
- } else if (NULL == (m_hProcLauncherThread.m_ThreadHdl = FrameworkunifiedCreateChildThreadWithPriority(hApp, SS_SMLauncher, ProcessLauncherOnStart, ProcessLauncherOnStop, PR_SMPROCLAUNCH))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 4: For setting the initialization conditions at SystemManager startup
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusNullPointer;
- m_hProcLauncherThread.m_ThreadState = eSM_ThreadNotExist;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedCreateChildThreadWithPriority(%s) errored: %d/'%s'",
- SS_SMLauncher, l_eStatus, GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedStartChildThread(hApp, m_hProcLauncherThread.m_ThreadHdl, sizeof(UI_32), &TODO))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- m_hProcLauncherThread.m_ThreadState = // LCOV_EXCL_LINE 4: For setting the initialization conditions at SystemManager startup
- eSM_ThreadNotExist; // LCOV_EXCL_LINE 4: For setting the initialization conditions at SystemManager startup
- LOG_ERROR("FrameworkunifiedStartChildThread()"); // LCOV_EXCL_LINE 4: For setting the initialization conditions at SystemManager startup
- } else {
- m_hProcLauncherThread.m_ThreadState = eSMThreadIsFine;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CSystemManager::OnGroupLaunchWaitTimeout(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- SetCmdHist("SM_TIMER_GROUP_LAUNCH_WAIT_TIMER", m_TimerCmdHist, m_TimerHistIter, FrameworkunifiedGetMsgSrc(hApp)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- CALL_AND_LOG_STATUS(OnLaunchGroup(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup
-///
-/// \param
-///
-/// \return
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnModuleLaunchResponse(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- GroupLaunchMapIter l_GroupIter;
- ModuleLaunchListIter l_ModuleIter;
- UI_32 l_launchID = m_oSystemLauncher.get_id();
-
- l_eStatus = PerformModuleLaunchRespProcessing(hApp, l_GroupIter, l_ModuleIter, "ML");
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- LOG_ERROR("PerformModuleLaunchRespProcessing()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else if (l_GroupIter->second.id == l_launchID) {
- BOOL IsGroupLaunchComplete = TRUE;
- // Search the group for any module that has not completed launching.
- for (l_ModuleIter = l_GroupIter->second.modules.begin();
- IsGroupLaunchComplete && (l_ModuleIter != l_GroupIter->second.modules.end());
- l_ModuleIter++) {
- IsGroupLaunchComplete = !l_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHING);
- }
-
- if (IsGroupLaunchComplete) {
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER_GROUP_MONITOR]);
- l_GroupIter->second.launch_complete = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "Group%d LaunchComp", l_GroupIter->second.id);
-
- if (!m_oSystemLauncher.is_end()) {
- l_launchID = m_oSystemLauncher.advance_id();
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "Next group:%d", l_launchID);
- if (FALSE == l_GroupIter->second.grp_wait_for_trigger) {
- UI_32 l_Sec = (l_GroupIter->second.grp_launch_wait) / (1000 * 1000);
- UI_32 l_mSec = 0;
- if (l_Sec > 0) {
- l_mSec = ((l_GroupIter->second.grp_launch_wait) % (1000 * 1000)) / 1000;
- } else {
- l_mSec = (l_GroupIter->second.grp_launch_wait) / 1000;
- }
- m_GroupLaunchTimer->StartTimer(
- m_aTimerIDs[eSM_TIMER_GROUP_LAUNCH_WAIT_TIMER], l_Sec, l_mSec, 0, 0);
- } else {
- // Start the timer for group trigger... added for optimization
- m_GroupLaunchTimer->StartTimer(
- m_aTimerIDs[eSM_TIMER_LAUNCH_GROUP_TRIGGER_PROC_RESP_TIMER],
- SS_LAUNCH_GROUP_TRIGGER_TIMER_CONFIG, 0, 0, 0);
- }
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Group %d/%s LaunchIncomp", l_launchID,
- l_GroupIter->second.name.c_str());
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " '%s' ( Group %d/%s ) Launch Response received late - "
- "group id is now %d", l_ModuleIter->name.c_str(),
- l_GroupIter->second.id, l_GroupIter->second.name.c_str()
- , l_launchID);
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CSystemManager::OnReLaunchModuleResponse(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- GroupLaunchMapIter l_GroupIter;
- ModuleLaunchListIter l_ModuleIter;
-
- l_eStatus = PerformModuleLaunchRespProcessing(hApp, l_GroupIter, l_ModuleIter, "RL");
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "PerformModuleLaunchRespProcessing()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnReLaunchModuleResponse( HANDLE hApp )
-
-
-EFrameworkunifiedStatus CSystemManager::PerformModuleLaunchRespProcessing(HANDLE hApp,
- GroupLaunchMapIter & f_GroupIter, ModuleLaunchListIter & f_ModuleIter,
- PCSTR p_sPPD_tag) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- T_ProcessLaunchResp l_LaunchRespData;
-
- // ReadMsg(): *
- // Check hApp ptr, msg size, msg reception, read msg if all ok. *
- // Report any errors found. *
- // *
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < T_ProcessLaunchResp > (hApp, l_LaunchRespData))) { // LCOV_EXCL_BR_LINE 4: nsfw error // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_LINE 4: nsfw error
- } else {
- BOOL b_DidModuleLaunch = FALSE;
- f_GroupIter = l_LaunchRespData.groupIterator;
- f_ModuleIter = l_LaunchRespData.moduleIterator;
- SS_String l_ModulePath = l_LaunchRespData.path;
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "%s(%d)", l_LaunchRespData.name, l_LaunchRespData.pid);
-
- if (l_LaunchRespData.pid == -1) {
- f_ModuleIter->pid = -1;
-
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: Process launch failed: %s, %s",
- f_ModuleIter->name.c_str(), l_ModulePath.c_str());
-
- /// TODO
- /// If PID is -1, launch had failed. Add logic to do necessary action.
-
- f_ModuleIter->SetModuleState(MODULE_STATE_LAUNCH_FAILED);
- } else if (l_LaunchRespData.pid == 0x7FFFFFFF) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, " Warning: '%s', '%s' already launched",
- f_ModuleIter->name.c_str(), l_ModulePath.c_str());
-
- b_DidModuleLaunch = TRUE;
- } else {
- f_ModuleIter->pid = l_LaunchRespData.pid;
- b_DidModuleLaunch = TRUE;
- }
-
- if (b_DidModuleLaunch) {
- //
- // Module state could already be MODULE_STATE_CONNECTED if
- // module process ran before process launcher thread completed;
- // don't overwrite/reset the MODULE_STATE_CONNECTED state.
- if (f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHING)) {
- f_ModuleIter->SetModuleState(MODULE_STATE_LAUNCHED);
- }
-
- l_eStatus = f_ModuleIter->GetPriority(f_ModuleIter->current_priority);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, " Warning: f_ModuleIter->GetPriority( "
- "f_ModuleIter->current_priority ) returned %d/'%s'. "
- "Setting 'current_priority' = 'configuration_priority' %d.",
- l_eStatus, GetStr(l_eStatus).c_str(),
- f_ModuleIter->configuration_priority);
- f_ModuleIter->current_priority = f_ModuleIter->configuration_priority;
- l_eStatus = eFrameworkunifiedStatusOK;
- }
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::PerformModuleLaunchRespProcessing(
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnTerminateModuleResponse
-///
-/// \param HANDLE hApp
-///
-/// \return EFrameworkunifiedStatus
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnTerminateModuleResponse(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- T_ProcessLauncherTerminationResp l_TerminateRespData;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, " from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- // ReadMsg(): *
- // Check hApp ptr, msg size, msg reception, read msg if all ok. *
- // Report any errors found. *
- // *
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < T_ProcessLauncherTerminationResp
- > (hApp, l_TerminateRespData))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- ModuleLaunchListIter l_ModuleIter = l_TerminateRespData.moduleIterator;
-
- SS_String l_ModulePath = m_BinaryFilesPath + l_ModuleIter->path;
-
- if ((0 == strcmp(l_ModulePath.c_str(), l_TerminateRespData.path))
- && (0 == strcmp(l_ModuleIter->arguments.c_str(),
- l_TerminateRespData.args))) {
- l_ModuleIter->pid = 0;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " %s Termination successful",
- l_ModuleIter->name.c_str());
- } else {
- if (0 != strcmp(l_ModulePath.c_str(), l_TerminateRespData.path)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: ModuleIter->path != l_TerminateRespData.path"
- " \" '%s' != '%s' \"", l_ModuleIter->path.c_str(),
- l_TerminateRespData.path);
- }
- if (0 != strcmp(l_ModuleIter->arguments.c_str(),
- l_TerminateRespData.args)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: ModuleIter->arguments != "
- "l_TerminateRespData.args, \" '%s' != '%s' \"",
- l_ModuleIter->arguments.c_str(), l_TerminateRespData.args);
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnTerminateModuleResponse( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////
-/// \ingroup ReadPathAndFileNameEnvironmentVariables
-///
-/// \param
-///
-/// \return VOID
-///////////////////////////////////////////////////////////////////////////////
-VOID CSystemManager::ReadPathFromEnvironmentVariables() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+"); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- CHAR *l_pEnvVariable = NULL;
-
- // read Path from environment variable
- if (NULL == (l_pEnvVariable = std::getenv(BaseDirPathEnvVariable))) {
- // Environment variable not set, set it to default path
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Using Default path for Binary Files : %s", DefaultBasePath);
- m_BinaryFilesPath = DefaultBasePath;
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Using Default path for Config Files : %s%s",
- DefaultBasePath, DefaultConfigFilesPath);
- m_ConfigFilesPath = DefaultBasePath;
- } else {
- // set path of binary files
- m_BinaryFilesPath = l_pEnvVariable;
-
- // set path of configuration files
- m_ConfigFilesPath = l_pEnvVariable;
- }
- // set path of configuration files
- m_ConfigFilesPath += DefaultConfigFilesPath;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return;
-}
-
-///////////////////////////////////////////////////////////////////////
-/// \ingroup GetConfigDataFileNameFromEnvironmentVariable
-///
-/// \param
-///
-/// \return SS_String
-///////////////////////////////////////////////////////////////////////////////
-SS_String CSystemManager::ReadLaunchConfigFileNameFromEnvironmentVariable() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- CHAR *l_pEnvVariable = NULL;
- SS_String l_FileName;
-
- // read Launch Config File Name from environment variable
- // LCOV_EXCL_BR_START 5: standard lib error
- if (NULL == (l_pEnvVariable = std::getenv(LaunchConfigFileNameEnvVariable))) {
- // LCOV_EXCL_BR_STOP
- // Environment variable not set, set it to default file name
- // LCOV_EXCL_START 5: standard lib error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Using Default Launch Configuration file : %s",
- DefaultLaunchConfigFileName);
- l_FileName = DefaultLaunchConfigFileName;
- // LCOV_EXCL_STOP
- } else {
- l_FileName = l_pEnvVariable;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Using Launch Configuration file: %s", l_FileName.c_str());
-
- SS_String retStr = m_ConfigFilesPath + l_FileName; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (access(retStr.c_str(), F_OK) != 0) { // LCOV_EXCL_BR_LINE 5: standard lib error
- // LCOV_EXCL_START 5: standard lib error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "no found %s", retStr.c_str());
- SS_ASERT(0);
- // LCOV_EXCL_STOP
- }
- return retStr;
-}
-
-///////////////////////////////////////////////////////////////////////
-/// \ingroup GetConfigDataFileNameFromEnvironmentVariable
-///
-/// \param
-///
-/// \return SS_String
-///////////////////////////////////////////////////////////////////////////////
-SS_String CSystemManager::ReadConfigDataFileNameFromEnvironmentVariable() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- CHAR *l_pEnvVariable = NULL;
- SS_String l_FileName = "";
-
- // read SM Config Data File Name from environment variable
- // LCOV_EXCL_BR_START 5: standard lib error
- if (NULL == (l_pEnvVariable = std::getenv(SMConfigDataFileNameEnvVariable))) {
- // LCOV_EXCL_BR_STOP 5: standard lib error
- // LCOV_EXCL_START 5: standard lib error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- // Environment variable not set, set it to default file name
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Using Default Configuration Data file : %s", DefaultSMConfigFileName);
- l_FileName = DefaultSMConfigFileName;
- // LCOV_EXCL_STOP
- } else {
- l_FileName = l_pEnvVariable;
- }
-
- SS_String retStr = m_ConfigFilesPath + l_FileName; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (access(retStr.c_str(), F_OK) != 0) { // LCOV_EXCL_BR_LINE 5: standard lib error
- // LCOV_EXCL_START 5: standard lib error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "no found %s", retStr.c_str());
- SS_ASERT(0);
- // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return retStr;
-}
-
-///////////////////////////////////////////////////////////////////////
-/// \ingroup ReadUsingVMPlayerEnvironmentVariable
-///
-/// \param
-///
-/// \return VOID
-///////////////////////////////////////////////////////////////////////////////
-VOID CSystemManager::ReadUsingVMPlayerEnvironmentVariable() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- CHAR *l_pEnvVariable = std::getenv(UsingVMPlayerVariable);
- m_UsingVMPlayer = (NULL != l_pEnvVariable);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " %sunning on a VMPlayer",
- m_UsingVMPlayer ? "R" : "Not r");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return;
-} // End of VOID CSystemManager::ReadUsingVMPlayerEnvironmentVariable()
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup
-///
-/// \param
-///
-/// \return
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::start_process_launching(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- BOOL l_bIsGoodRc;
- SS_String l_SMConfigFile(ReadConfigDataFileNameFromEnvironmentVariable());
- SMConfigParams SMConfigData;
- SS_String l_LaunchConfigFile(ReadLaunchConfigFileNameFromEnvironmentVariable()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- SysMgrConfiguration l_launchConfig;
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Reading %s Configuration Data from %s",
- SERVICE_SYSMANAGER, l_SMConfigFile.c_str());
-
- l_bIsGoodRc = SMConfigData.LoadSMConfigParameters(m_SMConfig, l_SMConfigFile);
-
- if (!l_bIsGoodRc) { // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup
- // LCOV_EXCL_START 6: For setting the initialization conditions at SystemManager startup
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: SMConfigData.LoadSMConfigParameters(m_SMConfig, "
- " %s) returned FALSE", l_SMConfigFile.c_str());
- l_eStatus = eFrameworkunifiedStatusFileLoadError;
- // LCOV_EXCL_STOP
- } else {
- SMSetState(hApp, SS_SM_APPS_LAUNCH_IN_PROGRESS); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Reading Launch Configuration Data from %s",
- l_LaunchConfigFile.c_str());
-
- SS_String l_launchOrderName = "DEFAULT"; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- LaunchOrderedVector l_OrderList;
-
- l_bIsGoodRc = l_launchConfig.LoadParametersCfg(m_MapProclaunchGrps,
- m_MapProcNames, l_OrderList, l_launchOrderName, l_LaunchConfigFile);
-
- if (l_OrderList.size() != 0) { // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "wakeup order:%s",
- l_launchOrderName.c_str());
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "wakeup order:DEFAULT");
- }
-
- if (!l_bIsGoodRc) { // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup
- // LCOV_EXCL_START 6: For setting the initialization conditions at SystemManager startup
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: l_launchConfig.LoadParametersCfg( "
- "m_MapProclaunchGrps, m_MapProcNames, %s ) returned FALSE",
- l_LaunchConfigFile.c_str());
- l_eStatus = eFrameworkunifiedStatusFileLoadError;
- // LCOV_EXCL_STOP
- } else {
- m_SystemLaunchProgress = SS_SM_INITIAL_GROUP;
- // l_launchConfig.PrintAllInfo( m_MapProclaunchGrps );
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " System Launch Started");
- // Don't use DynamicLaunch because its dependency on the services table is complex
- SS_SOURCE source_type = SS_SOURCE_FM;
-
- m_oSystemLauncher.configure_dynamic_launch(source_type, m_MapProclaunchGrps, l_OrderList);
- m_oSystemLauncher.copyDynOrderedVector(m_SystemStarter);
- // m_SystemStarter.print_info();
-
- // start the timer upon successful launching of first process
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Starting Module Connection Timeout timer with %d sec period",
- m_SMConfig.MCConfig.ModuleConnectionTimeOutSec);
- m_GroupLaunchTimer->StartTimer(
- m_aTimerIDs[eSM_TIMER_MODULE_CONNECT_WAIT_TIMER],
- m_SMConfig.MCConfig.ModuleConnectionTimeOutSec, 0,
- m_SMConfig.MCConfig.ModuleConnectionTimeOutSec, 0); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- CALL_AND_LOG_STATUS(OnLaunchGroup(hApp)); // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-
-EFrameworkunifiedStatus CSystemManager::GetLastSourceInfo(SS_SOURCE &source_type) { // LCOV_EXCL_START 8: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- CHAR LastSource[64 + 1] = { '\0' };
- l_eStatus = NPSynchronousReadPersistentData(SERVICE_AS_MODE,
- NTFY_SSLastSourceType, LastSource, static_cast<UI_32>(sizeof(LastSource) - 1));
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- LOG_ERROR("NPSynchronousReadPersistentData("
- SERVICE_AS_MODE "," NTFY_SSLastSourceType);
- } else {
- std::string tempstr(LastSource);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " String got from persistence %s", LastSource);
- UI_32 pos = static_cast<UI_32>(tempstr.find("_"));
- std::string tempstr2 = tempstr.substr(0, pos);
- UI_64 value = strtoull(tempstr2.c_str(), 0, 10);
- source_type = static_cast<SS_SOURCE>((UI_32)(value >> 32) & 0x0000FFFF);
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CSystemManager::OnLaunchGroupTriggerProcessResponse(HANDLE hApp) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp);
- UI_32 l_groupID;
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
- SetCmdHist("SS_SM_GROUP_LAUNCH_TRIGGER", m_SMCmdHist, m_SMHistIter, FrameworkunifiedGetMsgSrc(hApp));
- // stop group launch trigger process response timer
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER_LAUNCH_GROUP_TRIGGER_PROC_RESP_TIMER]);
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < UI_32 > (hApp, l_groupID))) {
- LOG_ERROR("ReadMsg()");
- } else {
- SS_SOURCE source_type = SS_SOURCE_NA;
- l_eStatus = GetLastSourceInfo(source_type);
-
- if ((SS_SOURCE_AM == source_type) || (SS_SOURCE_FM == source_type)
- || (SS_SOURCE_FM_DAB == source_type) || (SS_SOURCE_SDARS == source_type)) {
- if (l_groupID == m_oSystemLauncher.get_id()) {
- CALL_AND_LOG_STATUS(OnLaunchGroup(hApp));
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Received Group ID %d != Sys Mgr Group ID %d", l_groupID,
- m_oSystemLauncher.get_id());
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- }
- } else { // media is last source
- CALL_AND_LOG_STATUS(OnLaunchGroup(hApp));
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CSystemManager::OnLaunchGroupTriggerProcessResponseTimerExpiry(HANDLE hApp) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp);
- REC_HIST_IF_SUCCESSFUL("SM_TIMER_LAUNCH_GROUP_TRIGGER", m_TimerCmdHist,
- m_TimerHistIter, FrameworkunifiedGetMsgSrc(hApp), l_eStatus);
- CALL_AND_LOG_STATUS(OnLaunchGroup(hApp));
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup
-///
-/// \param
-///
-/// \return
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnLaunchGroupSelfTrigger(HANDLE hApp) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- REC_HIST_IF_SUCCESSFUL("SS_SM_SendTriggerToSelf", m_SMCmdHist, m_SMHistIter,
- FrameworkunifiedGetMsgSrc(hApp), l_eStatus);
-
- CALL_AND_LOG_STATUS(OnLaunchGroup(hApp));
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-// LCOV_EXCL_STOP
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup
-///
-/// \param
-///
-/// \return
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnLaunchGroup(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- GroupLaunchMapIter l_GroupIter;
- UI_32 l_launch_ID = m_oSystemLauncher.get_id();
-
- // FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Launching group %d", l_launch_ID );
-
- l_GroupIter = m_MapProclaunchGrps.find(l_launch_ID);
-
- if (l_GroupIter->second.launch_complete == FALSE) { // LCOV_EXCL_BR_LINE 6: Because it is not called for a condition that results in "TRUE"
- // FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__
- // , " m_bIsNPP_ServicesStarted ? %s, group.id: %d, Launch_Group: %d"
- // , m_bIsNPP_ServicesStarted ? "Yes" : "No"
- // , l_GroupIter->second.id
- // , m_SystemLaunchProgress );
-
- if ((m_bIsNPP_ServicesStarted && m_bIsBackupAvail) || (l_GroupIter->second.id <= 2)) { // LCOV_EXCL_BR_LINE 6: Because it is not called for the condition that results in "FALSE" // NOLINT(whitespace/line_length)
- ModuleLaunchListIter l_ModuleListIterator = l_GroupIter->second.modules.begin();
- if (l_ModuleListIterator != l_GroupIter->second.modules.end()) { // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup // NOLINT(whitespace/line_length)
- // FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "GRPLCH,(start),%d,%s",
- // l_GroupIter->second.id,l_GroupIter->second.name.c_str());
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "Launching Group%d/%s",
- l_GroupIter->second.id, l_GroupIter->second.name.c_str());
- SS_String l_ModulePath;
- for (; l_ModuleListIterator != l_GroupIter->second.modules.end(); l_ModuleListIterator++) {
- if (l_ModuleListIterator->IsModuleState(MODULE_STATE_INVALID)) {
- char l_cFormat[] = "SendRequestToLauncher(%s, "
- "ePLThrdCmd_LAUNCH_MODULE_REQST)";
- char l_cBuf[sizeof(l_cFormat) + MAX_NAME_SIZE_APP];
- snprintf(l_cBuf, sizeof(l_cBuf), l_cFormat,
- l_ModuleListIterator->name.c_str());
-
- l_eStatus = SendRequestToLauncher(hApp, l_ModuleListIterator, // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- ePLThrdCmd_LAUNCH_MODULE_REQST, // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- "ePLThrdCmd_LAUNCH_MODULE_REQST"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 6: For setting the initialization conditions at SystemManager startup // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_ModuleListIterator->SetModuleState(
- MODULE_STATE_LAUNCH_FAILED);
- SetCmdHist(l_cBuf, m_ErrHist, m_ErrHistIter,
- GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- } else {
- l_ModuleListIterator->SetModuleState(MODULE_STATE_LAUNCHING);
- }
- } else {
- l_ModulePath = (m_BinaryFilesPath + l_ModuleListIterator->path); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Not launching %s: module state is %s",
- l_ModulePath.c_str(),
- l_ModuleListIterator->ModuleStateStr().c_str());
- }
- }
-
- // LCOV_EXCL_BR_START 6: For setting the initialization conditions at SystemManager startup // NOLINT(whitespace/line_length)
- if (FALSE ==
- l_GroupIter->second.grp_wait_for_trigger) {
- // LCOV_EXCL_BR_STOP
- m_GroupLaunchTimer->StartTimer(m_aTimerIDs[eSM_TIMER_GROUP_MONITOR],
- SS_GROUP_LAUNCH_TIMER_CONFIG, 0, 0, 0); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
- }
- }
-
- if (m_oSystemLauncher.is_end()) { // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "System Launch Completed");
-
- if (epssusSYSTEM_SERVICES_STARTED == m_SystemModeInfo.startupStage) {
- // If startupStage == SYSTEM_SERVICES_STARTED, a notification is requested because there are SVCs required for notification to the _CWORD56_.
- l_eStatus = SendSystemModeInfoResponse(hApp, epssusALL_SERVICES_LAUNCHED);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "UpdateStartupStageState_SendSystemModeInfoResponse" // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "( epssusALL_SERVICES_LAUNCHED )"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- m_SystemModeInfo.startupStage = epssusALL_SERVICES_LAUNCHED;
-
- if (is_current_state(SS_SM_APPS_LAUNCH_IN_PROGRESS)) {
- SMSetState(hApp, SS_SM_APPS_LAUNCHED_READY_TO_START);
- }
- // SysMgrConfiguration config;
- // config.PrintAllInfo( m_MapProclaunchGrps );
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnLaunchGroup(HANDLE hApp)
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnProcessLaunchTimerExpiry
-///
-/// \param HANDLE hApp
-///
-/// \return EFrameworkunifiedStatus
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnProcessLaunchTimerExpiry(HANDLE hApp) { // LCOV_EXCL_START 8: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- // ToDo 2013_05_17 Jay When used ? Dead code ? Don't see a StartTimer call.
- REC_HIST_IF_SUCCESSFUL("SM_TIMER_PROCESS_LAUNCH_MONITOR", m_TimerCmdHist,
- m_TimerHistIter, FrameworkunifiedGetMsgSrc(hApp), l_eStatus);
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER_PROCESS_LAUNCH_MONITOR]);
- return eFrameworkunifiedStatusOK;
-}
-// LCOV_EXCL_STOP
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnHeartBeatMonitorTimerExpiry
-///
-/// \param HANDLE hApp
-///
-/// \return EFrameworkunifiedStatus
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnHeartBeatMonitorTimerExpiry(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__, " Received from %s", FrameworkunifiedGetMsgSrc(hApp));
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK; // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- REC_HIST_IF_SUCCESSFUL("SM_TIMER_HEARTBEAT_MONITOR", m_TimerCmdHist, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- m_TimerHistIter, FrameworkunifiedGetMsgSrc(hApp), l_eStatus); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- // LCOV_EXCL_BR_START 4: nsfw error
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedSendChild(hApp, m_hHeartbeatThread.m_ThreadHdl,
- SS_HEARTBEAT_PERIODIC_STATUS_REQ, 0, NULL))) {
- // LCOV_EXCL_BR_STOP 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedSendChild(m_hHeartbeatThread.m_ThreadHdl, " // LCOV_EXCL_LINE 4: nsfw error
- "SS_HEARTBEAT_PERIODIC_STATUS_REQ)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- m_hHeartbeatThread.m_ThreadState = eSMWaitForHeartbeat;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup SystemManagerDebugDump
-/// implement post mortem function
-///
-/// \param
-///
-/// \return void
-///////////////////////////////////////////////////////////////////////////////
-
-VOID CSystemManager::SystemManagerDebugDump(HANDLE hApp) {
- std::stringstream l_debugDumpBuf;
- cmdHistIter i;
-
- // LCOV_EXCL_BR_START 11:unexpected branch // NOLINT(whitespace/line_length)
- l_debugDumpBuf << FrameworkunifiedGetAppName(hApp) << "/" << endl
- << " <SYSTEM MANAGER DUMP DATA> " << endl << endl << " ***internals*** " << endl
- << endl << " SM state: "
- << GetStr(m_SMCurrentState).c_str() << endl << " SM startup reason: "
- << GetStr(m_StartUpReason).c_str() << endl << " SM shutdown reason: "
- << GetStr(m_shutdownTrigger).c_str() << endl << " LUM: "
- << GetStr(m_lastUserMode).c_str() << endl << " TPM: "
- << GetStr(m_SystemModeInfo.transportMode).c_str() << endl << " LPH: "
- << GetStr(m_SystemModeInfo.limpHomeCutoff).c_str() << endl << " PMode: "
- << GetStr(m_SystemModeInfo.productionMode).c_str() << endl << " ActiveGroup: "
- << m_ActiveGroupId << endl << " m_MaxShutdownTime: " << m_MaxShutdownTime
- << endl << " NPP: " << (m_bIsNPP_ServicesStarted ? "Started" : "notStarted")
- << endl
- << endl << " ***Error history***" << endl;
- // LCOV_EXCL_BR_STOP
-
- for (i = m_ErrHist.begin(); i != m_ErrHist.end(); ++i) {
- l_debugDumpBuf << endl << " " << i->m_cmd.c_str() << " @ " << i->m_time // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- << "ms EC:" << i->m_sender.c_str() << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- l_debugDumpBuf << endl << " ***_CWORD56_ command history***" << endl;
-
- for (i = m__CWORD56_CmdHist.begin(); i != m__CWORD56_CmdHist.end(); ++i) {
- l_debugDumpBuf << endl << " " << i->m_cmd.c_str() << " @ " << i->m_time << "ms" << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- l_debugDumpBuf << endl << " ***Timer history***" << endl;
-
- for (i = m_TimerCmdHist.begin(); i != m_TimerCmdHist.end(); ++i) {
- l_debugDumpBuf << endl << " " << i->m_cmd.c_str() << " @ " << i->m_time << "ms" << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- l_debugDumpBuf << endl << " ***SM message history***" << endl;
-
- for (i = m_SMCmdHist.begin(); i != m_SMCmdHist.end(); ++i) {
- l_debugDumpBuf << endl << " " << i->m_cmd.c_str() << " @ " << i->m_time << "ms " // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- << i->m_sender.c_str() << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- l_debugDumpBuf << endl << " ***Publishshing history***" << endl;
-
- for (i = m_PubCmdHist.begin(); i != m_PubCmdHist.end(); ++i) {
- l_debugDumpBuf << endl << " " << i->m_cmd.c_str() << " @ " << i->m_time << "ms " // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- << i->m_sender.c_str() << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- l_debugDumpBuf << endl << " ***SM start table***" << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- // LCOV_EXCL_BR_START 11:unexpected branch // NOLINT(whitespace/line_length)
- l_debugDumpBuf << endl
- << " index | name | start required? | isOKFlag | Module state | start sent "
- "| start resposne received |start delta | stop sent | reply received | stop delta | PID"
- << endl;
- // LCOV_EXCL_BR_STOP
-
- for (UI_32 k = 1u; (k <= m_MapProclaunchGrps.size()); k++) {
- GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.find(k);
-
- if (l_GroupIterator != m_MapProclaunchGrps.end()) {
- ModuleLaunchListIter l_ModuleListIterator = l_GroupIterator->second.modules.begin();
-
- for (int i = 1u; l_ModuleListIterator != l_GroupIterator->second.modules.end();
- l_ModuleListIterator++, i++) {
- // LCOV_EXCL_BR_START 11:unexpected branch // NOLINT(whitespace/line_length)
- std::string sIsOKFlag = GetModuleCondition(l_ModuleListIterator) ? " " : // 'blank' means OK
- "X"; // 'X' means state mismatch
-
- l_debugDumpBuf << " " << std::setw(2) << std::right << i << " | "
- << std::setw(24) << std::left << l_ModuleListIterator->name.c_str()
- << " | " << std::setw(5) << std::left
- << (l_ModuleListIterator->is_start_required ? "TRUE" : "FALSE")
-
- << " | " << sIsOKFlag.c_str() << " | " << std::setw(24) << std::left
- << l_ModuleListIterator->ModuleStateStr().c_str() << " | "
- << l_ModuleListIterator->m_startReason.GetInitial() << " | "
- << l_ModuleListIterator->m_startReason.GetFinal() << " | "
- << std::setw(3) << std::right
- << static_cast<SI_16>(l_ModuleListIterator->m_startReason.GetDelta())
- << "ms" << " | " << l_ModuleListIterator->m_stopReason.GetInitial()
- << " | " << l_ModuleListIterator->m_stopReason.GetFinal() << " | "
- << std::setw(3)
- << static_cast<SI_16>(l_ModuleListIterator->m_stopReason.GetDelta())
- << "ms" << " | " << l_ModuleListIterator->pid << endl;
- // LCOV_EXCL_BR_STOP
- }
- }
- }
-
- l_debugDumpBuf << endl << " ***Heartbeat information***" << endl;
-
- l_debugDumpBuf << endl << " Entire State:" << m_HBReport.eEntireState << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_debugDumpBuf << endl << " Number of Modules:" << m_HBReport.nNumOfModules << endl;
-
- for (UI_32 j = 0; j < m_HBReport.nNumOfModules; j++) { // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- if (0 != m_HBReport.tModuleList[j].HeartBeatRetryCount) {
- l_debugDumpBuf << endl << " " << m_HBReport.tModuleList[j].ProcQueueName << ","
- << m_HBReport.tModuleList[j].ProcHBState << ", "
- << m_HBReport.tModuleList[j].HeartBeatRetryCount << endl;
- }
- // LCOV_EXCL_STOP
- }
-
- std::string l_debugDumpStr = l_debugDumpBuf.str();
-
- SendDebugDumpResponseToSystemManager(l_debugDumpStr); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnProcessLaunchMonitorTimerExpiry
-/// This sends request to launcher thread to confirm that it
-/// is still responsive.
-///
-/// \param [in] hApp
-/// HANDLE - Handle of the Client Application
-///
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnProcessLaunchMonitorTimerExpiry(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Received from %s", FrameworkunifiedGetMsgSrc(hApp));
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- REC_HIST_IF_SUCCESSFUL("TIMER_PROCESSLAUNCHER_MONITOR", m_TimerCmdHist, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- m_TimerHistIter, FrameworkunifiedGetMsgSrc(hApp), l_eStatus); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- // LCOV_EXCL_BR_START 4: nsfw error
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedSendChild(hApp, m_hProcLauncherThread.m_ThreadHdl,
- ePLThrdCmd_THREAD_STATUS_REQST, 0, NULL))) {
- // LCOV_EXCL_BR_STOP 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedSendChild(m_hProcLauncherThread.m_ThreadHdl," // LCOV_EXCL_LINE 4: nsfw error
- "ePLThrdCmd_THREAD_STATUS_REQST)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- m_hProcLauncherThread.m_ThreadState = eSMWaitForHeartbeat;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup SendRequestToLauncher
-/// This function is used for sending request to launcher thread from
-/// System Manager.
-///
-/// \param HANDLE hApp
-/// ModuleLaunchListIter f_ModuleListIterator => iterator node from map for the module
-/// ESMPLThreadCommandIds f_CommandId => command id to send
-/// SS_String f_ModulePath => Path of the Module
-///
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::PerformLaunchProcedure(HANDLE hApp,
- ModuleLaunchListIter f_ModuleIterator, SS_String & f_stopCompName) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- SS_String s_ModuleStatus2;
-
- // Register for Stop Complete notification
- if (!f_ModuleIterator->shutdown_critical) {
- s_ModuleStatus2 = "is not shutdown_critical";
- // LCOV_EXCL_BR_START 6: For setting the initialization conditions at SystemManager startup
-
- } else if (eFrameworkunifiedStatusOK != (l_eStatus =
- FrameworkunifiedSubscribeNotificationWithCallback(
- hApp,
- f_stopCompName.c_str(),
- SysMgrCallback<CSystemManager, &CSystemManager::OnModuleStopCompleteNotification>))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 6: For setting the initialization conditions at SystemManager startup
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedSubscribeNotificationWithCallback(hApp, %s) errored: %d/'%s'",
- f_stopCompName.c_str(), l_eStatus, GetStr(l_eStatus).c_str());
-
- s_ModuleStatus2 = "is shutdown_critical but errored";
- // LCOV_EXCL_STOP
- } else {
- s_ModuleStatus2 = f_stopCompName + " is now registered"; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "%s", s_ModuleStatus2.c_str());
-
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup PerformTerminateProcedure
-/// Perform Procedure for Service Terminate.
-///
-/// \param HANDLE hApp
-/// ModuleLaunchListIter f_ModuleListIterator => iterator node from map for the module
-/// SS_String & f_availabilityName => Availability Name
-/// SS_String & f_stopCompName => Stop Complete Notification Name
-///
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::PerformTerminateProcedure(HANDLE hApp,
- ModuleLaunchListIter f_ModuleIterator, SS_String & f_availabilityName,
- SS_String & f_stopCompName) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- // close session
- f_ModuleIterator->SetModuleState(MODULE_STATE_INVALID);
- f_ModuleIterator->pid = 0;
- if (NULL != f_ModuleIterator->hsession) { // LCOV_EXCL_BR_LINE 200:hsession must not be NULL.
- l_eStatus = FrameworkunifiedMcClose(f_ModuleIterator->hsession); // LCOV_EXCL_BR_LINE 4: nsfw error
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 4: nsfw error
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: FrameworkunifiedMcClose(%s) errored: %d/'%s'",
- f_ModuleIterator->name.c_str(), l_eStatus, GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- }
- f_ModuleIterator->hsession = NULL;
- }
-
- // Availability
- if (f_ModuleIterator->is_start_required) {
- // Initialize Availability
- HANDLE pPublishMq = McOpenSender(FRAMEWORKUNIFIED_NS_NPSERVICE); // LCOV_EXCL_BR_LINE 4: nsfw error
- if (NULL == pPublishMq) { // LCOV_EXCL_BR_LINE 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_LINE 4: nsfw error
- } else {
- ServiceAvailability tServiceAvailability;
-
- snprintf(tServiceAvailability.cServiceName, MAX_NAME_SIZE_APP, "%s",
- f_ModuleIterator->name.c_str());
- tServiceAvailability.eServiceAvailability = eFrameworkunifiedServiceNotAvailable;
-
- l_eStatus = NPPublishNotification(pPublishMq, f_ModuleIterator->name.c_str(), // LCOV_EXCL_BR_LINE 4: nsfw error
- f_availabilityName.c_str(), &tServiceAvailability, // LCOV_EXCL_BR_LINE 4: nsfw error
- sizeof(tServiceAvailability)); // LCOV_EXCL_BR_LINE 4: nsfw error
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 4: nsfw error
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: NPPublishNotification(%s)",
- f_availabilityName.c_str());
- // LCOV_EXCL_STOP
- }
-
- l_eStatus = McClose(pPublishMq); // LCOV_EXCL_BR_LINE 4: nsfw error
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- }
- }
- }
-
- if (f_ModuleIterator->shutdown_critical) {
- // Unregister Stop Complete notification
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedUnsubscribeNotificationWithCallback(hApp, f_stopCompName.c_str()))) { // LCOV_EXCL_BR_LINE 4: nsfw error // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedUnsubscribeNotificationWithCallback(hApp, %s) errored: %d/'%s'",
- f_stopCompName.c_str(), l_eStatus, GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- } else {
- SS_String s_ModuleStatus2 = f_stopCompName + " is now unregistered ";
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "%s", s_ModuleStatus2.c_str());
- }
- }
-
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup SendRequestToLauncher
-/// This function is used for sending request to launcher thread from
-/// System Manager.
-///
-/// \param HANDLE hApp
-/// ModuleLaunchListIter f_ModuleListIterator => iterator node from map for the module
-/// ESMPLThreadCommandIds f_CommandId => command id to send
-/// SS_String f_ModulePath => Path of the Module
-///
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::SendRequestToLauncher(HANDLE hApp,
- ModuleLaunchListIter f_ModuleIterator, ESMPLThreadCommandIds f_CommandId,
- SS_String f_CommandIdStr) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- SS_String l_ModulePath = m_BinaryFilesPath + f_ModuleIterator->path;
-
- T_ProcessLauncherLaunchReq l_ModuleLaunchReq = { };
- strcpy(l_ModuleLaunchReq.name, f_ModuleIterator->name.c_str()); // NOLINT
- strcpy(l_ModuleLaunchReq.path, l_ModulePath.c_str()); // NOLINT
- strncpy(l_ModuleLaunchReq.args, f_ModuleIterator->arguments.c_str(), // NOLINT
- sizeof(l_ModuleLaunchReq.args) - 1);
- strcpy(l_ModuleLaunchReq.logging_mask, // NOLINT
- f_ModuleIterator->logging_msk_str.c_str());
- l_ModuleLaunchReq.priority = f_ModuleIterator->configuration_priority;
- l_ModuleLaunchReq.cpu_assign = f_ModuleIterator->cpu_assign;
- l_ModuleLaunchReq.groupIterator = m_MapProclaunchGrps.find(
- f_ModuleIterator->group_id);
- l_ModuleLaunchReq.moduleIterator = f_ModuleIterator;
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Queue:%s, path:%s, args:%s, lmsk:%s, prio:%d, cmd:%s", l_ModuleLaunchReq.name,
- l_ModuleLaunchReq.path, l_ModuleLaunchReq.args, l_ModuleLaunchReq.logging_mask,
- l_ModuleLaunchReq.priority, f_CommandIdStr.c_str());
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedSendChild(hApp, m_hProcLauncherThread.m_ThreadHdl, f_CommandId, sizeof(l_ModuleLaunchReq), reinterpret_cast<void *>(&l_ModuleLaunchReq)))) { // LCOV_EXCL_BR_LINE 4: Because an initialization condition is set at SystemManager startup and the branching condition cannot be satisfied // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 4: Because an initialization condition is set at SystemManager startup and the branching condition cannot be satisfied
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedSendChild( %s, %s ) errored: %d/'%s'", l_ModulePath.c_str(),
- f_CommandIdStr.c_str(), l_eStatus, GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- } else {
- SS_String l_availabilityName = f_ModuleIterator->name + "/Availability"; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- SS_String l_stopCompName = f_ModuleIterator->name + "/StopComp"; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- // Perform command-specific processing
- switch (f_CommandId) { // LCOV_EXCL_BR_LINE 6: Because the case is fixed on the call from the SystemManager::Initialize
- // LCOV_EXCL_START 6: Because the case is fixed on the call from the SystemManager::Initialize
- case ePLThrdCmd_RELAUNCH_MODULE_REQST:
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = PerformTerminateProcedure(hApp, f_ModuleIterator,
- l_availabilityName, l_stopCompName);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- SS_ASERT(0);
- }
-
- l_eStatus = PerformLaunchProcedure(hApp, f_ModuleIterator, l_stopCompName);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- SS_ASERT(0);
- }
- break;
- // LCOV_EXCL_STOP
-
- case ePLThrdCmd_LAUNCH_MODULE_REQST:
- l_eStatus = PerformLaunchProcedure(hApp, f_ModuleIterator, l_stopCompName);
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_LINE 6: For setting the initialization conditions at SystemManager startup
- }
- break;
-
- case ePLThrdCmd_TERMINATE_MODULE_REQST:
- l_eStatus = PerformTerminateProcedure(hApp, f_ModuleIterator,
- l_availabilityName, l_stopCompName); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- break;
-
- // LCOV_EXCL_START 6: Because the case is fixed on the call from the SystemManager::Initialize
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- case ePLThrdCmd_LAUNCH_MODULE_RESP:
- case ePLThrdCmd_MODULE_STATUS_REQST:
- case ePLThrdCmd_RELAUNCH_MODULE_RESP:
- case ePLThrdCmd_TERMINATE_MODULE_RESP:
- case ePLThrdCmd_THREAD_STATUS_REQST:
- case ePLThrdCmd_THREAD_STATUS_RESP:
- case ePLThrdCmd_NONE:
- break;
- // default: Don't code a 'default' here - let the compiler
- // issue a warning ( set via -Wall or -Wswitch ) when the set of
- // enumerations changes - then the maintainer will
- // automagically know to update this switch statement.
- // LCOV_EXCL_STOP
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::SendRequestToLauncher(
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup RemoveModuleEntryFromHB
-/// This function is called to send module information to heart beat thread
-/// which is to be removed from its list of services to be monitored.
-///
-/// \param HANDLE hApp,
-/// const CHAR *f_ModuleName => Module Name
-///
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::RemoveModuleEntryFromHB(HANDLE hApp, const CHAR *f_ModuleName) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- HBListIter l_HBIter = std::find(m_HBList.begin(), m_HBList.end(), f_ModuleName);
- if (l_HBIter != m_HBList.end()) {
- m_HBList.erase(l_HBIter);
- }
-
- TSMRequestMessage l_ModuleDetails;
- strncpy(l_ModuleDetails.pstModuleName, f_ModuleName,
- sizeof(l_ModuleDetails.pstModuleName) - 1);
- l_ModuleDetails.pstModuleName[sizeof(l_ModuleDetails.pstModuleName) - 1] = '\0';
- l_eStatus = SendRequestToHeartBeat(hApp, SS_HEARTBEAT_DELETE_MODULE_ENTRY,
- &l_ModuleDetails, sizeof(TSMRequestMessage));
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnHeartBeatThreadHeartbeatResponse
-/// This function gets called when heart beat thread replies the
-/// heart beat query sent by the System Manager.
-/// \param [in] hApp
-/// HANDLE - Handle of the Client Application
-///
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnHeartBeatThreadHeartbeatResponse(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__, "HeartBeat HeartBeat Received");
- m_hHeartbeatThread.m_ThreadState = eSMThreadIsFine;
- return eFrameworkunifiedStatusOK;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnCheckAvailResponse
-/// This function gets service's availability status from HBThread
-/// \param [in] hApp
-/// HANDLE - Handle of the Client Application
-///
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnCheckAvailResponse(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- THbAvailCheck result;
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < THbAvailCheck > (hApp, result))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_tempaltes.h // NOLINT(whitespace/line_length)
- } else if (result.isOk == FALSE) {
- }
- return eFrameworkunifiedStatusOK;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnProcessLauncherThreadHeartbeatResponse
-/// This function gets called when launcher thread replies the
-/// heart beat query sent by the System Manager.
-/// \param [in] hApp
-/// HANDLE - Handle of the Client Application
-///
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnProcessLauncherThreadHeartbeatResponse(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__, "ProcessLaunch HeartBeat Received");
- m_hProcLauncherThread.m_ThreadState = eSMThreadIsFine;
- return eFrameworkunifiedStatusOK;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup RegisterCallbacksForRequester
-/// Register callbacks for External Protocol commands
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::RegisterCallbacksForRequester(HANDLE hApp, PCSTR f_pRequester) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // Attach Session Protocol messages.
- FrameworkunifiedProtocolCallbackHandler l_sm_protocol_handlers[] = {
- // Command ID, Call back functions
- { SS_SM_START_COMPL_RSPN,
- SysMgrCallback<CSystemManager, &CSystemManager::OnModuleStartCompleteResponse> },
- { SS_SM_STOP_COMPL_RSPN,
- SysMgrCallback<CSystemManager, &CSystemManager::OnModuleStopCompleteResponse> },
- { SS_SM_PRE_START_COMPL_RSPN,
- SysMgrCallback<CSystemManager, &CSystemManager::OnModuleStartCompleteResponse> },
- { SS_SM_PRE_STOP_COMPL_RSPN,
- SysMgrCallback<CSystemManager, &CSystemManager::OnModuleStartCompleteResponse> },
- { SS_SM_BACKGROUND_START_COMPL_RSPN,
- SysMgrCallback<CSystemManager, &CSystemManager::OnModuleStartCompleteResponse> },
- { SS_SM_BACKGROUND_STOP_COMPL_RSPN,
- SysMgrCallback<CSystemManager, &CSystemManager::OnModuleStartCompleteResponse> },
- { SS_SM_GET_START_EXT_INFO, SysMgrCallback<CSystemManager,
- &CSystemManager::OnGetStartExtInfo> },
- { SS_SM_GET_STOP_EXT_INFO, SysMgrCallback<CSystemManager,
- &CSystemManager::OnGetStopExtInfo> },
- { SS_SM_CRNT_STATE_QUERY, SysMgrCallback<CSystemManager,
- &CSystemManager::OnCurrentSMStateQuery> },
- { SS_SM_DATA_RESET_MODE_SET_REQ, SysMgrCallback<CSystemManager,
- &CSystemManager::OnSetDataResetModeRequest> },
- { SS_SM_PROG_UPDATE_STATE_SET_REQ, SysMgrCallback<CSystemManager,
- &CSystemManager::OnSetProgUpdateStateRequest> },
-
- { SS_SM__CWORD56__HEARTBEAT_REQ, SysMgrCallback<CSystemManager,
- &CSystemManager::On_CWORD56_HeartBeatRequest> },
- { SS_SM_NEXT_WAKEUP_TYPE_SET_REQ, SysMgrCallback<CSystemManager,
- &CSystemManager::OnSetNextWakeupTypeRequest> },
- // Error Event Logging
- { SS_SM_ERROR_EVENT_LOGGING_START_REQ, SysMgrCallback<CSystemManager,
- &CSystemManager::OnLoggingStartRequest> },
- { SS_SM_ERROR_EVENT_ARTIFACT_REQ, SysMgrCallback<CSystemManager,
- &CSystemManager::OnErrorEventArtifactRequest> },
- { SS_SM_ERROR_EVENT_LOGGING_COMPLETE, SysMgrCallback<CSystemManager,
- &CSystemManager::OnErrorEventLoggingComplete> },
- { SS_SM_DEBUG_DUMP_RSPN, SysMgrCallback<CSystemManager,
- &CSystemManager::OnDebugDumpResponseReceived> },
- { SS_SM_PROPAGATE_SYSTEM_ERROR, SysMgrCallback<CSystemManager,
- &CSystemManager::OnPropagateSystemError> },
- { SS_SM_BOOT_MICRO_RESET_NTF, SysMgrCallback<CSystemManager,
- &CSystemManager::OnBootMicroResetNotification> },
- { SS_SM_BOOT_MICRO_LOG_RSP, SysMgrCallback<CSystemManager,
- &CSystemManager::OnBootMicroLogResponse> },
- { SS_SM_USER_INVOKED_LOG_REQ, SysMgrCallback<CSystemManager,
- &CSystemManager::OnUserInvokedLoggingRequest> },
- { SS_SM_ERROR_EVENT_EEL_EXPORT_REQ, SysMgrCallback<CSystemManager,
- &CSystemManager::OnEelExportRequest> },
- { SS_SM_ERROR_EVENT_INTERFACEUNIFIED_EMMC_LOGS_REQ, SysMgrCallback<CSystemManager,
- &CSystemManager::OnSystemmanagerEmmcLogsRequest> },
- { SS_SM_ERROR_EVENT_CLR_LOGS_REQ, SysMgrCallback<CSystemManager,
- &CSystemManager::OnSystemmanagerClearLogsRequest> },
- { SS_SM_ERROR_EVENT_DIAG_LOG_REQ, SysMgrCallback<CSystemManager,
- &CSystemManager::OnDiagLoggingRequest> },
- { SS_SM_ERROR_EVENT_CAN_LOG_REQ, SysMgrCallback<CSystemManager,
- &CSystemManager::OnCANLoggingRequest> } }; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_eStatus = FrameworkunifiedAttachCallbacksToDispatcher(hApp, f_pRequester,
- l_sm_protocol_handlers, static_cast<UI_32>(_countof(l_sm_protocol_handlers))); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedAttachCallbacksToDispatcher(%s) errored: %d/'%s'", f_pRequester,
- l_eStatus, GetStr(l_eStatus).c_str());
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::RegisterCallbacksForRequester( HANDLE hApp, PCSTR f_pRequester)
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup open_session_with_sm_test_client
-/// Process request to open session with sm test client
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::open_session_with_sm_test_client(HANDLE hApp, PCSTR pRequester) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail;
- UI_32 const l_ui32DefaultSessionID = 0;
- OpenSessionAck tOpenAck = { };
-
-/*
- * Here pRequester is SMTesteClient with whom session is opened and its handle is stored in m_hPowerServiceSession handle.
- * This case comes only while testing SystemManager through SMTestClient (PowerService should not be running).
- */
- // Validate session handle
- if (NULL == m_hPowerServiceSession) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Session Handle NULL, calling FrameworkunifiedMcOpenSender for %s", pRequester);
-
- m_hPowerServiceSession = FrameworkunifiedMcOpenSender(hApp, pRequester);
- //
- // Set the Session Handle for Framework so FrameworkunifiedSendResponse won't error due to a null
- // session handle.
- //
- // LCOV_EXCL_BR_START 4:NSFW's error
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedSetSessionHandle(hApp,
- pRequester, // [in] PCSTR - Name of the associated service name
- m_hPowerServiceSession))) { // [in] HANDLE - Session handle
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 4:NSFW's error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedSetSessionHandle(%s) errored: %d/'%s'", pRequester,
- l_eStatus, GetStr(l_eStatus).c_str());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
- // LCOV_EXCL_STOP
- }
- }
-
- if (m_hPowerServiceSession == NULL) { // LCOV_EXCL_BR_LINE 200:m_hPowerServiceSession must not be NULL
- // LCOV_EXCL_START 200:m_hPowerServiceSession must not be NULL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Invalid Session Handle to service (%s) ", pRequester);
- // LCOV_EXCL_STOP
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Session opened with %s", pRequester);
-
- // Copy session name to data structure
- strncpy(tOpenAck.cSessionName, FrameworkunifiedGetAppName(hApp),
- sizeof(tOpenAck.cSessionName) - 1);
- tOpenAck.eStatus = eFrameworkunifiedStatusOK;
- tOpenAck.sessionId = l_ui32DefaultSessionID;
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "About to send Open Session ACK");
- // send OpenSession ACK
- // LCOV_EXCL_BR_START 4:NSFW's error
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedSendMsg(m_hPowerServiceSession,
- PROTOCOL_OPEN_SESSION_ACK, sizeof(OpenSessionAck),
- (PVOID) & tOpenAck))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 4:NSFW's error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedSendMsg(PROTOCOL_OPEN_SESSION_ACK)");
-
- // Close the message queue handle
- if (NULL != m_hPowerServiceSession) {
- CALL_AND_LOG_STATUS_IF_ERRORED(FrameworkunifiedMcClose(m_hPowerServiceSession));
- m_hPowerServiceSession = NULL;
- }
- // LCOV_EXCL_STOP
- } else {
- CALL_AND_LOG_STATUS_IF_ERRORED(RegisterCallbacksForRequester(hApp, pRequester));
- }
- } // end of else block of if(l_ModuleListIterator->hsession == NULL)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnOpenSession
-/// Process request to open session
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnOpenSession(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- UI_32 const l_ui32DefaultSessionID = 0;
- UI_32 const l_ui32DefaultSessionType = 0;
- OpenSessionAck tOpenAck = { };
- PCSTR pRequester = FrameworkunifiedGetMsgSrc(hApp);
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "%s", pRequester);
-
- ModuleLaunchListIter l_ModuleListIter;
-
- REC_HIST_IF_SUCCESSFUL("PROTOCOL_OPEN_SESSION_REQ", m_SMCmdHist, m_SMHistIter, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- FrameworkunifiedGetMsgSrc(hApp), l_eStatus); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- l_eStatus = GetModuleIterator(pRequester, l_ModuleListIter);
-
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- // Special handling for open session request from SMTestClient.
- if ((0 == strcmp(TC_SysManager, pRequester))) {
- open_session_with_sm_test_client(hApp, pRequester);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: %s not found in Group Launch Map",
- pRequester);
- }
- } else {
- /**********************************************************************/
- if (0 != l_ModuleListIter->pid) {
- UI_32 l_ClientPriority;
- l_eStatus = l_ModuleListIter->GetPriority(l_ClientPriority);
-
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- LOG_ERROR("l_ModuleListIter->GetPriority( l_ClientPriority )"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else if (l_ClientPriority != l_ModuleListIter->configuration_priority) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, " Changing %s's priority from %d to %d",
- pRequester, l_ClientPriority,
- l_ModuleListIter->configuration_priority);
- CALL_AND_LOG_STATUS_IF_ERRORED( // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- l_ModuleListIter->SetPriority( // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- l_ModuleListIter->configuration_priority)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- }
- /**********************************************************************/
-
- // ToDo Jay 2013 Jan 09 REPLACE WITH CORRECT SERVICE / SESSION HANDLE
- // LOGIC
- // validate session handle
- if (NULL == l_ModuleListIter->hsession) {
- // LCOV_EXCL_BR_START 4: nsfw error
- if (NULL == (l_ModuleListIter->hsession = FrameworkunifiedMcOpenSender(hApp, pRequester))) {
- // LCOV_EXCL_BR_STOP 4: nsfw error
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedMcOpenSender(App %s, %s) returned NULL",
- FrameworkunifiedGetAppName(hApp), pRequester);
- return eFrameworkunifiedStatusInvldHandle;
- // LCOV_EXCL_STOP
- }
- } else {
- /*
- * Currently System Manager does not support multiple sessions from same client.
- * When a client gets restarted after Crash or after missing HeartBeat, System Manager
- * would receive OpenSession request from that client even when System Manager already
- * has a open session with that client.
- */
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning: Repeated Session Opening Request from %s", pRequester);
- }
- if (eFrameworkunifiedStatusOK != (l_eStatus = RegisterCallbacksForRequester(hApp, pRequester))) {
- // Close the message queue handle
- if (NULL != l_ModuleListIter->hsession) { // LCOV_EXCL_BR_LINE 6: Due to NULL checking
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedMcClose(l_ModuleListIter->hsession))) {
- LOG_ERROR("FrameworkunifiedMcClose()"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
- l_ModuleListIter->hsession = NULL;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
- }
-
- // Copy session name to data structure
- strncpy(tOpenAck.cSessionName, FrameworkunifiedGetAppName(hApp), sizeof(tOpenAck.cSessionName) - 1);
- tOpenAck.eStatus = eFrameworkunifiedStatusOK;
- tOpenAck.sessionId = l_ui32DefaultSessionID;
- tOpenAck.sessionType = l_ui32DefaultSessionType;
-
- // send OpenSession ACK
- // LCOV_EXCL_BR_START 4: nsfw error
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = FrameworkunifiedSendMsg(l_ModuleListIter->hsession,
- SS_SM_PROTOCOL_OPEN_SESSION_ACK, sizeof(OpenSessionAck),
- (PVOID) & tOpenAck))) { // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedSendMsg( %s, SS_SM_PROTOCOL_OPEN_SESSION_ACK)"
- " errored: %d/'%s'", l_ModuleListIter->name.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
-
- if (NULL != l_ModuleListIter->hsession) {
- // Close the message queue handle
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedMcClose(l_ModuleListIter->hsession))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedMcClose(%s) errored: %d/'%s'",
- l_ModuleListIter->name.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- }
- l_ModuleListIter->hsession = NULL;
- }
- // LCOV_EXCL_STOP
- } else {
- // Store PowerService session handle in class so it can be accessed faster
- // to use opened session while replying to PowerService.
- if ((0 == strcmp(SERVICE_POWER, pRequester))) {
- m_hPowerServiceSession = l_ModuleListIter->hsession;
- }
-
- l_ModuleListIter->SetModuleState(MODULE_STATE_CONNECTED);
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " SM State: %s, %s.is_start_required: %s",
- GetStr(m_SMCurrentState).c_str(), l_ModuleListIter->name.c_str(),
- GetStr(l_ModuleListIter->is_start_required).c_str());
-
- if (l_ModuleListIter->is_start_required
- && ((SS_SM_APPS_START_IN_PROGRESS == m_SMCurrentState)
- || (SS_SM_APPS_START_COMPLETE == m_SMCurrentState))) {
- T_SS_SM_START_DataStructType f_startupData(m_StartUpReason,
- m_PowerType_to_SSBoolEnumMap[m_Wake.powerupType], m_DataResetMode,
- m_startUpConfirmationMsg.securityStatus,
- m_startUpConfirmationMsg.wakeupType, m_DramBackupStatus,
- m_ResetStatus, m_ResetCount);
- const UI_32 l_iCmd = InProgressStateToSendMsg();
- if (l_iCmd != SS_SYSTEM_MANAGER_PROTOCOL_ENDING_INDEX) {
- CALL_AND_LOG_STATUS_IF_ERRORED(l_ModuleListIter->SendMsgAndUpdateState(l_iCmd, &f_startupData)); // LCOV_EXCL_BR_LINE 11: Gcov constraints (because exception-handling routes are automatically generated) // NOLINT(whitespace/line_length)
- }
- }
- }
- }
-
- if (eFrameworkunifiedStatusOK == l_eStatus) {
- std::string l_Subscriber;
- l_Subscriber = FrameworkunifiedGetMsgSrc(hApp);
-
- // check if the heart beat subscriber is already in list
- HBListIter l_HBIter = std::find(m_HBList.begin(), m_HBList.end(), l_Subscriber);
- if (l_HBIter == m_HBList.end()) {
- m_HBList.push_back(l_Subscriber);
- }
- if (m_SMCurrentState == SS_SM_APPS_START_COMPLETE) {
- TSMRequestMessage l_ModuleDetails;
- snprintf(l_ModuleDetails.pstModuleName, sizeof(l_ModuleDetails.pstModuleName),
- "%s", l_Subscriber.c_str());
- l_eStatus = SendRequestToHeartBeat(hApp, SS_HEARTBEAT_APPEND_MODULE_ENTRY,
- &l_ModuleDetails, sizeof(TSMRequestMessage));
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "SendRequestToHeartBeat()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////
-/// ConstructGetResultResponse
-///
-///
-//////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::add_state_information_to_response(CHAR *f_MessageResponse) const {
- const CHAR ReadyToLaunchAppDescription[] = "_READY_TO_LAUNCH:";
- const CHAR StartInProgressDescription[] = "_START_IN_PROGRESS:";
- const CHAR LaunchInProgressDescription[] = "_LAUNCH_IN_PROGRESS:";
- const CHAR LaunchedReadyToStartDescription[] = "_READY_TO_START:";
- const CHAR StopInProgressDescription[] = "_STOP_IN_PROGRESS:";
- const CHAR StartCompleteDescription[] = "_START_COMPLETED:";
- const CHAR WaitingForCriticalAppsToStopDescription[] = "_WAITING_FOR_CRITICAL_APPS_TO_STOP:";
- const CHAR PreStartInProgressDescription[] = "_PRE_START_IN_PROGRESS:";
- const CHAR PreStopInProgressDescription[] = "_PRE_STOP_IN_PROGRESS:";
- const CHAR PreRunCompleteDescription[] = "_PRE_RUN_COMPLETE:";
- const CHAR BackgroundStartInProgressDescription[] = "_BACKGROUND_START_IN_PROGRESS:";
- const CHAR BackgroundStopInProgressDescription[] = "_BACKGROUND_STOP_IN_PROGRESS:";
- const CHAR BackgroundRunCompleteDescription[] = "_BACKGROUND_RUN_COMPLETE:";
- EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- CHAR l_Buffer[5];
- UI_32 l_Index = 0;
-
- std::map<SS_SMModuleState, std::string> StateMap; // State Map
- StateMap[SS_SM_READY_TO_LAUNCH_APP] = ReadyToLaunchAppDescription;
- StateMap[SS_SM_APPS_LAUNCH_IN_PROGRESS] = LaunchInProgressDescription;
- StateMap[SS_SM_APPS_LAUNCHED_READY_TO_START] = LaunchedReadyToStartDescription;
- StateMap[SS_SM_APPS_START_IN_PROGRESS] = StartInProgressDescription;
- StateMap[SS_SM_APPS_START_COMPLETE] = StartCompleteDescription;
- StateMap[SS_SM_APPS_STOPPING_AT__CWORD56__REQ] = StopInProgressDescription;
- StateMap[SS_SM_APPS_STOPPING_AT_INTERNAL_REQ] = StopInProgressDescription;
- StateMap[SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ] =
- WaitingForCriticalAppsToStopDescription;
- StateMap[SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ] =
- WaitingForCriticalAppsToStopDescription;
- StateMap[SS_SM_APPS_PRE_START_IN_PROGRESS] = PreStartInProgressDescription;
- StateMap[SS_SM_APPS_PRE_STOP_IN_PROGRESS] = PreStopInProgressDescription;
- StateMap[SS_SM_APPS_PRE_RUN_COMPLETE] = PreRunCompleteDescription;
- StateMap[SS_SM_APPS_BACKGROUND_START_IN_PROGRESS] = BackgroundStartInProgressDescription;
- StateMap[SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS] = BackgroundStopInProgressDescription;
- StateMap[SS_SM_APPS_BACKGROUND_RUN_COMPLETE] = BackgroundRunCompleteDescription;
-
- itoa(m_SMCurrentState, l_Buffer, 16);
- while (l_Buffer[l_Index]) {
- l_Buffer[l_Index] = toupper(l_Buffer[l_Index]);
- l_Index++;
- }
-
- if (SS_SM_MAX_RESP_MSG_SIZE > (strlen(f_MessageResponse) + sizeof(l_Buffer)
- + StateMap[m_SMCurrentState].length() + 1)) {
- strncat(f_MessageResponse, l_Buffer, sizeof(l_Buffer));
- strncat(f_MessageResponse, StateMap[m_SMCurrentState].c_str(),
- StateMap[m_SMCurrentState].length());
- } else {
- eStatus = eFrameworkunifiedStatusFail;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////
-/// ConstructGetResultResponse
-///
-///
-//////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::construct_get_result_response(CHAR *f_MessageResponse) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- const EFrameworkunifiedStatus eStatus = add_state_information_to_response(f_MessageResponse);
- if (eFrameworkunifiedStatusOK == eStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Response Constructed");
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////
-/// REC_HIST_IF_SUCCESSFUL / SetCmdHist
-///
-///
-//////////////////////////////////////////////////////////////////////
-void CSystemManager::SetCmdHist(std::string cmd, cmdHist &hist, cmdHistIter &it, std::string sender) {
- UI_64 l_time = 0XDEAD;
- CTimeSpan* timerClass = new (std::nothrow) CTimeSpan(); // LCOV_EXCL_BR_LINE 5: Because new cannot fail
- if (NULL == timerClass) { // LCOV_EXCL_BR_LINE 5: Because new cannot fail
- // LCOV_EXCL_START 5: Because new cannot fail
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " 'new (std::nothrow) CTimeSpan()' returned NULL, "
- "'it->m_time' being set to 0xDEAD");
- // LCOV_EXCL_STOP
- } else {
- l_time = timerClass->GetTimeMilliseconds();
- }
-
- pthread_mutex_lock(&sm_hist_mutex);
-
- it->m_time = l_time;
- it->m_cmd = cmd;
- it->m_sender = sender;
- it++;
-
- if (it != hist.end()) { // LCOV_EXCL_BR_LINE 5: std: because it is a member of a vector and it is difficult to create a failing condition
- it = hist.begin();
- }
-
- pthread_mutex_unlock(&sm_hist_mutex);
-
- delete timerClass; // LCOV_EXCL_BR_LINE 5: Because the delete cannot fail
-}
-
-///////////////////////////////////////////////////////////////////////
-/// OnCurrentPowerStateQuery
-///
-///
-//////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnCurrentSMStateQuery(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp);
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "Received from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- SS_SMCurrentState l_CurrentState;
-
- REC_HIST_IF_SUCCESSFUL("SS_SM_CRNT_STATE_QUERY", m_SMCmdHist, m_SMHistIter,
- FrameworkunifiedGetMsgSrc(hApp), l_eStatus);
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < SS_SMCurrentState > (hApp, l_CurrentState))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- } else {
- construct_get_result_response(l_CurrentState.respMsgString);
-
- ModuleLaunchListIter l_ModuleListIter;
- PCSTR l_moduleName = FrameworkunifiedGetMsgSrc(hApp);
- if (eFrameworkunifiedStatusOK != (l_eStatus = GetModuleIterator(l_moduleName, l_ModuleListIter))) { // LCOV_EXCL_BR_LINE 200: can not be other value // NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 200: can not be other value
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Module %s not found in Group Launch Map", l_moduleName);
- // LCOV_EXCL_STOP
- } else if (l_ModuleListIter->hsession != NULL) { // LCOV_EXCL_BR_LINE 200: can not be NULL // NOLINT (whitespace/line_length)
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedSendMsg(l_ModuleListIter->hsession, // LCOV_EXCL_BR_LINE 4: nsfw error
- SS_SM_CRNT_STATE_QUERY_RSPN, sizeof(SS_SMCurrentState),
- (PVOID) & l_CurrentState))) {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedSendMsg(SS_SM_CRNT_STATE_QUERY_RSPN)"); // LCOV_EXCL_LINE 4: nsfw error
- }
- } else {
- // LCOV_EXCL_START 200: can not be NUL
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " NULL == hsession; %s not connected yet",
- l_ModuleListIter->name.c_str());
- // LCOV_EXCL_STOP
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CSystemManager::GetVersionNumber(SS_VersionNumberType & f_VersionNumber) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- CSMVersion cVersion;
- if (eFrameworkunifiedStatusOK != (l_eStatus = cVersion.get_version(f_VersionNumber))) { // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup // NOLINT(whitespace/line_length)
- LOG_ERROR("cVersion.get_version()"); // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup // NOLINT(whitespace/line_length)
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::GetVersionNumber( SS_VersionNumberType
-
-EFrameworkunifiedStatus CSystemManager::GetBuildInfo(std::string &f_BuildInfoStr) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- CSMVersion cVersion;
- if (eFrameworkunifiedStatusOK != (l_eStatus = cVersion.get_build_info(f_BuildInfoStr))) { // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup // NOLINT(whitespace/line_length)
- LOG_ERROR("cVersion.get_build_info()"); // LCOV_EXCL_BR_LINE 6:For setting the initialization conditions at SystemManager startup // NOLINT(whitespace/line_length)
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::GetBuildInfo(std::string)
-
-bool CSystemManager::GetDramPowerStatusInfo(const HANDLE h_app) {
- PsmDramStsT l_dram_sts = PSM_DRAM_STS_NORMAL;
- bool ret = false;
-
- // Checking dram power status.
- if (PsmGetDramPowerSupplyAbnormalityCheckResultPower(h_app, &l_dram_sts))
- return ret;
-
- if (l_dram_sts == PSM_DRAM_STS_NORMAL)
- ret = true;
-
- return ret;
-}
-
-bool CSystemManager::GetDramStoreStatusInfo(const HANDLE h_app) {
- PsmSysupDramT l_dram1 = PSM_SYSUP_DRAM_NORMAL;
- PsmSysupDramT l_dram2 = PSM_SYSUP_DRAM_NORMAL;
- PsmSysupDramT l_dram3 = PSM_SYSUP_DRAM_NORMAL;
- PsmStartStatusT l_sts = PSM_START_STATUS_FACTRESET;
-
- bool ret = false;
-
- // Checking factory shipment status
- if (PsmGetStartStatusPower(h_app, &l_sts))
- return ret;
-
- if (l_sts == PSM_START_STATUS_FACTRESET) {
- ret = true;
- goto finish;
- }
-
- // Checking dram power
- if (!GetDramPowerStatusInfo(h_app))
- goto finish;
-
- // Checking dram status.
- if (PsmGetDramBackupStatusPower(h_app, &l_dram1, &l_dram2, &l_dram3))
- goto finish;
-
- // l_dram2 and l_dram3 would be ignored.
- if (l_dram1 == PSM_SYSUP_DRAM_NORMAL)
- ret = true;
-
- if (l_dram2 == PSM_SYSUP_DRAM_SFTERRSR)
- ret = true;
-
-finish:
- return ret;
-}
-
-bool CSystemManager::GetSyscomPowerStatusInfo(const HANDLE h_app) {
- PsmComStsT l_syscom_sts = PSM_COM_STS_NORMAL;
- bool ret = false;
-
- if (PsmGetSyscomStatusPower(h_app, &l_syscom_sts))
- return ret;
-
- if (l_syscom_sts == PSM_COM_STS_NORMAL)
- ret = true;
-
- return ret;
-}
-
-EFrameworkunifiedStatus CSystemManager::OnSetStartupConfirmationDataRequest(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
- EFrameworkunifiedStatus l_eStatus;
- Pwr_ServiceSetInterface tServiceSetIf;
- // ReadMsg(): *
- // Check hApp ptr, msg size, msg reception, read msg if all ok. *
- // Report any errors found. *
- // *
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = ReadMsg < Pwr_ServiceSetInterface > (hApp, tServiceSetIf))) { // LCOV_EXCL_BR_LINE 4:NSFW's error
- // LCOV_EXCL_START 4:NSFW's error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else {
- m_startUpConfirmationMsg = tServiceSetIf.data.startupConfirmationMsg;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " %s Startup Confirmation data:", FrameworkunifiedGetMsgSrc(hApp));
- SYSTEMMANAGERLOG_StartupConfirmationMsg(m_startUpConfirmationMsg); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- DGCODE_RET_API l_ret = DGCODE_RET_ERROR;
-
- l_ret = Diag_StartupAllStatusOfDTC();
- if (l_ret == DGCODE_RET_ERROR) {
- LOG_ERROR("Diag_StartupAllStatusOfDTC()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
-
- if ((e_SS_SM_NEXT_WAKEUP_TYPE_COLD == m_NextWakeupType) && (epsstCOLDSTART != m_startUpConfirmationMsg.wakeupType)) { // LCOV_EXCL_BR_LINE 6: Because the above formula cannot be set to true // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "WakeupType Change to Cold by Svc Request");
- m_startUpConfirmationMsg.wakeupType = epsstCOLDSTART;
- // LCOV_EXCL_STOP
- }
-
- m_ResetStatus = ((m_isIlgReset == TRUE) ?
- e_SS_SM_RESET_STATUS_NG :
- ((m_isImmediateReset == TRUE) ?
- e_SS_SM_RESET_STATUS_IMMEDIATE : e_SS_SM_RESET_STATUS_NONE));
- if (e_SS_SM_RESET_STATUS_NG == m_ResetStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __PRETTY_FUNCTION__,
- "ResetStatus NG illRst:%s lastErr:Not Support",
- m_isIlgReset ? "TRUE" : "FALSE");
- m_ResetCount++;
- if (PowerHalSetResetInfo(AGL_RESET_COUNTER, m_ResetCount)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not back up m_ResetCount(%lu) to power_hal", m_ResetCount);
- }
- }
-
- m_DramBackupStatus =
- ((epsstWARMSTART != m_startUpConfirmationMsg.wakeupType)
- || (e_SS_SM_DATA_RESET_MODE_FACTORY == m_DataResetMode)
- || (GetDramStoreStatusInfo(hApp) == false)) ?
- e_SS_SM_DRAM_BACKUP_NG : e_SS_SM_DRAM_BACKUP_OK;
-
- if (e_SS_SM_DRAM_BACKUP_NG == m_DramBackupStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __PRETTY_FUNCTION__,
- "DramBackup NG wakeupType:%s dataResetMode:%s",
- (epsstWARMSTART == m_startUpConfirmationMsg.wakeupType) ?
- "WARM" : "COLD",
- (e_SS_SM_DATA_RESET_MODE_FACTORY == m_DataResetMode) ?
- "FACTORY" : "NotFactory");
- }
-
- if (m_needReNotifyStartPrm) { // LCOV_EXCL_BR_LINE 6: Because the condition cannot be satisfied from the external API
- // LCOV_EXCL_BR_START 6: Because both sides are not FALSE
- if (e_SS_SM_DRAM_BACKUP_NG == m_DramBackupStatus) {
- // LCOV_EXCL_BR_STOP
- m_DramBackupStatus = e_SS_SM_DRAM_BACKUP_NG;
- }
- }
-
- if (m_needReNotifyStartPrm) { // LCOV_EXCL_BR_LINE 6: Because the condition cannot be satisfied from the external API
- if (e_SS_SM_RESET_STATUS_NG == m_ResetStatus) {
- // do nothing, keep m_ResetStatus.
- } else if (e_SS_SM_RESET_STATUS_IMMEDIATE == m_ResetStatus) {
- // do nothing, keep m_ResetStatus.
- } else {
- m_ResetStatus = e_SS_SM_RESET_STATUS_NONE;
- }
-
- if (epsstWARMSTART != m_startUpConfirmationMsg.wakeupType) { // LCOV_EXCL_BR_LINE 6: Because the above condition cannot be satisfied // NOLINT(whitespace/line_length)
- m_startUpConfirmationMsg.wakeupType = epsstCOLDSTART;
- }
- }
-
- CALL_AND_LOG_STATUS(ClearDramBackupInfo(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "\n"
- "start prm\n"
- "dramBackupStatus = %s\n"
- "wakeupType = %s\n"
- "dataResetMode = %s\n"
- "resetStatus = %s\n"
- "resetCount = %d\n"
- "progUpdateState = %d",
- (m_DramBackupStatus == e_SS_SM_DRAM_BACKUP_OK) ? "OK" : "NG",
- (m_startUpConfirmationMsg.wakeupType == epsstWARMSTART) ? "WARM" : "COLD",
- (m_DataResetMode == e_SS_SM_DATA_RESET_MODE_FACTORY) ? "FACT" :
- (m_DataResetMode == e_SS_SM_DATA_RESET_MODE_USER) ? "USER" :
- (m_DataResetMode == e_SS_SM_DATA_RESET_MODE_PROGUPDATE) ? "PROG" : "NONE",
- (m_ResetStatus == e_SS_SM_RESET_STATUS_IMMEDIATE) ? "IMM" :
- (m_ResetStatus == e_SS_SM_RESET_STATUS_NONE) ? "NONE" : "NG", m_ResetCount,
- m_ProgUpdateState);
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedNPPublishNotification(hApp, NTFY_SSSystemMgrStartUpType, &m_startUpConfirmationMsg.wakeupType, sizeof(EPWR_SC_WAKEUP_TYPE)))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedNPPublishNotification(%s, %s) errored: %d/'%s'",
- NTFY_SSSystemMgrStartUpType,
- GetStr(m_startUpConfirmationMsg.wakeupType).c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " FrameworkunifiedNPPublishNotification(%s, %s) successful",
- NTFY_SSSystemMgrStartUpType,
- GetStr(m_startUpConfirmationMsg.wakeupType).c_str());
-
- // LCOV_EXCL_BR_START 200: As there are no cases other than eFrameworkunifiedStatusOK
- REC_HIST_IF_SUCCESSFUL("SM/StartUpType",
- m_PubCmdHist, m_PubHistIter, "", l_eStatus);
- // LCOV_EXCL_BR_STOP
- }
- }
-
- EFrameworkunifiedStatus l_responseStatus = l_eStatus;
-
- ModuleLaunchListIter l_ModuleListIter;
- PCSTR l_moduleName = FrameworkunifiedGetMsgSrc(hApp);
- if (eFrameworkunifiedStatusOK != (l_eStatus = GetModuleIterator(l_moduleName, l_ModuleListIter))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Module %s not found in Group Launch Map", l_moduleName);
- } else if (l_ModuleListIter->hsession != NULL) {
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedSendMsg(l_ModuleListIter->hsession, // LCOV_EXCL_BR_LINE 4:NSFW's error
- SS_SM_FWD_START_CONFIRMATION_MSG_RESP, sizeof(EFrameworkunifiedStatus),
- (PVOID) & l_responseStatus))) {
- // LCOV_EXCL_START 4:NSFW's error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedSendMsg(SS_SM_FWD_START_CONFIRMATION_MSG_RESP)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " NULL == hsession; %s not connected yet", l_ModuleListIter->name.c_str());
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnSetStartupConfirmationDataRequest( HANDLE hApp )
-
-EFrameworkunifiedStatus CSystemManager::GetTimeStamp(std::string& TimeStamp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- CHAR format[256] = { '\0' };
- CHAR l_format[256] = { '\0' };
- struct timeb timebuf;
- uint32_t time;
- uint8_t status;
- struct tm theTime;
- ftime(&timebuf);
- Clock_getSystemTimeY2K38(&time, &status);
- CLOCK_RETURN clock_ret = Clock_CnvSecToDateY2K38(&time, &theTime);
-
- if (CLOCK_OK != clock_ret) {
- return eFrameworkunifiedStatusNullPointer;
- }
-
- sprintf(l_format, "GMT Time,%04d-%02d-%02d %02d:%02d:%02d.%hu\n", // NOLINT
- theTime.tm_year + 1900, theTime.tm_mon + 1, theTime.tm_mday,
- theTime.tm_hour, theTime.tm_min, theTime.tm_sec, timebuf.millitm);
-
- struct timespec timeSpec;
-
- if (0 != clock_gettime(CLOCK_MONOTONIC, &timeSpec)) {
- SS_ASERT_ERRNO(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- time_t timeInSecs = timeSpec.tv_sec;
- sprintf(format, "Elaps Time,%ld:%02ld:%02ld\n", (timeInSecs / 3600), // NOLINT
- ((timeInSecs % 3600) / 60), (timeInSecs % 60));
- }
-
- TimeStamp.clear();
- TimeStamp.assign(format);
- TimeStamp.append(l_format);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-VOID CSystemManager::SYSTEMMANAGERLOG_StartupConfirmationMsg(EPWR_SC_MSG_STRUCT & f_scMsg) {
- std::stringstream l_enumStr;
- l_enumStr << endl;
- l_enumStr << " HostProcSoftVer:" << hex << std::setw(16) << std::setfill('0')
- << m_VersionNumberStruct.m_VersionNumber << endl;
- l_enumStr << " _CWORD56_ Boot Mode:" << GetStr(f_scMsg._CWORD56_BootMode) << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_enumStr << " wakeupType :" << GetStr(f_scMsg.wakeupType); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "%s", l_enumStr.str().c_str());
-} // End of VOID CSystemManager::SYSTEMMANAGERLOG_StartupConfirmationMsg( EPWR_SC_MSG_STRUCT & f_scMsg )
-
-VOID CSystemManager::LogESystemmanagerStatusEnums() {
- #define INITIAL_INDEX eFrameworkunifiedStatusEmptyMediaList
- #define FINAL_INDEX eFrameworkunifiedStatusErrNoEINTR
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- std::stringstream l_enumStr;
- for (int i = INITIAL_INDEX; i <= FINAL_INDEX; i++) {
- // LCOV_EXCL_BR_START 11:unexpected branch // NOLINT(whitespace/line_length)
- l_enumStr << "\n" << "0x" << std::setfill('0') << std::setw(8) << hex << i
- << "/" << std::setfill(' ') << std::setw(2) << dec << i << ": "
- << GetStr(static_cast<EFrameworkunifiedStatus>(i));
- // LCOV_EXCL_BR_STOP
- }
-
- std::string l_logMsg = l_enumStr.str();
- SystemmanagerLogString(ZONE_INFO, __FUNCTION__, l_logMsg); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-
-#undef INITIAL_INDEX
-#undef FINAL_INDEX
-} // End of VOID CSystemManager::LogESystemmanagerStatusEnums()
-
-VOID CSystemManager::LogProtocolIDs() {
-#define INITIAL_INDEX SS_SYSTEM_MANAGER_PROTOCOL_BEGINNING_INDEX
-#define FINAL_INDEX SS_SYSTEM_MANAGER_PROTOCOL_ENDING_INDEX
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- std::stringstream l_enumStr;
- for (int i = INITIAL_INDEX; i <= FINAL_INDEX; i++) {
- // LCOV_EXCL_BR_START 11:unexpected branch // NOLINT(whitespace/line_length)
- l_enumStr << "\n" << "0x" << std::setfill('0') << std::setw(8) << hex << i
- << "/" << std::setfill(' ') << std::setw(2) << dec << i << ": "
- << GetStr(static_cast<SS_SystemManagerProtocol>(i));
- // LCOV_EXCL_BR_STOP
- }
-
- std::string l_logMsg = l_enumStr.str();
- SystemmanagerLogString(ZONE_INFO, __FUNCTION__, l_logMsg); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-
-#undef INITIAL_INDEX
-#undef FINAL_INDEX
-} // End of VOID CSystemManager::LogProtocolIDs()
-
-VOID CSystemManager::SystemmanagerLogString(TFrameworkunifiedZone f_zone, PCSTR f_func, std::string &f_text) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- UI_32 l_offset = 0;
- UI_32 l_msgLenMax = MAX_QUEUE_MSG_SIZE - 512; // Leave space for the appending of
- // the NSLog date/time/service/line string.
-
- if (f_text.at(f_text.length() - 1) == '\n') { // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- f_text.erase(f_text.length() - 1); // LCOV_EXCL_LINE 6: For setting the initialization conditions at SystemManager startup
- }
-
- while (l_offset < f_text.size()) {
- UI_32 l_charsRem = static_cast<UI_32>(f_text.size() - l_offset);
- UI_32 l_msgLen = (l_charsRem > l_msgLenMax) ? // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup
- l_msgLenMax : l_charsRem; // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup
- std::string l_msgStr = f_text.substr(l_offset, l_msgLen);
- size_t l_newLinePos = l_msgStr.find_last_of("\n", l_msgLen);
- if ((l_newLinePos != std::string::npos) && (l_charsRem > l_msgLenMax)) { // LCOV_EXCL_BR_LINE 6: For setting the initialization conditions at SystemManager startup // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 6: For setting the initialization conditions at SystemManager startup
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_msgStr = f_text.substr(l_offset, l_newLinePos);
- l_offset += static_cast<UI_32>(l_newLinePos);
- // LCOV_EXCL_STOP
- } else {
- l_offset += l_msgLen;
- }
-
- FRAMEWORKUNIFIEDLOG(f_zone, f_func, l_msgStr.c_str());
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-} // LCOV_EXCL_BR_LINE 10: Final line
-
-// End of /SS_SystemManager/src/ss_system_manager.cpp
diff --git a/systemservice/system_manager/server/src/ss_system_manager_callbacks.cpp b/systemservice/system_manager/server/src/ss_system_manager_callbacks.cpp
deleted file mode 100755
index 2e597ce..0000000
--- a/systemservice/system_manager/server/src/ss_system_manager_callbacks.cpp
+++ /dev/null
@@ -1,3411 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager business logic.
-///
-///////////////////////////////////////////////////////////////////////////////
-#include <system_service/ss_heartbeat_service_protocol.h>
-#include <system_service/ss_system_manager_if.h>
-#include <system_service/ss_system_manager_if_local.h>
-#include <native_service/frameworkunified_multithreading.h>
-#include <sys/wait.h>
-#include <system_service/ss_system_manager_notifications.h>
-#include <system_service/ss_system_manager_notifications_local.h>
-#include <native_service/frameworkunified_framework_if.h>
-#include <system_service/ss_services.h>
-#include <system_service/ss_power_service_if.h>
-#include <processlauncher/ProcessLauncher.h>
-#include <processlauncher/ss_sm_process_launcher_protocol.h>
-#include <processlauncher/ss_sm_process_launcher.h>
-#include <heartbeat/ss_hb_thread.h>
-
-#include <system_service/ss_power_service_notifications.h>
-#include <system_service/ss_power_service_protocol.h>
-
-#include <native_service/ns_np_service.h>
-#include <native_service/ns_np_service_protocol.h>
-#include <native_service/ns_backup.h>
-
-#include <stub/ss_diag.h>
-
-#include <system_service/ss_error_message.h>
-#include <system_service/ss_test_clients.h>
-#include <system_service/ss_templates.h>
-#include <native_service/ns_plogger_if.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <iomanip>
-#include <vector>
-#include <algorithm>
-#include <string>
-
-#include "ss_system_manager_callbacks.h"
-#include "ss_system_manager.h"
-#include "ss_sm_systemmanagerlog.h"
-#include "ss_sm_config.h"
-
-using namespace std; // NOLINT
-
-extern SS_String GetStr(SS_SMModuleState f_enum);
-
-template<typename C, eFrameworkunifiedStatus (C::*M)(HANDLE)> EFrameworkunifiedStatus SysMgrCallback(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail;
- C * pObj = static_cast<C *>(&CSystemManager::GetInstance());
- if (pObj) { // LCOV_EXCL_BR_LINE 5 : new error
- l_eStatus = (pObj->*M)(hApp);
- }
- return l_eStatus;
-}
-
-template<typename C, eFrameworkunifiedStatus (C::*M)(HANDLE, UI_32)>
-EFrameworkunifiedStatus SysMgrCbType2(HANDLE hApp, UI_32 f_UI_32) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail;
- C * pObj = static_cast<C *>(&CSystemManager::GetInstance());
- if (pObj) { // LCOV_EXCL_BR_LINE 5 : new error
- l_eStatus = (pObj->*M)(hApp, f_UI_32);
- }
- return l_eStatus;
-}
-
-template<typename C, BOOL (C::*M)(UI_32)>
-BOOL SysMgrCbType3(UI_32 f_UI_32) {
- BOOL l_bValue = FALSE;
- C * pObj = static_cast<C *>(&CSystemManager::GetInstance());
- if (pObj) { // LCOV_EXCL_BR_LINE 5 : new error
- l_bValue = (pObj->*M)(f_UI_32);
- }
- return l_bValue;
-}
-
-enum {
- POWERON = TRUE,
- POWEROFF = FALSE
-};
-
-VOID CSystemManager::LogGroupModulesState(UI_32 f_groupId, std::string pStr) {
- if (IS_ZONE_SET(ZONE_INFO)) { // LCOV_EXCL_BR_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- // LCOV_EXCL_START 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.find(f_groupId);
- if (l_GroupIterator == m_MapProclaunchGrps.end()) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Group %d not found; 'm_MapProclaunchGrps' is empty",
- f_groupId);
- } else {
- std::string sIsOKFlag;
- TEXT(__FUNCTION__, " Group %d/%s, %ld modules: %s, %s", f_groupId,
- l_GroupIterator->second.name.c_str(),
- l_GroupIterator->second.modules.size(), pStr.c_str(),
- GetStr(m_SMCurrentState).c_str());
-
- ModuleLaunchListIter l_ModuleListIterator = l_GroupIterator->second.modules.begin();
- for (int i = 1;
- l_ModuleListIterator != l_GroupIterator->second.modules.end();
- l_ModuleListIterator++, i++) {
- sIsOKFlag = GetModuleCondition(l_ModuleListIterator) ? " " : // 'blank' means OK
- "X"; // 'X' means state mismatch
-
- TEXT(__FUNCTION__,
- " %2d: %-24s Start Req'd: %-5s %s %-24s %3dms, %3dms, %d",
- i, l_ModuleListIterator->name.c_str(),
- l_ModuleListIterator->is_start_required ?
- "TRUE" : "FALSE", sIsOKFlag.c_str(),
- l_ModuleListIterator->ModuleStateStr().c_str(),
- static_cast<SI_16>(l_ModuleListIterator->m_startReason.GetDelta()),
- static_cast<SI_16>(l_ModuleListIterator->m_stopReason.GetDelta()),
- l_ModuleListIterator->pid);
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- // LCOV_EXCL_STOP
- }
-} // End of VOID CSystemManager::LogGroupModulesState( UI_32 f_groupId, std::string pStr)
-
-VOID CSystemManager::LogAllGroupModulesState(std::string pStr) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- std::string l_sIsOKFlag;
- GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.begin();
-
- std::stringstream l_comStream;
-
- l_comStream << pStr << "," << GetStr(m_SMCurrentState);
-
- std::string l_comStr = l_comStream.str();
- SystemmanagerLogString(ZONE_STATE, __FUNCTION__, l_comStr);
-
- while (l_GroupIterator != m_MapProclaunchGrps.end()) {
- std::stringstream l_tblStream;
- l_tblStream << "G" << l_GroupIterator->second.id << "/" << l_GroupIterator->second.name;
-
- ModuleLaunchListIter l_ModuleListIterator = l_GroupIterator->second.modules.begin();
-
- for (int i = 1;
- l_ModuleListIterator != l_GroupIterator->second.modules.end();
- l_ModuleListIterator++, i++) {
- // Since NPPService exceptionally transitions to STARTED when StartReq'd = N, it is not checked
- l_sIsOKFlag =
- GetModuleCondition(l_ModuleListIterator)
- | (FRAMEWORKUNIFIED_NS_NPSERVICE == l_ModuleListIterator->name) ?
- " " : // 'blank' means OK
- "X"; // 'X' means state mismatch
-
- std::string l_isStartReqd = l_ModuleListIterator->is_start_required ? "T" : "F";
-
- l_tblStream << endl << " " << std::setw(2) << std::right << i << ":"
- << l_ModuleListIterator->pid << " "
- << l_ModuleListIterator->name << " " << "StartReq:"
- << l_isStartReqd << " " << l_sIsOKFlag
- << l_ModuleListIterator->ModuleStateStr();
-
- if (l_ModuleListIterator->is_start_required && (FRAMEWORKUNIFIED_NS_NPSERVICE != l_ModuleListIterator->name)) { // LCOV_EXCL_BR_LINE 6: Because the condition cannot be set // NOLINT(whitespace/line_length)
- l_tblStream << " "
- << static_cast<SI_32>(l_ModuleListIterator->m_startReason.GetDelta())
- << "ms "
- << static_cast<SI_32>(l_ModuleListIterator->m_stopReason.GetDelta())
- << "ms";
- }
- }
-
- l_GroupIterator++;
-
- // Outputs each GROUP so that buffers do not overflow.
- std::string l_logMsgStr = l_tblStream.str();
- SystemmanagerLogString(ZONE_STATE, __FUNCTION__, l_logMsgStr);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-} // End of VOID CSystemManager::LogAllGroupModulesState(std::string pStr)
-
-BOOL CSystemManager::GetModuleCondition(ModuleLaunchListIter & f_ModuleIter) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- BOOL l_bIsModuleStateGood = TRUE;
-
- switch (m_SMCurrentState) { // LCOV_EXCL_BR_LINE 6: As no values are passed into the default case
- case SS_SM_READY_TO_LAUNCH_APP:
- l_bIsModuleStateGood = f_ModuleIter->IsModuleState(MODULE_STATE_INVALID);
- break;
-
- case SS_SM_APPS_LAUNCH_IN_PROGRESS:
- l_bIsModuleStateGood = f_ModuleIter->IsModuleState(MODULE_STATE_SKIPPED)
- || f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCH_FAILED)
- || f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHING)
- || f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHED);
- break;
-
- case SS_SM_APPS_LAUNCHED_READY_TO_START:
- l_bIsModuleStateGood = f_ModuleIter->IsModuleState(MODULE_STATE_SKIPPED)
- || f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCH_FAILED)
- || f_ModuleIter->IsModuleState(MODULE_STATE_CONNECTED)
- || f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHED);
- break;
-
- case SS_SM_APPS_START_IN_PROGRESS:
- l_bIsModuleStateGood = f_ModuleIter->IsModuleState(MODULE_STATE_SKIPPED)
- || f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCH_FAILED)
- || (f_ModuleIter->is_start_required
- && (f_ModuleIter->IsModuleState(MODULE_STATE_START_SENT)
- || f_ModuleIter->IsModuleState(
- MODULE_STATE_STARTED)))
- || (!f_ModuleIter->is_start_required
- && (f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHED)
- || f_ModuleIter->IsModuleState(
- MODULE_STATE_CONNECTED)));
- break;
-
- case SS_SM_APPS_START_COMPLETE:
- l_bIsModuleStateGood =
- ((f_ModuleIter->IsModuleState(MODULE_STATE_SKIPPED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCH_FAILED) == TRUE)
- || ((f_ModuleIter->is_start_required == TRUE)
- && (f_ModuleIter->IsModuleState(MODULE_STATE_STARTED) == TRUE))
- || ((f_ModuleIter->is_start_required == FALSE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_CONNECTED) == TRUE)))) ? (BOOL) TRUE : (BOOL) FALSE;
- break;
-
- case SS_SM_APPS_PRE_START_IN_PROGRESS:
- l_bIsModuleStateGood =
- ((f_ModuleIter->IsModuleState(MODULE_STATE_SKIPPED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCH_FAILED) == TRUE)
- || ((f_ModuleIter->is_start_required == TRUE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_START_PRE_SENT) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_STARTED_PRE) == TRUE)))
- || ((f_ModuleIter->is_start_required == FALSE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_CONNECTED) == TRUE)))) ? (BOOL) TRUE : (BOOL) FALSE;
- break;
-
- case SS_SM_APPS_PRE_STOP_IN_PROGRESS:
- l_bIsModuleStateGood =
- ((f_ModuleIter->IsModuleState(MODULE_STATE_SKIPPED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCH_FAILED) == TRUE)
- || ((f_ModuleIter->is_start_required == TRUE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_STOP_PRE_SENT) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_STOPPED_PRE) == TRUE)))
- || ((f_ModuleIter->is_start_required == FALSE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_CONNECTED) == TRUE)))) ? (BOOL) TRUE : (BOOL) FALSE;
- break;
-
- case SS_SM_APPS_PRE_RUN_COMPLETE:
- l_bIsModuleStateGood =
- ((f_ModuleIter->IsModuleState(MODULE_STATE_SKIPPED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCH_FAILED) == TRUE)
- || ((f_ModuleIter->is_start_required == TRUE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_STARTED_PRE) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_STOPPED_PRE) == TRUE)))
- || ((f_ModuleIter->is_start_required == FALSE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_CONNECTED) == TRUE)))) ? (BOOL) TRUE : (BOOL) FALSE;
- break;
-
- case SS_SM_APPS_BACKGROUND_START_IN_PROGRESS:
- l_bIsModuleStateGood =
- ((f_ModuleIter->IsModuleState(MODULE_STATE_SKIPPED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCH_FAILED) == TRUE)
- || ((f_ModuleIter->is_start_required == TRUE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_START_BACKGROUND_SENT) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_STARTED_BACKGROUND) == TRUE)))
- || ((f_ModuleIter->is_start_required == FALSE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_CONNECTED) == TRUE)))) ? (BOOL) TRUE : (BOOL) FALSE;
- break;
-
- case SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS:
- l_bIsModuleStateGood =
- ((f_ModuleIter->IsModuleState(MODULE_STATE_SKIPPED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCH_FAILED) == TRUE)
- || ((f_ModuleIter->is_start_required == TRUE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_STOP_BACKGROUND_SENT) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_STOPPED_BACKGROUND) == TRUE)))
- || ((f_ModuleIter->is_start_required == FALSE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_CONNECTED) == TRUE)))) ? (BOOL) TRUE : (BOOL) FALSE;
- break;
- case SS_SM_APPS_BACKGROUND_RUN_COMPLETE:
- l_bIsModuleStateGood =
- ((f_ModuleIter->IsModuleState(MODULE_STATE_SKIPPED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCH_FAILED) == TRUE)
- || ((f_ModuleIter->is_start_required == TRUE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_STARTED_BACKGROUND) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_STOPPED_BACKGROUND) == TRUE)))
- || ((f_ModuleIter->is_start_required == FALSE)
- && ((f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHED) == TRUE)
- || (f_ModuleIter->IsModuleState(MODULE_STATE_CONNECTED) == TRUE)))) ? (BOOL) TRUE : (BOOL) FALSE;
- break;
-
- case SS_SM_APPS_STOPPING_AT__CWORD56__REQ:
- case SS_SM_APPS_STOPPING_AT_INTERNAL_REQ:
- l_bIsModuleStateGood = f_ModuleIter->IsModuleState(MODULE_STATE_SKIPPED)
- || f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCH_FAILED)
- || (f_ModuleIter->is_start_required
- && (f_ModuleIter->IsModuleState(MODULE_STATE_STOP_SENT)
- || f_ModuleIter->IsModuleState(
- MODULE_STATE_STOPPED)))
- || (!f_ModuleIter->is_start_required
- && (f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHED)
- || f_ModuleIter->IsModuleState(
- MODULE_STATE_CONNECTED)));
- break;
-
- case SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ:
- case SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ:
- l_bIsModuleStateGood = f_ModuleIter->IsModuleState(MODULE_STATE_SKIPPED)
- || f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCH_FAILED)
- || (f_ModuleIter->is_start_required
- && f_ModuleIter->IsModuleState(MODULE_STATE_STOPPED))
- || (!f_ModuleIter->is_start_required
- && (f_ModuleIter->IsModuleState(MODULE_STATE_LAUNCHED)
- || f_ModuleIter->IsModuleState(
- MODULE_STATE_CONNECTED)));
- break;
-
- // default: Don't code a 'default' here - let the compiler
- // issue a warning ( set via -Wall or -Wswitch ) when the set of
- // enumerations changes - then the maintainer will
- // automagically know to update this switch statement.
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_bIsModuleStateGood;
-} // End of BOOL CSystemManager::GetModuleCondition( ModuleLaunchListIter & f_ModuleIter )
-
-/*****************************************************************************
- @ingroup: CSystemManager
- @brief: Post Termination handler
- @note: .
- @param void
- @return void
-*****************************************************************************/
-EFrameworkunifiedStatus CSystemManager::SendRequestToHeartBeat(HANDLE hApp,
- EHBProtocolMessages tRequest, VOID *tReqMessageData,
- UI_32 u32SizeofMessage) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- BOOL bValid = FALSE;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- switch (tRequest) {
- case SS_HEARTBEAT_START:
- bValid = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "SS_HEARTBEAT_START");
- break;
-
- case SS_HEARTBEAT_STOP:
- bValid = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "SS_HEARTBEAT_STOP");
- tReqMessageData = NULL;
- break;
-
- case SS_HEARTBEAT_DELETE_MODULE_ENTRY:
- bValid = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "SS_HEARTBEAT_DELETE_MODULE_ENTRY");
- break;
-
- case SS_HEARTBEAT_APPEND_MODULE_ENTRY:
- bValid = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "SS_HEARTBEAT_APPEND_MODULE_ENTRY");
- break;
-
- default:
- bValid = FALSE;
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error : Ignored Invalid message id 0x%X", tRequest);
- break;
- }
-
- if (TRUE == bValid) { // LCOV_EXCL_BR_LINE 200:tRequest cannot be default, so bValid cannot be false
- if (INVALID_HANDLE != m_hHeartbeatThread.m_ThreadHdl) { // LCOV_EXCL_BR_LINE 200:m_ThreadHdl cannot be null
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedSendChild(hApp, m_hHeartbeatThread.m_ThreadHdl, tRequest, u32SizeofMessage, tReqMessageData))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedSendChild()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- }
- } else {
- // LCOV_EXCL_START 200: m_ThreadHdl cannot be null
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusInvldHandle;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error : Invalid Heartbeat Thread Handle, cannot send message");
- // LCOV_EXCL_STOP
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnModuleConnectWaitTimeout
-/// SM maintains timer (40 sec) to check if all modules opened session with him whoever requires Start.
-/// This timer is common to all modules. After timeout it checks the status of every module in group map.
-/// If a module requires start and does not connect, SM will initiate error event logging followed by Soft Reset
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnModuleConnectWaitTimeout(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- static SI_32 l_NumTimesChecked = 0;
- {
- char l_cFormat[] = " Received from (Timer expiration %d)";
- char l_cBuf[sizeof(l_cFormat) + 1];
- snprintf(l_cBuf, sizeof(l_cBuf), l_cFormat, l_NumTimesChecked + 1);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, l_cBuf);
- }
-
- std::string l_ProcName;
-
- SetCmdHist("SM_TIMER_MODULE_CONNECT_WAIT_TIMER", m_TimerCmdHist, // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- m_TimerHistIter, FrameworkunifiedGetMsgSrc(hApp)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- BOOL l_bModuleConnMissed = false;
-
- GroupLaunchMap::reverse_iterator l_grp_riter = m_MapProclaunchGrps.rbegin();
-
- ModuleLaunchList::reverse_iterator l_mod_riter;
-
- if (l_grp_riter == m_MapProclaunchGrps.rend()) { // LCOV_EXCL_BR_LINE 200: group cannot be empty
- // LCOV_EXCL_START 200: group cannot be empty
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error: Group Map is Empty"); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- l_eStatus = eFrameworkunifiedStatusDbRecNotFound;
- // LCOV_EXCL_STOP
- } else {
- // scan the group map in reverse order
- for (; l_grp_riter != m_MapProclaunchGrps.rend(); l_grp_riter++) {
- l_mod_riter = l_grp_riter->second.modules.rbegin();
- for (; l_mod_riter != l_grp_riter->second.modules.rend();
- l_mod_riter++) {
- SMModuleState l_ModuleState = l_mod_riter->GetModuleState();
- // if the module is still in MODULE_STATE_LAUNCHED state at
- // this point though it requires start something is wrong with
- // the module. SM initiates error event logging followed by
- // soft rest
- if (l_mod_riter->is_start_required
- && ((l_ModuleState == MODULE_STATE_INVALID)
- || (l_ModuleState == MODULE_STATE_SKIPPED)
- || (l_ModuleState == MODULE_STATE_LAUNCHING)
- || (l_ModuleState == MODULE_STATE_LAUNCHED)
- || (l_ModuleState == MODULE_STATE_LAUNCH_FAILED))) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Module %s/%s is not connected",
- l_mod_riter->name.c_str(),
- l_mod_riter->ModuleStateStr().c_str());
- l_bModuleConnMissed = true;
- l_ProcName.assign(l_mod_riter->name);
-
- if (l_ModuleState == MODULE_STATE_LAUNCHED) {
- CALL_AND_LOG_STATUS_IF_ERRORED( // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- l_mod_riter->SetPriority( // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- m_SystemManagerPriority - 1)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- }
- }
- }
- }
-
- PreLaunchModuleListIter l_itr;
- for (l_itr = m_PreLaunchModuleList.begin();
- m_PreLaunchModuleList.end() != l_itr; l_itr++) {
- if ((-1 == l_itr->pid) && (l_itr->critical)) { // LCOV_EXCL_BR_LINE 200: all prelaunch mode is not critical // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 200: all prelaunch mode is not critical
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, " Module %s is not launched", // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- l_itr->name.c_str()); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- l_bModuleConnMissed = true;
- l_ProcName.assign(l_itr->name);
- }
- // LCOV_EXCL_STOP
- }
-
- l_NumTimesChecked++;
- if (true == l_bModuleConnMissed) {
- if (l_NumTimesChecked < m_SMConfig.MCConfig.ModuleConnectionNumTimesToCheck) {
- char l_cFormat[] =
- " l_NumTimesChecked %d < ModuleConnectionNumTimesToCheck %d, "
- "will re-check in %d seconds. ";
- char l_cBuf[sizeof(l_cFormat) + 1 + 1 + 1];
- snprintf(l_cBuf, sizeof(l_cBuf), l_cFormat, l_NumTimesChecked,
- m_SMConfig.MCConfig.ModuleConnectionNumTimesToCheck,
- m_SMConfig.MCConfig.ModuleConnectionTimeOutSec);
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, l_cBuf);
-
- } else {
- l_eStatus = eFrameworkunifiedStatusBadConnection;
- char l_cFormat[] =
- " Module connection timeout for %s and "
- "l_NumTimesChecked %d == ModuleConnectionNumTimesToCheck %d. "
- " Stopping ModuleConnectTimeOut timer and resetting _CWORD102_.";
- char l_cBuf[sizeof(l_cFormat) + MAX_NAME_SIZE_APP + 1 + 1];
- snprintf(l_cBuf, sizeof(l_cBuf), l_cFormat, l_ProcName.c_str(),
- l_NumTimesChecked,
- m_SMConfig.MCConfig.ModuleConnectionNumTimesToCheck);
- LOG_ERROR(l_cBuf); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER_MODULE_CONNECT_WAIT_TIMER]); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- SMLoggingInfo l_loggingInfo; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_loggingInfo.resetReason = e_SS_SM_CPU_RESET_REASON_GENERIC_ERR; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- // initiate error event logging
- l_eStatus = ErrorEventEnqueue(hApp, eErrorEventTypeModConnFailed,
- l_ProcName, eErrorEventResetTypeHard, l_loggingInfo);
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: ModConnFailed %s",
- l_ProcName.c_str());
- fprintf(stderr, "SS_SysManager/%s/Error: ModConnFailed %s\n", // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- __FUNCTION__, l_ProcName.c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(eErrorEventTypeModConnFailed)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
- } else {
- char l_cFormat[] =
- " l_NumTimesChecked = %d, ModuleConnectionNumTimesToCheck = %d. "
- "All modules connected. Stopping ModuleConnectTimeOut timer.";
- char l_cBuf[sizeof(l_cFormat) + 1 + 1];
- snprintf(l_cBuf, sizeof(l_cBuf), l_cFormat, l_NumTimesChecked,
- m_SMConfig.MCConfig.ModuleConnectionNumTimesToCheck);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, l_cBuf);
-
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER_MODULE_CONNECT_WAIT_TIMER]); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnModuleConnectWaitTimeout( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnClientStartMonitorTimerExpiry
-///
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnClientStartMonitorTimerExpiry(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Received from group %d"
- //, m_ActiveGroupId);
- , m_SystemStarter.get_id());
-
- char cBuf[100];
- SetCmdHist("SM_TIMER_CLIENT_START_MONITOR", m_TimerCmdHist, m_TimerHistIter, FrameworkunifiedGetMsgSrc(hApp)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- // sprintf( cBuf, "ProcessGroupAsStarted(%d)", m_ActiveGroupId);
- sprintf(cBuf, "ProcessGroupAsStarted(%d)", m_SystemStarter.get_id()); // NOLINT
- l_eStatus = ProcessGroupAsStarted(hApp, m_SystemStarter.get_id());
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, cBuf); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-
-
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup send_power_request_complete_response
-/// send power request completion response to power
-///
-/// \param [in]
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::send_power_request_complete_response(HANDLE hApp, std::string pStr) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- // send Wake-up complete response to Power
- l_eStatus = FrameworkunifiedSendMsg(m_hPowerServiceSession,
- SS_SM_WAKEUP_MODULES_CMPL_RSPN, sizeof(wakeInfo), (PVOID) & m_Wake);
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, "FrameworkunifiedSendMsg(SS_SM_WAKEUP_MODULES_CMPL_RSPN)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- LogAllGroupModulesState(pStr);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::send_power_request_complete_response( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnNPPStatusCheckMonitorTimerExpiry
-///
-/// \brief Called when NPP fails to provide a ready status in the specified.
-/// amount of time. This function will periodically request a new status
-/// ACK from NPP service until one is received. See OnNPPReadyStatusCallback().
-///
-/// Note: NPP usually pushes a ready event to SM and the reversion to
-/// polling the NPP ready ACK is for additional robustness. Failure
-/// to receive an NPP ready ACK will prevent system startup.
-///
-/// \param [in] hApp - Handle to framework application.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnNPPStatusCheckMonitorTimerExpiry(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- SetCmdHist("SM_TIMER_NPP_STATUS_CHECK_MONITOR", m_TimerCmdHist, // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- m_TimerHistIter, FrameworkunifiedGetMsgSrc(hApp)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " m_bIsNPP_ServicesStarted is '%s'",
- GetStr(m_bIsNPP_ServicesStarted).c_str());
-
- if (FALSE == m_bIsNPP_ServicesStarted) {
- l_eStatus = FrameworkunifiedNPGetReadyStatusOfNPP(hApp);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "FrameworkunifiedNPGetReadyStatusOfNPP()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnNPPReadyStatusCallback
-///
-/// \brief Called when NPP returns a status ACK indicating that the service is
-/// operational and ready to respond to subsequent requests.
-///
-/// \param [in] hApp - Handle to framework application.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnNPPReadyStatusCallback(HANDLE hApp) { // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- SetCmdHist("NPS_GET_READYSTATUS_ACK", m_SMCmdHist, m_SMHistIter, FrameworkunifiedGetMsgSrc(hApp));
-
- l_eStatus = OnNPPReadyEventCallback(hApp);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "OnNPPReadyEventCallback()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-// LCOV_EXCL_STOP
-
-EFrameworkunifiedStatus CSystemManager::OnNPPReadyEventCallback(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- PCSTR l_moduleName = FrameworkunifiedGetMsgSrc(hApp);
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "from %s", l_moduleName);
-
- SetCmdHist("NPS_NPP_READY_EVENT", m_SMCmdHist, m_SMHistIter, l_moduleName); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (TRUE == m_bIsNPP_ServicesStarted) {
- l_eStatus = eFrameworkunifiedStatusMsgNotProcessed;
- LOG_ERROR("TRUE == m_bIsNPP_ServicesStarted"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- ModuleLaunchListIter l_ModuleListIter;
- m_bIsNPP_ServicesStarted = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " m_bIsNPP_ServicesStarted set 'TRUE'");
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER_NPP_STATUS_CHECK_MONITOR]);
-
- UI_32 l_cbCmdIdArrayNPPService[] = { NPS_NPP_READY_EVENT, NPS_GET_READYSTATUS_ACK };
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedDetachCallbacksFromDispatcher(hApp, FRAMEWORKUNIFIED_NS_NPSERVICE, l_cbCmdIdArrayNPPService, static_cast<UI_32>(_countof(l_cbCmdIdArrayNPPService))))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedDetachCallbacksFromDispatcher()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = register_all_notification_callbacks(hApp))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("register_all_notification_callbacks()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = GetModuleIterator(l_moduleName, l_ModuleListIter))) { // LCOV_EXCL_BR_LINE 200:NPP always in launch map //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 200 : NPP service always in launch map
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- " Error: Module %s not found in Group Launch Map", // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- l_moduleName); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else {
- l_ModuleListIter->SetModuleState(MODULE_STATE_STARTED);
-
- if (m_oSystemLauncher.get_id() == 1) {
- m_oSystemLauncher.advance_id();
- }
-
- l_eStatus = OnLaunchGroup(hApp);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "OnLaunchGroup(hApp)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- if (eFrameworkunifiedStatusOK == l_eStatus) { // LCOV_EXCL_BR_LINE 200: OnLaunchGroup() return ok
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " successful");
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnNPPReadyEventCallback( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnBackupMgrAvailCallback
-/// BackupManager Availability Notification Callback
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnBackupMgrAvailCallback(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- if (sizeof(ServiceAvailability) != FrameworkunifiedGetMsgLength(hApp)) { // LCOV_EXCL_BR_LINE 4: nsfw error
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- l_eStatus = eFrameworkunifiedStatusFail;
- } else if (strcmp(FrameworkunifiedGetLastNotification(hApp), NTFY_BackupMgr_Availability) != 0) { // LCOV_EXCL_BR_LINE 200:cannot be false //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 200: cannot be false
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- l_eStatus = eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- } else {
- m_bIsBackupAvail = FrameworkunifiedIsServiceAvailable(hApp);
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "BackupAvail:%s", m_bIsBackupAvail ? "T" : "F");
-
- l_eStatus = OnLaunchGroup(hApp);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "OnLaunchGroup(hApp)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnBackupMgrAvailCallback(HANDLE hApp)
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnPowerRequestCallback
-/// PowerRequest callback handler
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnPowerRequestCallback(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- Pwr_ServiceSetInterface tServiceIf;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- SetCmdHist("SS_SM_POWER_REQUEST_MSG", m__CWORD56_CmdHist, m__CWORD56_HistIter, FrameworkunifiedGetMsgSrc(hApp));
-
- // OnSystemManagerDebugDump(hApp);
- // ReadMsg(): *
- // Check hApp ptr, msg size, msg reception, read msg if all ok. *
- // Report any errors found. *
- // *
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < Pwr_ServiceSetInterface > (hApp, tServiceIf))) { // LCOV_EXCL_BR_LINE 4:NSFW error case //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else {
- // NOTE: interface_unified always set userMode as 0. so don't use m_lastUserMode.
- m_lastUserMode = tServiceIf.data.powerRequestMsg.userMode;
- //
- // 2012 December 04 Temporary hack ( I hope ) to set m_Wake to nominal
- // values. At present, the 'Power Request Message Response' is sent
- // back to Power Services via the 'send_power_request_complete_response()'
- // function, which uses m_Wake.
- m_Wake.powerupType =
- m_SSBool_to_PowerTypeEnumMap[m_SSUserMode_to_SSBoolEnumMap[m_lastUserMode]];
-
- m_Wake.up.factor = tServiceIf.data.powerRequestMsg.startupReason;
-
- if (epswfINVALID != m_Wake.up.factor) {
- m_StartUpReason = m_Wake.up.factor;
- }
-
- m_userModeChangeReason = tServiceIf.data.powerRequestMsg.userModeChangeReason;
- m_Wake.up.userModeChangeReason = m_userModeChangeReason;
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "UserMode:%s, SM State:%s",
- GetStr(m_lastUserMode).c_str(),
- GetStr(m_SMCurrentState).c_str());
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "UserMode:%s, SM State:%s",
- GetStr(m_lastUserMode).c_str(),
- GetStr(m_SMCurrentState).c_str());
- CALL_AND_LOG_STATUS(PublishPowerOnOffNotification(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- switch (m_SMCurrentState) { // LCOV_EXCL_BR_LINE 6: As not all cases can be passed through
- case SS_SM_READY_TO_LAUNCH_APP:
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Received a PowerRequest command while still in "
- "the '%s' state !!!",
- GetStr(m_SMCurrentState).c_str());
- l_eStatus = eFrameworkunifiedStatusErrOther;
- break;
-
- case SS_SM_APPS_LAUNCH_IN_PROGRESS:
- // When Start is received while processes are launching, we
- // need to send the Start request later, once the 'Open
- // Session Request' is received from the application.
- //*****
- // Deliberate commenting-out of case-break to allow this case to
- // use following case's logic.
- // break;
- //*****
-
- case SS_SM_APPS_LAUNCHED_READY_TO_START:
- case SS_SM_APPS_START_COMPLETE:
- case SS_SM_APPS_PRE_RUN_COMPLETE:
- case SS_SM_APPS_BACKGROUND_RUN_COMPLETE:
- case SS_SM_APPS_START_IN_PROGRESS:
- case SS_SM_APPS_PRE_START_IN_PROGRESS:
- case SS_SM_APPS_PRE_STOP_IN_PROGRESS:
- case SS_SM_APPS_BACKGROUND_START_IN_PROGRESS:
- case SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS:
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "Startup Reason is '%s'", GetStr(m_StartUpReason).c_str());
- if ((m_userModeChangeReason == epsumcrPARKING_B)
- || ((m_userModeChangeReason == epsumcrPRE_BA) && (m_SMCurrentState == SS_SM_APPS_PRE_RUN_COMPLETE))
- || ((m_userModeChangeReason == epsumcrNORMAL) && (m_SMCurrentState == SS_SM_APPS_START_COMPLETE))
- || ((m_userModeChangeReason == epsumcrBACKGROUND_BA)
- && (m_SMCurrentState == SS_SM_APPS_BACKGROUND_RUN_COMPLETE))) {
- // send the Power Request complete response to PowerService
- // LCOV_EXCL_BR_START 15: Excluded due to inlined functions
- CALL_AND_LOG_STATUS_IF_ERRORED(send_power_request_complete_response(hApp, "Power Request"));
- // LCOV_EXCL_BR_STOP 15: Excluded due to inlined functions
- } else {
- //
- // Publish the UserMode 'Off' notification now for those
- // applications that need immediate notification ( HMI )
- if (m_lastUserMode == epsumOFF) {
- CALL_AND_LOG_STATUS(PublishUserModeNotification(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
-
- CALL_AND_LOG_STATUS(BeginStartup(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- break;
-
- case SS_SM_APPS_STOPPING_AT__CWORD56__REQ:
- case SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ:
- // Abort the Stop.
- // Reset System Manager to handle (re)starting as if this is a
- // nominal start.
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER_CLIENT_STOP_MONITOR]);
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Aborted %s, resetting to %s,"
- " restarting Application groups at group %d",
- GetStr(m_SMCurrentState).c_str(),
- GetStr(SS_SM_APPS_START_IN_PROGRESS).c_str()
- , m_SystemStarter.get_id());
-
- CALL_AND_LOG_STATUS(BeginStartup(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- break;
-
- case SS_SM_APPS_STOPPING_AT_INTERNAL_REQ:
- case SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ: // LCOV_EXCL_START 8: As no value is set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning: System Manager state is %d/'%s', ignoring "
- "PowerRequest command", m_SMCurrentState,
- GetStr(m_SMCurrentState).c_str());
- break;
- } // LCOV_EXCL_STOP
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnPowerRequestCallback( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup
-/// Begin the Startup process
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::BeginStartup(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if ((m_userModeChangeReason != epsumcrPARKING_B) &&
- (m_userModeChangeReason != epsumcrPRE_BA) &&
- (m_userModeChangeReason != epsumcrNORMAL) &&
- (m_userModeChangeReason != epsumcrBACKGROUND_BA)) {
- // Not a power state transition request.
- return eFrameworkunifiedStatusOK;
- }
-
- switch (m_userModeChangeReason) { // LCOV_EXCL_BR_LINE 6: Excluded because it has been guarded to prevent out-of-range values from entering immediately before.
- case epsumcrPRE_BA:
- // LCOV_EXCL_BR_START 6: This function is an internal function, and it is guarded so that the value outside the range is not entered by the caller, so it is excluded.
- if ((m_SMCurrentState == SS_SM_APPS_START_COMPLETE) || (m_SMCurrentState == SS_SM_APPS_BACKGROUND_RUN_COMPLETE)) {
- // LCOV_EXCL_BR_STOP 6: This function is an internal function, and it is guarded so that the value outside the range is not entered by the caller, so it is excluded.
- m_SystemStarter.to_end();
- SMSetState(hApp, SS_SM_APPS_PRE_STOP_IN_PROGRESS);
- } else {
- m_SystemStarter.to_begin();
- SMSetState(hApp, SS_SM_APPS_PRE_START_IN_PROGRESS);
- }
- break;
- case epsumcrNORMAL:
- m_SystemStarter.to_begin();
- SMSetState(hApp, SS_SM_APPS_START_IN_PROGRESS);
- break;
- case epsumcrBACKGROUND_BA:
- if (m_SMCurrentState == SS_SM_APPS_START_COMPLETE) {
- m_SystemStarter.to_end();
- SMSetState(hApp, SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS);
- } else {
- m_SystemStarter.to_begin();
- SMSetState(hApp, SS_SM_APPS_BACKGROUND_START_IN_PROGRESS);
- }
- break;
- default:
- break;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Starting 'Start Resp Monitor' Timer with '%d' sec",
- m_SMConfig.MCConfig.ModuleStartRespTimeOutSec);
-
- m_GroupLaunchTimer->StartTimer(
- m_aTimerIDs[eSM_TIMER_START_RESP_MONITOR_WAIT_TIMER],
- m_SMConfig.MCConfig.ModuleStartRespTimeOutSec, 0, 0, 0);
-
- l_eStatus = start_all_modules_of_group(hApp, m_SystemStarter.get_id());
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: start_all_modules_of_group(%d) errored: %d/'%s'",
- m_SystemStarter.get_id(), l_eStatus, GetStr(l_eStatus).c_str());
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::BeginStartup( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnWakeupCallback
-/// WakeUp callback handler
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnWakeupCallback(HANDLE hApp) { // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp);
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "Received from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnWakeupCallback( HANDLE hApp )
-// LCOV_EXCL_STOP
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnModuleStartCompleteResponse
-/// Start Response\Ack Handlers
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnModuleStartCompleteResponse(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "%s", FrameworkunifiedGetMsgSrc(hApp));
-
- SetCmdHist("system_manager protocol completion response", m_SMCmdHist, m_SMHistIter, FrameworkunifiedGetMsgSrc(hApp)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- ModuleLaunchListIter l_ModuleListIter;
- std::string l_moduleName = FrameworkunifiedGetMsgSrc(hApp);
- l_eStatus = GetModuleIterator(l_moduleName.c_str(), l_ModuleListIter);
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 200:always be eFrameworkunifiedStatusOK
- // LCOV_EXCL_START 200: always be eFrameworkunifiedStatusOK
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Module %s not found in Group Launch Map",
- l_moduleName.c_str());
- // LCOV_EXCL_STOP
- } else {
- switch (m_SMCurrentState) { // LCOV_EXCL_BR_LINE 200: cannot be SS_SM_READY_TO_LAUNCH_APP
- case SS_SM_READY_TO_LAUNCH_APP:
- // LCOV_EXCL_START 200: cannot be SS_SM_READY_TO_LAUNCH_APP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Received while in the '%s' state !!!",
- GetStr(m_SMCurrentState).c_str());
- l_eStatus = eFrameworkunifiedStatusErrOther;
- break;
- // LCOV_EXCL_STOP
-
- case SS_SM_APPS_LAUNCH_IN_PROGRESS:
- case SS_SM_APPS_LAUNCHED_READY_TO_START:
- case SS_SM_APPS_START_IN_PROGRESS:
- case SS_SM_APPS_PRE_START_IN_PROGRESS:
- case SS_SM_APPS_PRE_STOP_IN_PROGRESS:
- case SS_SM_APPS_BACKGROUND_START_IN_PROGRESS:
- case SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS:
- {
- const SMModuleState l_state = InProgressStateToState(); // LCOV_EXCL_BR_LINE 11: Gcov constraints (because exception-handling routes are automatically generated) // NOLINT(whitespace/line_length)
- if (l_state != MODULE_STATE_INVALID) {
- const PCSTR l_loglist[] = {"start", "pre start", "pre stop", "background start", "background stop", ""};
- PCSTR l_logtxt;
- switch (l_state) { // LCOV_EXCL_BR_LINE 6: As no other value is returned
- case MODULE_STATE_STARTED:
- l_logtxt = l_loglist[0];
- break;
- case MODULE_STATE_STARTED_PRE:
- l_logtxt = l_loglist[1];
- break;
- case MODULE_STATE_STOPPED_PRE:
- l_logtxt = l_loglist[2];
- break;
- case MODULE_STATE_STARTED_BACKGROUND:
- l_logtxt = l_loglist[3];
- break;
- case MODULE_STATE_STOPPED_BACKGROUND:
- l_logtxt = l_loglist[4];
- break;
- // LCOV_EXCL_START 6: As no other value is returned
- default:
- AGL_ASSERT_NOT_TESTED();
- l_logtxt = l_loglist[5];
- break;
- // LCOV_EXCL_STOP 6: As no other value is returned
- }
- l_eStatus = ModuleCompleteResponse(hApp, l_ModuleListIter, l_state, // LCOV_EXCL_BR_LINE 11: Gcov constraints (because exception-handling routes are automatically generated) // NOLINT(whitespace/line_length)
- SysMgrCbType3<CSystemManager, &CSystemManager::IsGroupStarted>,
- SysMgrCbType2<CSystemManager, &CSystemManager::ProcessGroupAsStarted>,
- l_logtxt);
- }
- }
- break;
-
- case SS_SM_APPS_STOPPING_AT__CWORD56__REQ:
- case SS_SM_APPS_STOPPING_AT_INTERNAL_REQ:
- case SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ:
- case SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ:
- // SystemManager changed state while this module was starting;
- // tell this module to stop.
- if (!l_ModuleListIter->IsModuleState(MODULE_STATE_STOP_SENT)
- && !l_ModuleListIter->IsModuleState(MODULE_STATE_STOPPED)) {
- T_SS_SM_STOP_DataStructType l_SM_STOP_Struct;
- l_SM_STOP_Struct.shutdownTrigger = m_shutdownTrigger;
- l_SM_STOP_Struct.lastUserMode = m_lastUserMode;
-
- CALL_AND_LOG_STATUS( // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- l_ModuleListIter->SendMsgAndUpdateState(
- &l_SM_STOP_Struct));
- }
- break;
- default:
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: Received while in the '%s' state !!!", GetStr(m_SMCurrentState).c_str());
- l_eStatus = eFrameworkunifiedStatusErrOther;
- break;
- } // End switch ( m_SMCurrentState )
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnModuleStartCompleteResponse( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup ModuleCompleteResponse
-/// Start Response\Ack Handlers
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::ModuleCompleteResponse(HANDLE hApp,
- ModuleLaunchListIter f_ModuleListIter, SMModuleState f_moduleState,
- FncCbType3 f_isGroupDoneFnc, FncCbType2 f_groupDoneFnc,
- PCSTR f_sCompleteTypeText) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- std::string l_moduleName = FrameworkunifiedGetMsgSrc(hApp);
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Received from %s, m_SystemStarter.get_id() is %d",
- l_moduleName.c_str()
- , m_SystemStarter.get_id());
-
- f_ModuleListIter->SetModuleState(f_moduleState);
- if (f_ModuleListIter->group_id != m_SystemStarter.get_id()) {
- // In PastModel002, it is assumed that there is no service that returns a FrameworkunifiedOnStop reply after the NPP service.
- // However, since _CWORD71_ does not assume this, completion of waiting for termination of the CRITICAL service must be
- // judged even when services other than the Group1 service terminate last.
- // Initially, SS_SM_WAITING_FOR_CRITICAL_APPS_AT_XXXX should be handled separately by ProcessModuleStopCompleteResponse(),
- // but this is limited to ModuleCompleteResponse in order to avoid code deviation from PastModel002 and limit the scope of effect.
- // LCOV_EXCL_BR_START 200 : m_SMCurrentState can't be SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ and SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ // NOLINT(whitespace/line_length)
- if ((MODULE_STATE_STOPPED == f_moduleState)
- && ((m_SMCurrentState
- == SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ)
- || (m_SMCurrentState
- == SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ))) {
- // LCOV_EXCL_BR_STOP 200 : m_SMCurrentState can't be SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ and SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 200 : m_SMCurrentState can't be SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ and SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- check_all_groups_have_stopped(hApp);
- // LCOV_EXCL_STOP
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " %s ( group %d ) received out-of-synch; m_SystemStarter.get_id() is %d",
- l_moduleName.c_str(), f_ModuleListIter->group_id
- , m_SystemStarter.get_id());
- }
- } else {
- if ((*f_isGroupDoneFnc)(f_ModuleListIter->group_id)) { // LCOV_EXCL_BR_LINE 11: Gcov constraints (because exception-handling routes are automatically generated) // NOLINT(whitespace/line_length)
- l_eStatus = (*f_groupDoneFnc)(hApp, f_ModuleListIter->group_id); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- } else if (IS_ZONE_SET(ZONE_INFO)) { // LCOV_EXCL_BR_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- // LCOV_EXCL_START 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- TEXT(__FUNCTION__, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- " Group %d %s incomplete, m_SystemStarter.get_id() is %d", // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- f_ModuleListIter->group_id, f_sCompleteTypeText // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- , m_SystemStarter.get_id()); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- char cBuf[100];
- sprintf(cBuf, "%s incomplete", f_sCompleteTypeText); // NOLINT
- LogGroupModulesState(f_ModuleListIter->group_id, cBuf); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- }
- }
-
- const SMModuleState l_transition_state = InProgressStateToState(); // LCOV_EXCL_BR_LINE 11: Gcov constraints (because exception-handling routes are automatically generated) // NOLINT(whitespace/line_length)
- if (l_transition_state == f_moduleState) { // LCOV_EXCL_BR_LINE 6: As no other value is returned
- if (have_all_services_start_completed(l_transition_state) == TRUE) {
- if ((m_SMCurrentState == SS_SM_APPS_PRE_START_IN_PROGRESS)
- || (m_SMCurrentState == SS_SM_APPS_PRE_STOP_IN_PROGRESS)) {
- SMSetState(hApp, SS_SM_APPS_PRE_RUN_COMPLETE); // LCOV_EXCL_BR_LINE 11: Gcov constraints (because exception-handling routes are automatically generated) // NOLINT(whitespace/line_length)
- } else if ((m_SMCurrentState == SS_SM_APPS_BACKGROUND_START_IN_PROGRESS)
- || (m_SMCurrentState == SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS)) {
- SMSetState(hApp, SS_SM_APPS_BACKGROUND_RUN_COMPLETE); // LCOV_EXCL_BR_LINE 11: Gcov constraints (because exception-handling routes are automatically generated) // NOLINT(whitespace/line_length)
- } else {
- SMSetState(hApp, SS_SM_APPS_START_COMPLETE); // LCOV_EXCL_BR_LINE 11: Gcov constraints (because exception-handling routes are automatically generated) // NOLINT(whitespace/line_length)
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::ModuleCompleteResponse(
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnStartRespMonitorTimeout
-/// SM maintains timer to check if all modules sent start response to him whoever requires Start.
-/// This timer is common to all modules. After timeout it checks the status of every module in group map.
-/// If a module sent start and does not respond, SM will initiate error event logging followed by Soft Reset
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnStartRespMonitorTimeout(HANDLE hApp) { // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- std::string l_ProcName;
- BOOL l_isStartRespNotReceived = false;
-
- SetCmdHist("SM_TIMER_START_RESP_MONITOR_WAIT_TIMER", m_TimerCmdHist,
- m_TimerHistIter, FrameworkunifiedGetMsgSrc(hApp));
- GroupLaunchMap::reverse_iterator l_grp_riter = m_MapProclaunchGrps.rbegin();
- ModuleLaunchList::reverse_iterator l_mod_riter;
-
- if (l_grp_riter == m_MapProclaunchGrps.rend()) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error: Group Map is Empty");
- } else {
- // scan the group map in reverse order
- for (; l_grp_riter != m_MapProclaunchGrps.rend(); l_grp_riter++) {
- l_mod_riter = l_grp_riter->second.modules.rbegin();
- for (; l_mod_riter != l_grp_riter->second.modules.rend(); l_mod_riter++) {
- // if a module sent start and not received response from module SM wait for "ModuleStartRespTimeout"
- // and initiated error event
- // logging followed by soft reset
-
- if (l_mod_riter->is_start_required) {
- if (l_mod_riter->IsModuleState(MODULE_STATE_START_SENT)) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Module [%s] did not respond(%s) to SM in allocated time [%d] sec",
- l_mod_riter->name.c_str(),
- l_mod_riter->ModuleStateStr().c_str(),
- m_SMConfig.MCConfig.ModuleStartRespTimeOutSec);
- l_isStartRespNotReceived = true;
- l_ProcName.assign(l_mod_riter->name);
- }
- }
- }
- }
- }
-
- if (true == l_isStartRespNotReceived) {
- char l_cFormat[] = " Error. Module '%s' start response timeout.";
- char l_cBuf[sizeof(l_cFormat) + MAX_NAME_SIZE_APP];
- snprintf(l_cBuf, sizeof(l_cBuf), l_cFormat, l_ProcName.c_str());
- TEXT(__FUNCTION__, l_cBuf); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, l_cBuf);
-
- SMLoggingInfo l_loggingInfo;
- l_loggingInfo.resetReason = e_SS_SM_CPU_RESET_REASON_GENERIC_ERR;
-
- // initate error event logging
- l_eStatus = ErrorEventEnqueue(hApp, eErrorEventTypeStartRespFailed,
- l_ProcName, eErrorEventResetTypeHard, l_loggingInfo);
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: StartRespFailed %s", l_ProcName.c_str());
- fprintf(stderr, "SS_SysManager/%s/Error: StartRespFailed %s\n",
- __FUNCTION__, l_ProcName.c_str());
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(eErrorEventTypeStartRespFailed)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__,
- " All modules returned Start Response.");
-
- l_eStatus = FrameworkunifiedSendChild(hApp, m_hHeartbeatThread.m_ThreadHdl,
- SS_HEARTBEAT_AVAIL_CHECK_REQ, 0, NULL);
- SS_ASERT(l_eStatus == eFrameworkunifiedStatusOK); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnStartRespMonitorTimeout(HANDLE hApp)
-// LCOV_EXCL_STOP
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnShutdownCompleteMonitorTimeout
-/// SM maintains timer to check if all modules sent start response to him whoever requires Start.
-/// This timer is common to all modules. After timeout it checks the status of every module in group map.
-/// If a module sent start and does not respond, SM will initiate error event logging followed by Soft Reset
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnShutdownCompleteMonitorTimeout(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error: Reset Timeout");
-
- l_eStatus = SecureChipOff();
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error: SecureChipOff Failed");
- }
-
- m_ResetFactor = PSM_FACTOR_AGL_WITH_HISTORY;
-
- l_eStatus = perform_force_reset(hApp);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnShutdownCompleteMonitorTimeout(HANDLE hApp)
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup start_all_modules_of_group
-/// Send START to all modules of the given group
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::start_all_modules_of_group(HANDLE hApp, UI_32 f_ui32GroupNumber) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.find(
- f_ui32GroupNumber);
- if (l_GroupIterator == m_MapProclaunchGrps.end()) { // LCOV_EXCL_BR_LINE 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR,
- __FUNCTION__
- , " Error: Group %d not found; 'm_MapProclaunchGrps' is empty",
- f_ui32GroupNumber);
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusInvldParam; // LCOV_EXCL_LINE 6: Because the condition cannot be set
- } else {
- T_SS_SM_START_DataStructType f_startupData(m_StartUpReason,
- m_PowerType_to_SSBoolEnumMap[m_Wake.powerupType],
- m_DataResetMode, m_startUpConfirmationMsg.securityStatus,
- m_startUpConfirmationMsg.wakeupType, m_DramBackupStatus,
- m_ResetStatus, m_ResetCount);
-
- UI_32 l_numModulesMessaged = 0;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Attempting to send Start Requests to Group %d/'%s'",
- f_ui32GroupNumber, l_GroupIterator->second.name.c_str());
-
- for (ModuleLaunchListIter l_ModuleListIterator =
- l_GroupIterator->second.modules.begin();
- l_ModuleListIterator != l_GroupIterator->second.modules.end();
- l_ModuleListIterator++) {
- //
- // Every branch below must ZONE_INFO log how it dispenses w/
- // the module.
- // Note: ModuleLaunchParams::SetModuleState() performs that
- // ZONE_INFO logging internally.
- if (!l_ModuleListIterator->is_start_required) {
- if (FRAMEWORKUNIFIED_NS_NPSERVICE == l_ModuleListIterator->name) {
- const SMModuleState l_transition_state = InProgressStateToState(); // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- l_ModuleListIterator->SetModuleState(l_transition_state); // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- } else {
- // Not an error
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " %s 'is_start_required' is False;"
- " leaving state as '%s'",
- l_ModuleListIterator->name.c_str(),
- l_ModuleListIterator->ModuleStateStr().c_str());
- }
- l_eStatus = eFrameworkunifiedStatusOK;
- } else if (NULL == l_ModuleListIterator->hsession) { // LCOV_EXCL_BR_LINE 6: hsession can not be null.
- l_eStatus = eFrameworkunifiedStatusOK; // Log a message. But its not a failure
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, " Warning: NULL == hsession;"
- " %s not connected yet",
- l_ModuleListIterator->name.c_str());
- } else {
- switch (l_ModuleListIterator->GetModuleState()) { // LCOV_EXCL_BR_LINE 6: As not all cases can be passed through
- case MODULE_STATE_INVALID:
- case MODULE_STATE_SKIPPED:
- case MODULE_STATE_LAUNCH_FAILED:
- // LCOV_EXCL_START 6: Because the state of the corresponding variable cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusOK; // Log a message. But its not a failure
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " %s is %s, NOT sending system_manager protocol message",
- l_ModuleListIterator->name.c_str(),
- l_ModuleListIterator->ModuleStateStr().c_str());
- break;
- // LCOV_EXCL_STOP
-
- case MODULE_STATE_START_SENT:
- case MODULE_STATE_START_PRE_SENT:
- case MODULE_STATE_STOP_PRE_SENT:
- case MODULE_STATE_START_BACKGROUND_SENT:
- case MODULE_STATE_STOP_BACKGROUND_SENT:
- l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " %s is %s, NOT sending system_manager protocol message",
- l_ModuleListIterator->name.c_str(),
- l_ModuleListIterator->ModuleStateStr().c_str());
- l_numModulesMessaged++;
- break;
-
- case MODULE_STATE_LAUNCHING:
- case MODULE_STATE_LAUNCHED:
- // LCOV_EXCL_START 6: Because the state of the corresponding variable cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusOK; // Log a message. But its not a failure
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " %s is %s, NOT sending system_manager protocol message",
- l_ModuleListIterator->name.c_str(),
- l_ModuleListIterator->ModuleStateStr().c_str());
- break;
- // LCOV_EXCL_STOP
-
- case MODULE_STATE_CONNECTED:
- case MODULE_STATE_STARTED:
- case MODULE_STATE_START_FAILED:
- case MODULE_STATE_STOP_FAILED:
- case MODULE_STATE_STOP_SENT:
- case MODULE_STATE_STOPPED:
- case MODULE_STATE_STARTED_PRE:
- case MODULE_STATE_START_PRE_FAILED:
- case MODULE_STATE_STOPPED_PRE:
- case MODULE_STATE_STOP_PRE_FAILED:
- case MODULE_STATE_STARTED_BACKGROUND:
- case MODULE_STATE_START_BACKGROUND_FAILED:
- case MODULE_STATE_STOPPED_BACKGROUND:
- case MODULE_STATE_STOP_BACKGROUND_FAILED:
- {
- const UI_32 l_iCmd = InProgressStateToSendMsg(); // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- if (l_iCmd != SS_SYSTEM_MANAGER_PROTOCOL_ENDING_INDEX) { // LCOV_EXCL_BR_LINE 6: Excluded due to value never returned at present
- // LCOV_EXCL_BR_START 15: Excluded due to inlined functions
- CALL_AND_LOG_STATUS_IF_ERRORED(l_ModuleListIterator->SendMsgAndUpdateState(l_iCmd, &f_startupData));
- // LCOV_EXCL_BR_STOP 15: Excluded due to inlined functions
- l_numModulesMessaged++;
- }
- }
- break;
- // default: Don't code a 'default' here - let the compiler
- // detect when the set of module_state enumerations changes -
- // then the System Service's System Manager maintainer will
- // automagically know to update this switch statement.
- }
- }
- }
-
- if (0 == l_numModulesMessaged) {
- LogGroupModulesState(f_ui32GroupNumber, " Warning: NO modules were sent system_manager protocol message"); // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
-
- char l_cBuf[100];
- snprintf(l_cBuf, sizeof(l_cBuf), "ProcessGroupAsStarted(%d)", l_GroupIterator->second.id);
- l_eStatus = ProcessGroupAsStarted(hApp, l_GroupIterator);
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, l_cBuf); // LCOV_EXCL_BR_LINE 6: Because the condition cannot be set
- } else {
- m_GroupLaunchTimer->StartTimer(
- m_aTimerIDs[eSM_TIMER_CLIENT_START_MONITOR],
- SS_CLIENT_START_MONITOR_TIMER_CONFIG, 0, 0, 0);
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::start_all_modules_of_group(HANDLE hApp, UI_32 f_ui32GroupNumber)
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup start_all_modules_of_group
-/// mark the specified group as started. If there is another group to start,
-/// do so, else send Start Complete Response to the Start Requester.
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::ProcessGroupAsStarted(HANDLE hApp, UI_32 f_groupId) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.find(f_groupId);
- if (l_GroupIterator == m_MapProclaunchGrps.end()) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Group %d not found; 'm_MapProclaunchGrps' is empty", f_groupId);
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- } else {
- l_eStatus = ProcessGroupAsStarted(hApp, l_GroupIterator);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::ProcessGroupAsStarted( HANDLE hApp, UI_32 f_groupId )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup start_all_modules_of_group
-/// mark the specified group as started. If there is another group to start,
-/// do so, else send Start Complete Response to the Start Requester.
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::ProcessGroupAsStarted(HANDLE hApp,
- GroupLaunchMapIter f_GroupIterator) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- UI_32 l_groupID = m_SystemStarter.get_id();
-
-
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER_CLIENT_START_MONITOR]);
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Group %d/%s start completed, m_SystemStarter.get_id() is %d",
- f_GroupIterator->second.id, f_GroupIterator->second.name.c_str(),
- l_groupID);
-
- if (f_GroupIterator->second.id != l_groupID) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO,
- __FUNCTION__
- , " The just-started group ( %d/%s ) is not the current Active "
- " Group ( %d ); not starting next group's modules",
- f_GroupIterator->second.id,
- f_GroupIterator->second.name.c_str(), l_groupID);
- } else {
- if ((m_SMCurrentState == SS_SM_APPS_START_IN_PROGRESS)
- || (m_SMCurrentState == SS_SM_APPS_PRE_START_IN_PROGRESS)
- || (m_SMCurrentState == SS_SM_APPS_BACKGROUND_START_IN_PROGRESS)) {
- // check if WakeUp Level has been achieved
- if (m_SystemStarter.is_end() == FALSE) {
- // Start modules from next group
- l_groupID = m_SystemStarter.advance_id(); // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- char l_cBuf[100] = {0};
- snprintf(l_cBuf, sizeof(l_cBuf), "start_all_modules_of_group(%u)", l_groupID);
- l_eStatus = start_all_modules_of_group(hApp, l_groupID); // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, l_cBuf); // LCOV_EXCL_BR_LINE 6: Because the condition cannot be set
- }
- } else if ((m_SMCurrentState == SS_SM_APPS_PRE_STOP_IN_PROGRESS)
- || (m_SMCurrentState == SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS)) {
- if (m_SystemStarter.is_begin() == FALSE) {
- // Stop modules from next group
- l_groupID = m_SystemStarter.decrement_id(); // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- char l_cBuf[100] = {0};
- snprintf(l_cBuf, sizeof(l_cBuf), "stop_all_modules_of_group(%u)", l_groupID);
- l_eStatus = start_all_modules_of_group(hApp, l_groupID); // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, l_cBuf); // LCOV_EXCL_BR_LINE 6: Because the condition cannot be set
- }
- } else {
- // MISRA C++-2008 Rule 6-4-2
- // NOP
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::ProcessGroupAsStarted( GroupLaunchMapIter f_GroupIterator )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup calculate_max_shutdown_time
-/// Calculate maximum shutdown time of apps critical to shutdown
-/// from the launch group map
-///
-/// \param [in]
-///
-/// \return UI_32
-/// Max Value of critical shutdown apps shutdown time
-///////////////////////////////////////////////////////////////////////////////
-UI_32 CSystemManager::calculate_max_shutdown_time() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- UI_32 l_MaxShutdownTimeValue = 0;
- std::string moduleName;
-
- GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.begin();
- for (; l_GroupIterator != m_MapProclaunchGrps.end(); l_GroupIterator++) {
- ModuleLaunchListIter l_ModuleListIterator =
- l_GroupIterator->second.modules.begin();
- for (; l_ModuleListIterator != l_GroupIterator->second.modules.end();
- l_ModuleListIterator++) {
- if (l_ModuleListIterator->shutdown_critical) {
- if (l_MaxShutdownTimeValue < l_ModuleListIterator->shutdown_wait_time) {
- moduleName = l_ModuleListIterator->name;
- l_MaxShutdownTimeValue = l_ModuleListIterator->shutdown_wait_time;
- }
- }
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Max time: Module %s, time %d s",
- moduleName.c_str(), l_MaxShutdownTimeValue);
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_MaxShutdownTimeValue;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnShutdownModulesRequest
-/// Send Shutdown to all modules in reverse order of group
-///
-/// \param [in]
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnShutdownModulesRequest(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__,
- " Received from %s, m_SystemStarter.get_id() is %d",
- FrameworkunifiedGetMsgSrc(hApp)
- , m_SystemStarter.get_id());
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "m_SystemStarter.get_id() is %d", m_SystemStarter.get_id());
-
- SetCmdHist("SS_SM_SHUTDOWN_MODULES", m__CWORD56_CmdHist, m__CWORD56_HistIter, FrameworkunifiedGetMsgSrc(hApp)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- Pwr_ServiceSetInterface l_tServiceSetIf;
- // ReadMsg(): *
- // Check hApp ptr, msg size, msg reception, read msg if all ok. *
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < Pwr_ServiceSetInterface > (hApp, l_tServiceSetIf))) { // LCOV_EXCL_BR_LINE 4: nsfw error
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else {
- BOOL isImmShutdown = FALSE;
-
- // If the Shutdown is not completed after the Shutdown is requested, it is forcibly reset.
- m_GroupLaunchTimer->StartTimer(
- m_aTimerIDs[eSM_TIMER_SHUTDOWN_COMPLETE_MONITOR],
- SM_SHUTDOWN_COMPLETE_MONITOR_TIMEOUT, 0, 0, 0);
-
- if (m_isImmResetReq) {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, " ImmReset");
- isImmShutdown = TRUE;
- }
-
- switch (l_tServiceSetIf.data.shutdownRequestMsg.lastUserMode) {
- case epsumINVALID:
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: shutdownRequestMsg.lastUserMode == epsumINVALID");
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- break;
-
- case epsumOFF:
- case epsumON: {
- switch (m_SMCurrentState) {
- case SS_SM_READY_TO_LAUNCH_APP:
- case SS_SM_APPS_LAUNCH_IN_PROGRESS:
- case SS_SM_APPS_LAUNCHED_READY_TO_START:
- isImmShutdown = TRUE;
- case SS_SM_APPS_START_COMPLETE:
- case SS_SM_APPS_START_IN_PROGRESS:
- case SS_SM_APPS_PRE_START_IN_PROGRESS:
- case SS_SM_APPS_PRE_STOP_IN_PROGRESS:
- case SS_SM_APPS_PRE_RUN_COMPLETE:
- case SS_SM_APPS_BACKGROUND_START_IN_PROGRESS:
- case SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS:
- case SS_SM_APPS_BACKGROUND_RUN_COMPLETE:
-
- if (l_tServiceSetIf.data.shutdownRequestMsg.shutdownTrigger ==
- epssdmsdtIGN_OFF) {
- m_ResetCount = 0;
- if (PowerHalSetResetInfo(AGL_RESET_COUNTER, m_ResetCount)) { // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not back up m_ResetCount(%lu) to power_hal", m_ResetCount);
- }
-
- if (PowerHalSetResetInfo(AGL_ERRLOG_COUNTER, 0)) { // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not reset AGL_ERRLOG_COUNTER");
- }
- }
- if (!m_isPrevErrEventCompleted
- || ((!((m_SMCurrentState == SS_SM_APPS_START_COMPLETE)
- || (m_SMCurrentState == SS_SM_APPS_PRE_RUN_COMPLETE)
- || (m_SMCurrentState == SS_SM_APPS_BACKGROUND_RUN_COMPLETE)))
- && (l_tServiceSetIf.data.shutdownRequestMsg.shutdownTrigger
- == epssdmsdtIGN_OFF
- || l_tServiceSetIf.data.shutdownRequestMsg.shutdownTrigger
- == epssdmsdtNORMAL_RESET))) {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "shutdown pending");
- if (!m_dqDeferMsg.empty()) {
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- SM_POWER_EVENT_INFO deferMsg(SS_SM_SHUTDOWN_MODULES, l_tServiceSetIf);
- m_dqDeferMsg.push(deferMsg);
- }
- } else {
- // The shutdownTrigger has already been validated by
- // Power::OnShutdownRequestMsg()
- m_shutdownTrigger = l_tServiceSetIf.data.shutdownRequestMsg.shutdownTrigger;
- m_lastUserMode = l_tServiceSetIf.data.shutdownRequestMsg.lastUserMode;
-
- // Notify services ShutDownTrigger the FrameworkunifiedOnStop, if dataResetMode is configured
- // When using FastSleep, be aware that it may be overwritten here
- switch (m_DataResetMode) {
- case e_SS_SM_DATA_RESET_MODE_FACTORY:
- m_shutdownTrigger = epssdmsdtFACTORY_DATA_RESET;
- break;
- case e_SS_SM_DATA_RESET_MODE_USER:
- m_shutdownTrigger = epssdmsdtUSER_DATA_RESET;
- break;
- default:
- break;
- }
-
- if (isImmShutdown) {
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER_GROUP_LAUNCH_WAIT_TIMER]);
-
- // Do not use m_shutdownTrigger because it is updated on DataReset
- switch (l_tServiceSetIf.data.shutdownRequestMsg.shutdownTrigger) {
- case epssdmsdtGENERIC_ERROR_RESET:
- case epssdmsdtFATAL_ERROR_RESET:
- CALL_AND_LOG_STATUS((*m_pfStopCompleteHandler)(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- break;
- default:
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning: Received a Shutdown command while in "
- "the '%s' state - returning Shutdown "
- "Response msg now",
- GetStr(m_SMCurrentState).c_str());
-
- CALL_AND_LOG_STATUS(SendShutdownResponseMessage(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- break;
- }
-
- } else {
- InitiateAllGroupsShutdown(hApp);
- }
- }
- break;
-
- case SS_SM_APPS_STOPPING_AT__CWORD56__REQ:
- case SS_SM_APPS_STOPPING_AT_INTERNAL_REQ:
- case SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ:
- case SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ:
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning: Received a Shutdown command while already in "
- "the '%s' state !!!",
- GetStr(m_SMCurrentState).c_str());
- break;
- } // End switch ( m_SMCurrentState )
- break;
- } // End case epsumOFF | epsumON
- } // End switch (m_lastUserMode )
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnShutdownModulesRequest( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup SendSystemModeInfoResponse
-/// send SystemModeInfo to
-/// _CWORD56_ ( via Power Service-> PSMShadow ) as an IPC 'Start Notification'
-/// message, informing _CWORD56_ of the startup state of the _CWORD102_.
-///
-/// \param [in] HANDLE hApp
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::SendSystemModeInfoResponse(HANDLE hApp, EPWR_STARTUP_STAGE_TYPE f_startupStage) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- SystemModeInfo l_SystemModeInfo;
-
- memcpy(&l_SystemModeInfo, &m_SystemModeInfo, sizeof(l_SystemModeInfo));
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "stage:%d", f_startupStage);
- l_SystemModeInfo.startupStage = f_startupStage;
-
- l_eStatus = FrameworkunifiedSendMsg(m_hPowerServiceSession, SS_SM_SYSTEM_MODE_INFO_RSPN,
- sizeof(l_SystemModeInfo), (PVOID) & l_SystemModeInfo);
-
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 4: NSFW error case.
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: SendSystemModeInfoResponse(%s) errored: 0x%X",
- GetStr(l_SystemModeInfo.startupStage).c_str(), l_eStatus);
- } else {
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " SendSystemModeInfoResponse(%s) successful",
- GetStr(l_SystemModeInfo.startupStage).c_str());
- // LCOV_EXCL_STOP
- }
-
- LOG_STATUS(l_eStatus, "FrameworkunifiedSendMsg(SS_SM_SYSTEM_MODE_INFO_RSPN)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::SendSystemModeInfoResponse( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnSystemModeInfoRequest
-/// Handle System Mode Info request. Send System Mode Info read from NVM
-///
-/// \param [in] HANDLE hApp
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnSystemModeInfoRequest(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
- m_isRcvModeInfo = TRUE;
-
- SetCmdHist("SS_SM_SYSTEM_MODE_INFO_REQ", m__CWORD56_CmdHist, m__CWORD56_HistIter, FrameworkunifiedGetMsgSrc(hApp));
-
- if (m_SystemModeInfo.startupStage == epssusfINVALID) {
- // Transitioning to SYSTEM_SERVICES_STARTED if startupStage == INVALID
- m_SystemModeInfo.startupStage = epssusSYSTEM_SERVICES_STARTED;
- }
-
- l_eStatus = SendSystemModeInfoResponse(hApp, epssusSYSTEM_SERVICES_STARTED);
- LOG_STATUS(l_eStatus, "SendSystemModeInfoResponse()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- if (TRUE == m_isRstPending) {
- ESMCpuResetReason l_resetReason = m_rstPendingInfo.resetReason;
- std::string l_messageStr = m_rstPendingInfo.messageStr;
-
- m_isRstPending = FALSE;
- m_rstPendingInfo.resetReason = e_SS_SM_CPU_RESET_REASON_INVALID;
- memset(m_rstPendingInfo.messageStr, 0, sizeof(m_rstPendingInfo.messageStr));
-
- l_eStatus = PerformCpuReset(hApp, l_resetReason, l_messageStr);
- LOG_STATUS(l_eStatus, "PerformCpuReset()"); // LCOV_EXCL_BR_LINE 6: Because it is executed only once and cannot see all branches
- }
-
- if (m_SystemModeInfo.startupStage == epssusALL_SERVICES_LAUNCHED) {
- // If startupStage == ALL_SERVICES_LAUNCHED
- // Notify here because Launch of all SVCs is completed first.
- l_eStatus = SendSystemModeInfoResponse(hApp, epssusALL_SERVICES_LAUNCHED);
- LOG_STATUS(l_eStatus, "SendSystemModeInfoResponse()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnSystemModeInfoRequest( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnInitCompReportCallback
-/// Handle InitComp report.
-///
-/// \param [in] HANDLE hApp
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnInitCompReportCallback(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- SetCmdHist("SS_SM_INITCOMP_REP", m__CWORD56_CmdHist, m__CWORD56_HistIter, FrameworkunifiedGetMsgSrc(hApp));
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnInitCompReportCallback( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup have_all_services_start_completed
-/// check if state of all services is MODULE_STATE_STARTED
-///
-/// \param [in]
-///
-///
-/// \return BOOL
-/// Success ==> TRUE
-/// Failure ==> FALSE
-///////////////////////////////////////////////////////////////////////////////
-BOOL CSystemManager::have_all_services_start_completed(const SMModuleState f_moduleState) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- BOOL bIsStartCompleted = TRUE;
- SMModuleState l_failedState = MODULE_STATE_INVALID;
-
- switch (f_moduleState) {
- case MODULE_STATE_STARTED:
- l_failedState = MODULE_STATE_START_FAILED;
- break;
- case MODULE_STATE_STARTED_PRE:
- l_failedState = MODULE_STATE_START_PRE_FAILED;
- break;
- case MODULE_STATE_STOPPED_PRE:
- l_failedState = MODULE_STATE_STOP_PRE_FAILED;
- break;
- case MODULE_STATE_STARTED_BACKGROUND:
- l_failedState = MODULE_STATE_START_BACKGROUND_FAILED;
- break;
- case MODULE_STATE_STOPPED_BACKGROUND:
- l_failedState = MODULE_STATE_STOP_BACKGROUND_FAILED;
- break;
- default:
- bIsStartCompleted = FALSE;
- break;
- }
- if (l_failedState != MODULE_STATE_INVALID) {
- GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.begin();
- for (; l_GroupIterator != m_MapProclaunchGrps.end(); l_GroupIterator++) {
- ModuleLaunchListIter l_ModuleListIterator = l_GroupIterator->second.modules.begin();
- for (; l_ModuleListIterator != l_GroupIterator->second.modules.end(); l_ModuleListIterator++) {
- if ((l_ModuleListIterator->is_start_required == TRUE)
- && ((l_ModuleListIterator->IsModuleState(f_moduleState) == FALSE) // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- && (l_ModuleListIterator->IsModuleState(MODULE_STATE_SKIPPED) == FALSE) // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- && (l_ModuleListIterator->IsModuleState(l_failedState) == FALSE))) { // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- // Allow _SKIPPED/START_FAILED for StartRespMonitor conditions
- bIsStartCompleted = FALSE;
- break;
- }
- }
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return bIsStartCompleted;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup is_critical_service_stopped
-///
-///
-/// \param [in]
-///
-///
-/// \return BOOL
-/// Success ==> TRUE
-/// Failure ==> FALSE
-///////////////////////////////////////////////////////////////////////////////
-BOOL CSystemManager::is_service_shutdown_ready(ModuleLaunchListIter &modIte) {
- if (((modIte->shutdown_critical && modIte->is_start_required)
- || (modIte->name == FRAMEWORKUNIFIED_NS_NPSERVICE))
- && modIte->IsModuleState(MODULE_STATE_STOPPED) == FALSE) {
- // Not shutdown_ready if NPP or shutdown_critical services are not STOPPED.
- return FALSE;
- }
- return TRUE;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup have_critical_services_stopped
-/// check if state of all critical services is MODULE_STATE_STOPPED
-///
-/// \param [in]
-///
-///
-/// \return BOOL
-/// Success ==> TRUE
-/// Failure ==> FALSE
-///////////////////////////////////////////////////////////////////////////////
-BOOL CSystemManager::have_critical_services_stopped() {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- uint numStoppingModules = 0;
-
- GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.begin();
- for (; l_GroupIterator != m_MapProclaunchGrps.end(); l_GroupIterator++) {
- ModuleLaunchListIter l_ModuleListIterator = l_GroupIterator->second.modules.begin();
- for (; l_ModuleListIterator != l_GroupIterator->second.modules.end(); l_ModuleListIterator++) {
- if (l_ModuleListIterator->IsModuleState(MODULE_STATE_STOP_SENT)
- && l_ModuleListIterator->shutdown_critical) {
- numStoppingModules++;
- }
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (numStoppingModules == 0);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup perform_force_reset
-///
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::perform_force_reset(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "+");
-
- // Since initialization must be performed by the PSMs during FactReset, do not NaviDet them as much as possible.
- if (e_SS_SM_DATA_RESET_MODE_FACTORY == m_DataResetMode) {
- fprintf(stderr,
- "SS_SysManager/%s/NO NAVIDET!! but SendShutdownComp for FactReset\n", __FUNCTION__);
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "NO NAVIDET!! but SendShutdownComp for FactReset");
- CALL_AND_LOG_STATUS(send_shutdown_complete_response(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- sleep(60);
- } else if (access("/nv/BS/ss/system_manager/rwdata/ss_debug", F_OK) == 0) {
- fprintf(stderr, "SS_SysManager/%s/NO NAVIDET!! but SendShutdownComp\n", __FUNCTION__);
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "NO NAVIDET!! but SendShutdownComp");
- CALL_AND_LOG_STATUS(send_shutdown_complete_response(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- sleep(60);
- }
-
- fflush(stderr);
- usleep(100 * 1000);
-
- if (0 == PsmNaviResetPower(hApp, m_ResetFactor)) { // LCOV_EXCL_BR_LINE 200: power_hal if, can not to be error.
- SS_ASERT_ERRNO(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- usleep(300 * 1000);
- fprintf(stderr, "SS_SysManager/%s/Error: Not Reset !!!\n", __FUNCTION__);
- l_eStatus = eFrameworkunifiedStatusFail;
- }
-
- send_shutdown_complete_response(hApp); // Try to NAVI_RESET even if ignored
-
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup send_shutdown_complete_response
-///
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::send_shutdown_complete_response(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CALL_AND_LOG_STATUS(ResetModulesStateToConnected(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- SMSetState(hApp, SS_SM_APPS_LAUNCHED_READY_TO_START);
- // m_ActiveGroupId = SS_SM_INITIAL_GROUP;
-
- // all the modules have stopped, send Shutdown Response to Power Service
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " All critical services have stopped, Active Group ID is now %d",
- m_SystemStarter.get_id());
-#if 1
- CALL_AND_LOG_STATUS(SendShutdownResponseMessage(hApp)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-#else
- //
- // Normal, production flow is to call SendShutdownResponseMessage(), which
- // sends the Shutdown Response message to the _CWORD56_, causing the _CWORD56_ to
- // remove power from the _CWORD102_ before queued-up FRAMEWORKUNIFIEDLOG messages can be // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- // processed by SS_LoggerService.
- //
- // Optional development flow is to NOT call SendShutdownResponseMessage(),
- // thus giving the _CWORD102_ time to process its FRAMEWORKUNIFIEDLOG messages. Since this is an // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- // abnormal, 'bad' condition of NOT sending a Shutdown Response message to
- // the _CWORD56_, be very obvious about this state by displaying both
- // compile-time and run-time warning messages.
- //
-#warning NOT calling SendShutdownResponseMessage(hApp) !
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- " Warning: SendShutdownResponseMessage( hApp ) "
- "#def'f out; ShutdownResponse NOT sent to _CWORD56_");
-#endif
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::SendShutdownResponseMessage(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- l_eStatus = FrameworkunifiedSendMsg(m_hPowerServiceSession, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- SS_SM_SHUTDOWN_MODULES_CMPL_RSPN, 0, (PVOID) NULL); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "FrameworkunifiedSendMsg(PowerService,SS_SM_SHUTDOWN_MODULES_CMPL_RSPN)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::SendShutdownResponseMessage( HANDLE hApp )
-
-
-PsmFactorT CSystemManager::GetResetFactor(PCSTR f_module_name, BOOL f_user_reset) {
- PsmFactorT l_reset_factor = PSM_FACTOR_NONE;
- EFrameworkunifiedStatus l_eStatus;
- ModuleLaunchListIter l_moduleIter;
- l_eStatus = GetModuleIterator(f_module_name, l_moduleIter); // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- LOG_ERROR("GetModuleIterator()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- l_reset_factor = GetResetFactor(l_moduleIter, f_user_reset);
- }
- return l_reset_factor;
-} // End of PsmFactorT CSystemManager::GetResetFactor(PCSTR f_module_name)
-
-
-PsmFactorT CSystemManager::GetResetFactor(const ModuleLaunchListIter f_module_iter, BOOL f_user_reset) {
- PsmFactorT l_reset_factor;
- if (f_module_iter->IsAGLUnit() == TRUE) {
- if (f_module_iter->IsAGLResetHistoryDisable() == TRUE) {
- l_reset_factor = PSM_FACTOR_AGL;
- } else {
- l_reset_factor = PSM_FACTOR_AGL_WITH_HISTORY;
- }
- } else {
- if (f_module_iter->IsNonAGLResetHistoryDisable() == TRUE) {
- l_reset_factor = PSM_FACTOR_TIER1;
- } else {
- l_reset_factor = PSM_FACTOR_TIER1_WITH_HISTORY;
- }
- }
-
- if (f_user_reset == TRUE) {
- if ((l_reset_factor == PSM_FACTOR_AGL) || (l_reset_factor == PSM_FACTOR_TIER1)) {
- l_reset_factor = PSM_FACTOR_USER;
- } else {
- l_reset_factor = PSM_FACTOR_USER_WITH_HISTORY;
- }
- }
- return l_reset_factor;
-} // End of PsmFactorT GetResetFactor(ModuleLaunchListIter & f_module_iter)
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnClientStopMonitorTimerExpiry
-///
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnClientStopMonitorTimerExpiry(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Received from group %d", m_SystemStarter.get_id());
-
- SetCmdHist("SM_TIMER_CLIENT_STOP_MONITOR", m_TimerCmdHist, m_TimerHistIter, FrameworkunifiedGetMsgSrc(hApp)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if ((m_SMCurrentState == SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ)
- || (m_SMCurrentState == SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ)
- || m_SystemStarter.get_id() <= SS_SM_THIRD_GROUP) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: StopCompTimeout:gid:%d", m_SystemStarter.get_id());
- fprintf(stderr, "SS_SysManager/%s/Error: StopCompTimeout:gid:%d\n", __FUNCTION__, m_SystemStarter.get_id());
-
- for (GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.begin();
- l_GroupIterator != m_MapProclaunchGrps.end();
- l_GroupIterator++) {
- for (ModuleLaunchListIter l_ModuleListIterator = l_GroupIterator->second.modules.begin();
- l_ModuleListIterator != l_GroupIterator->second.modules.end();
- l_ModuleListIterator++) {
- if (l_ModuleListIterator->group_id >= m_SystemStarter.get_id()
- && is_service_shutdown_ready(l_ModuleListIterator) == FALSE) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: %s", l_ModuleListIterator->name.c_str());
- fprintf(stderr, "SS_SysManager/%s/Error: %s\n", __FUNCTION__, l_ModuleListIterator->name.c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
- }
- }
-
- if (!m_SystemStarter.is_begin()) {
- // Continue termination processing to perform BackupManager termination processing.
- m_SystemStarter.decrement_id();
- check_all_groups_have_stopped(hApp);
- } else {
- // DEAD CODE
- fprintf(stderr, "SS_SysManager/%s:SVC stop timeout\n", __FUNCTION__);
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " SVC stop timeout");
- l_eStatus = CallStopCompleteHandler(hApp);
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, "CallStopCompleteHandler( hApp )"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
- } else {
- // The current m_ActiveGroupId group just timed out. If possible,
- // decrement it, and then see if there are more groups to send
- // stop requests to.
- if (!m_SystemStarter.is_begin()) {
- m_SystemStarter.decrement_id();
- }
- check_all_groups_have_stopped(hApp);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnClientStopMonitorTimerExpiry( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup check_all_groups_have_stopped
-/// check that all the groups has stopped
-///
-/// \param [in]
-///
-///
-/// \return VOID
-///////////////////////////////////////////////////////////////////////////////
-VOID CSystemManager::check_all_groups_have_stopped(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- UI_32 l_ActiveGroupId = m_SystemStarter.get_id();
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " m_SystemStarter.get_id() is %d, 'm_NPPStopSent' is '%s'"
- , m_SystemStarter.get_id(), GetStr(m_NPPStopSent).c_str());
-
- // send stop to next group in reverse order
-// FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " m_NPPStopSent is %s", GetStr(m_NPPStopSent).c_str()); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- if (!m_NPPStopSent) {
- l_eStatus = stop_all_modules_of_group(hApp);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: stop_all_modules_of_group(%d) errored: %d/'%s'",
- l_ActiveGroupId, l_eStatus, GetStr(l_eStatus).c_str());
- }
- } else { // (m_ActiveGroupId < SS_SM_INITIAL_GROUP)
- BOOL l_bIsDetectTimeout;
-
- if ((l_bIsDetectTimeout = !have_critical_services_stopped())) {
- // If the Critical service is not terminated even when the final GROUP is completed, DUMP the applicable service and issue NAVI_DET.
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " FinalCriticalCheck");
- fprintf(stderr, "SS_SysManager/%s:FinalCriticalCheck\n", __FUNCTION__); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- for (GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.begin();
- l_GroupIterator != m_MapProclaunchGrps.end();
- l_GroupIterator++) {
- for (ModuleLaunchListIter l_ModuleListIterator = l_GroupIterator->second.modules.begin();
- l_ModuleListIterator != l_GroupIterator->second.modules.end();
- l_ModuleListIterator++) {
- if (is_service_shutdown_ready(l_ModuleListIterator) == FALSE) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: %s",
- l_ModuleListIterator->name.c_str());
- fprintf(stderr, "SS_SysManager/%s/Error: %s\n", // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- __FUNCTION__,
- l_ModuleListIterator->name.c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
- }
- }
- fprintf(stderr, "SS_SysManager/%s:critical service no stop\n", __FUNCTION__);
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "critical service no stop");
- }
-
- CALL_AND_LOG_STATUS(CallStopCompleteHandler(hApp, l_bIsDetectTimeout)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- // In PastModel002, there was a transition to WAITING_FOR_CRITICAL_APPS in the following processing, but in _CWORD71_,
- // the transition to WAITING_FOR_CRITICAL_APPS was eliminated by revising the termination processing.
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return;
-} // End of VOID CSystemManager::check_all_groups_have_stopped( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup MarkModuleStateStopped
-/// Sets Module State to STOP COMPLETE
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnNppStopComplete
-/// Npp Stop Complete complete Response\Ack Handlers
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnNppStopComplete(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- SetCmdHist("NPS_NPP_STOP_ACK", m_SMCmdHist, m_SMHistIter, FrameworkunifiedGetMsgSrc(hApp)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- char l_cBuf[100];
- snprintf(l_cBuf, sizeof(l_cBuf), "ProcessModuleStopCompleteResponse(%s)", FRAMEWORKUNIFIED_NS_NPSERVICE);
- l_eStatus = ProcessModuleStopCompleteResponse(hApp, FRAMEWORKUNIFIED_NS_NPSERVICE);
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, l_cBuf); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-EFrameworkunifiedStatus CSystemManager::GetModuleIterator(PCSTR f_moduleName, ModuleLaunchListIter &f_moduleIter) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- ModuleLaunchListIter l_moduleIter;
-// static int l_numTimesEntered = 0 ;
-// l_numTimesEntered++ ;
-// FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__ // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-// , " NTE %d: Looking for %s"
-// , l_numTimesEntered
-// , f_moduleName);
-
- BOOL l_bIsFound = FALSE;
- for (GroupLaunchMapIter l_GroupIter = m_MapProclaunchGrps.begin();
- !l_bIsFound && l_GroupIter != m_MapProclaunchGrps.end();
- l_GroupIter++) {
-// FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__ // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-// , " NTE %d: Checking group %d/%s"
-// , l_numTimesEntered
-// , l_GroupIter->second.id
-// , l_GroupIter->second.name.c_str());
-
- for (l_moduleIter = l_GroupIter->second.modules.begin();
- !l_bIsFound && (l_moduleIter != l_GroupIter->second.modules.end());
- l_moduleIter++) {
-// FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__ // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-// , " NTE %d: Checking PCSTR '%s' against std::string '%s': %d, %s"
-// , l_numTimesEntered
-// , f_moduleName
-// , l_moduleIter->name.c_str()
-// , strcmp(l_moduleIter->name.c_str(), f_moduleName)
-// , (0 == strcmp(l_moduleIter->name.c_str(), f_moduleName) ? "True" : "False"));
-
- l_bIsFound =
- (0 == strcmp(l_moduleIter->name.c_str(), f_moduleName));
- if (l_bIsFound) {
- f_moduleIter = l_moduleIter;
-// FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-//// " NTE %d:"
-// " '%s' is in group %d/%s"
-//// , l_numTimesEntered
-// , f_moduleIter->name.c_str()
-// , l_GroupIter->second.id
-// , l_GroupIter->second.name.c_str());
- l_eStatus = eFrameworkunifiedStatusOK;
- }
- }
- }
-
- if (!l_bIsFound) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
-// " NTE %d:"
- " Error: '%s' is not in group map 'm_MapProclaunchGrps'"
-// , l_numTimesEntered
- , f_moduleName);
- if (0 != strcmp(f_moduleName, SERVICE_SYSMANAGER)) {
- SysMgrConfiguration m_launchConfig;
- m_launchConfig.PrintAllInfo(m_MapProclaunchGrps);
- }
- l_eStatus = eFrameworkunifiedStatusDbRecNotFound;
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::GetModuleIterator( PCSTR f_moduleName
-
-BOOL CSystemManager::IsGroupStarted(UI_32 f_groupID) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- BOOL l_bIsStarted = TRUE;
-
- GroupLaunchMapIter l_GroupIter = m_MapProclaunchGrps.find(f_groupID);
- if (l_GroupIter == m_MapProclaunchGrps.end()) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: Group Map Empty; was looking for group %d", f_groupID);
- } else {
- ModuleLaunchListIter l_ModuleListIter = l_GroupIter->second.modules.begin();
- const SMModuleState l_dest_state = InProgressStateToState(); // LCOV_EXCL_BR_LINE 11: Gcov constraints (because exception-handling routes are automatically generated) // NOLINT(whitespace/line_length)
- if (l_dest_state != MODULE_STATE_INVALID) {
- for (; l_ModuleListIter != l_GroupIter->second.modules.end(); l_ModuleListIter++) {
- if (((l_ModuleListIter->IsModuleState(l_dest_state) == FALSE) // LCOV_EXCL_BR_START 11:Gcov constraints (because exception-handling routes are automatically generated)
- && (l_ModuleListIter->IsModuleState(MODULE_STATE_START_FAILED) == FALSE)
- && (l_ModuleListIter->IsModuleState(MODULE_STATE_START_PRE_FAILED) == FALSE)
- && (l_ModuleListIter->IsModuleState(MODULE_STATE_STOP_PRE_FAILED) == FALSE)
- && (l_ModuleListIter->IsModuleState(MODULE_STATE_START_BACKGROUND_FAILED) == FALSE)
- && (l_ModuleListIter->IsModuleState(MODULE_STATE_STOP_BACKGROUND_FAILED) == FALSE)
- && (l_ModuleListIter->IsModuleState(MODULE_STATE_STOP_FAILED) == FALSE))
- // LCOV_EXCL_BR_STOP 11:Gcov constraints (because exception-handling routes are automatically generated)
- || ((l_ModuleListIter->is_start_required == TRUE)
- // LCOV_EXCL_START 6: Because the value cannot be stored to make the condition true
- && ((l_ModuleListIter->IsModuleState(MODULE_STATE_LAUNCHING) == TRUE)
- || (l_ModuleListIter->IsModuleState(MODULE_STATE_CONNECTED) == TRUE)
- || (l_ModuleListIter->IsModuleState(MODULE_STATE_LAUNCHED) == TRUE)))) {
- // LCOV_EXCL_STOP 6: Because the value cannot be stored to make the condition true
- l_bIsStarted = FALSE;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " No: '%s' in group %d/%s is '%s'", l_ModuleListIter->name.c_str(),
- l_GroupIter->second.id, l_GroupIter->second.name.c_str(),
- l_ModuleListIter->ModuleStateStr().c_str());
- break;
- }
- }
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_bIsStarted;
-} // End of BOOL CSystemManager::IsGroupStarted(UI_32 f_groupId)
-
-BOOL CSystemManager::IsGroupStopped(UI_32 f_groupID) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- BOOL l_bIsStopped = TRUE;
- ModuleLaunchListIter l_ModuleListIter;
-
- GroupLaunchMapIter l_GroupIter = m_MapProclaunchGrps.find(f_groupID);
- if (l_GroupIter == m_MapProclaunchGrps.end()) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning: Group Map Empty; was looking for group %d",
- f_groupID);
- } else {
- for (l_ModuleListIter = l_GroupIter->second.modules.begin();
- l_bIsStopped
- && l_ModuleListIter != l_GroupIter->second.modules.end();
- l_ModuleListIter++) {
- if (l_ModuleListIter->IsModuleState(MODULE_STATE_STOP_SENT)) {
- l_bIsStopped = FALSE;
- }
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_bIsStopped;
-} // End of BOOL CSystemManager::IsGroupStopped(UI_32 f_groupId)
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnStopComplete
-/// Shutdown complete Response\Ack Handlers
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnModuleStopCompleteResponse(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusErrOther;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- PCSTR l_moduleName = FrameworkunifiedGetMsgSrc(hApp);
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "from %s", l_moduleName);
- SetCmdHist("SS_SM_STOP_COMPL_RSPN", m_SMCmdHist, m_SMHistIter, l_moduleName);
-
- char l_cBuf[100];
- snprintf(l_cBuf, sizeof(l_cBuf), "ProcessModuleStopCompleteResponse(%s)", l_moduleName);
- l_eStatus = ProcessModuleStopCompleteResponse(hApp, l_moduleName);
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, l_cBuf); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnModuleStopCompleteResponse( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnGetStartExtInfo
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnGetStartExtInfo(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus;
- T_SS_SM_START_ExtDataStructType l_extInfo = { 0 };
-
- SS_STATIC_ASERT(sizeof(T_SS_SM_START_ExtDataStructType) == SS_SM_START_EXT_INFO_SIZE); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+ ");
-
- SetCmdHist("SS_SM_GET_START_EXT_INFO", m_SMCmdHist, m_SMHistIter, FrameworkunifiedGetMsgSrc(hApp));
-
- l_extInfo.isProgUpdated =
- (m_ProgUpdateState & SS_SM_PROG_UPDATE_STATE_UPDATED) ? TRUE : FALSE;
- l_extInfo.isMapUpdated =
- (m_ProgUpdateState & SS_SM_PROG_UPDATE_STATE_MAP_UPDATED) ? TRUE : FALSE; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_extInfo.isMapDiffUpdated =
- (m_ProgUpdateState & SS_SM_PROG_UPDATE_STATE_MAPDIFF_UPDATED) ? TRUE : FALSE; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- ModuleLaunchListIter l_ModuleListIter;
-
- l_eStatus = GetModuleIterator(FrameworkunifiedGetMsgSrc(hApp), l_ModuleListIter);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: %s not found", FrameworkunifiedGetMsgSrc(hApp));
- } else {
- switch (l_ModuleListIter->relaunch_status) {
- case NotRelaunched:
- l_extInfo.relaunchStatus = e_SS_SM_RELAUNCH_STATUS_NONE;
- break;
- case RelaunchSafe:
- // LCOV_EXCL_START 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_extInfo.relaunchStatus = e_SS_SM_RELAUNCH_STATUS_SAFE;
- break;
- case RelaunchErr:
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_extInfo.relaunchStatus = e_SS_SM_RELAUNCH_STATUS_ERR;
- break;
- default:
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- l_extInfo.relaunchStatus = e_SS_SM_RELAUNCH_STATUS_NONE;
- break;
- // LCOV_EXCL_STOP
- }
- }
-
- // Instead of sending Return Message, this function must call FrameworkunifiedSetSyncResponseData()
- // because this request is sent by FrameworkunifiedInvokeSync()
- l_eStatus = FrameworkunifiedSetSyncResponseData(hApp, &l_extInfo, sizeof(l_extInfo));
- LOG_STATUS_IF_ERRORED(l_eStatus, "FrameworkunifiedSetSyncResponseData()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnGetStartExtInfo( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnGetStopExtInfo
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnGetStopExtInfo(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus;
- T_SS_SM_STOP_ExtDataStructType l_extInfo = { 0 };
-
- SS_STATIC_ASERT(sizeof(T_SS_SM_STOP_ExtDataStructType) == SS_SM_STOP_EXT_INFO_SIZE); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+ ");
-
- SetCmdHist("SS_SM_GET_STOP_EXT_INFO", m_SMCmdHist, m_SMHistIter, FrameworkunifiedGetMsgSrc(hApp));
-
- l_extInfo.isProgUpdated =
- (m_ProgUpdateState & SS_SM_PROG_UPDATE_STATE_UPDATED) ? TRUE : FALSE;
-
- // Instead of sending Return Message, this function must call FrameworkunifiedSetSyncResponseData()
- // because this request is sent by FrameworkunifiedInvokeSync()
- l_eStatus = FrameworkunifiedSetSyncResponseData(hApp, &l_extInfo, sizeof(l_extInfo));
- LOG_STATUS_IF_ERRORED(l_eStatus, "FrameworkunifiedSetSyncResponseData()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnGetStopExtInfo( HANDLE hApp )
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnModuleStopCompleteNotification
-///
-/// \param [in]
-///
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnModuleStopCompleteNotification(HANDLE hApp) { // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+ ");
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_PERFORMANCE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- ShutdownComplete l_shutdownNotif; /// \file frameworkunified_framework_types.h
- // ReadMsg(): *
- // Check hApp ptr, msg size, msg reception, read msg if all ok. *
- // Report any errors found. *
- // *
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < ShutdownComplete > (hApp, l_shutdownNotif))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- PCSTR l_moduleName = l_shutdownNotif.cServiceName;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " '%s' 'Shutdown Complete Status' is 0x%X", l_moduleName,
- l_shutdownNotif.eShutdownCompleteStatus);
-
- char l_cBuf[100];
- snprintf(l_cBuf, sizeof(l_cBuf),
- "ProcessModuleStopCompleteResponse(%s)", l_moduleName);
- l_eStatus = ProcessModuleStopCompleteResponse(hApp, l_moduleName);
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, l_cBuf); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::onmodulestopcompletenotification( HANDLE hApp )
-// LCOV_EXCL_STOP
-
-EFrameworkunifiedStatus CSystemManager::ProcessModuleStopCompleteResponse(HANDLE hApp, PCSTR f_moduleName) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- ModuleLaunchListIter l_ModuleListIter;
- l_eStatus = GetModuleIterator(f_moduleName, l_ModuleListIter);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: Module %s not found in Group Launch Map", f_moduleName);
- } else {
- switch (m_SMCurrentState) {
- case SS_SM_READY_TO_LAUNCH_APP:
- case SS_SM_APPS_LAUNCH_IN_PROGRESS:
- case SS_SM_APPS_LAUNCHED_READY_TO_START:
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Received from client while in "
- "the '%s' state !!!",
- GetStr(m_SMCurrentState).c_str());
- l_eStatus = eFrameworkunifiedStatusErrOther;
- break;
-
- case SS_SM_APPS_STOPPING_AT__CWORD56__REQ:
- case SS_SM_APPS_STOPPING_AT_INTERNAL_REQ:
- case SS_SM_WAITING_FOR_CRITICAL_APPS_AT__CWORD56__REQ:
- case SS_SM_WAITING_FOR_CRITICAL_APPS_AT_INTERNAL_REQ:
- if (m_SystemStarter.get_id() == SS_SM_THIRD_GROUP) {
- // Execute shutdown_critical services termination synchronization prior to CoreModule(backupManager termination processing
- l_ModuleListIter->SetModuleState(MODULE_STATE_STOPPED);
- if (have_critical_services_stopped()) { // Transition after all critical services have ended
- ProcessGroupOnModuleStopResponse(hApp, m_SystemStarter.get_id());
- }
- } else {
- l_eStatus = ModuleCompleteResponse(hApp, l_ModuleListIter,
- MODULE_STATE_STOPPED,
- (SysMgrCbType3<CSystemManager,
- &CSystemManager::IsGroupStopped>),
- (SysMgrCbType2<CSystemManager,
- &CSystemManager::ProcessGroupOnModuleStopResponse>),
- "stop");
- }
- break;
-
- case SS_SM_APPS_START_COMPLETE:
- case SS_SM_APPS_START_IN_PROGRESS:
- case SS_SM_APPS_PRE_RUN_COMPLETE:
- case SS_SM_APPS_PRE_START_IN_PROGRESS:
- case SS_SM_APPS_PRE_STOP_IN_PROGRESS:
- case SS_SM_APPS_BACKGROUND_RUN_COMPLETE:
- case SS_SM_APPS_BACKGROUND_START_IN_PROGRESS:
- case SS_SM_APPS_BACKGROUND_STOP_IN_PROGRESS:
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Received from client while in "
- "the '%s' state !!!",
- GetStr(m_SMCurrentState).c_str());
- l_eStatus = eFrameworkunifiedStatusErrOther;
- break;
- } // End switch ( m_SMCurrentState )
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::ProcessModuleStopCompleteResponse(
-
-EFrameworkunifiedStatus CSystemManager::ProcessGroupOnModuleStopResponse(HANDLE hApp, UI_32 f_groupID) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- UI_32 l_ActiveGroupId = m_SystemStarter.get_id();
-
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER_CLIENT_STOP_MONITOR]);
-
- if (f_groupID != l_ActiveGroupId) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Group %d stop complete, but m_SystemStarter.get_id() is %d",
- f_groupID
- // , m_ActiveGroupId); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- , l_ActiveGroupId);
- } else {
- if (!m_SystemStarter.is_begin()) {
- m_SystemStarter.decrement_id();
- }
- check_all_groups_have_stopped(hApp);
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::ProcessGroupOnModuleStopResponse( HANDLE hApp
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup stop_all_modules_of_group
-/// Send SS_SM_STOP to all modules of the given group
-///
-/// \param [in]
-///
-///
-/// \return VOID
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::stop_all_modules_of_group(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- ModuleLaunchList::reverse_iterator l_revIter;
-
- UI_32 l_uiMaxGroupWaitTime_sec = 0;
- UI_32 l_uiMaxGroupWaitTime_msec = 0;
- UI_32 l_uiModuleWaitTime = 0;
-
- // GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.find(m_ActiveGroupId);
- GroupLaunchMapIter l_GroupIterator = m_MapProclaunchGrps.find(m_SystemStarter.get_id());
- if (l_GroupIterator == m_MapProclaunchGrps.end()) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Group %d not found; 'm_MapProclaunchGrps' is empty"
- //, m_ActiveGroupId); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- , m_SystemStarter.get_id());
- l_eStatus = eFrameworkunifiedStatusDbRecNotFound;
- } else {
- int l_numModulesMessaged = 0;
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "StopReq grp:%d", m_SystemStarter.get_id());
-
- T_SS_SM_STOP_DataStructType l_SM_STOP_Struct;
- l_SM_STOP_Struct.shutdownTrigger = m_shutdownTrigger;
- l_SM_STOP_Struct.lastUserMode = m_lastUserMode;
-
- for (l_revIter = l_GroupIterator->second.modules.rbegin();
- l_revIter != l_GroupIterator->second.modules.rend();
- l_revIter++) {
- // LCOV_EXCL_BR_START 11: Excluded due to gcov constraints (others)
- if ((l_revIter->IsModuleState(MODULE_STATE_START_SENT) == TRUE)
- || (l_revIter->IsModuleState(MODULE_STATE_STARTED) == TRUE)
- || (l_revIter->IsModuleState(MODULE_STATE_START_PRE_SENT) == TRUE)
- || (l_revIter->IsModuleState(MODULE_STATE_STARTED_PRE) == TRUE)
- || (l_revIter->IsModuleState(MODULE_STATE_STOP_PRE_SENT) == TRUE)
- || (l_revIter->IsModuleState(MODULE_STATE_STOPPED_PRE) == TRUE)
- || (l_revIter->IsModuleState(MODULE_STATE_START_BACKGROUND_SENT) == TRUE)
- || (l_revIter->IsModuleState(MODULE_STATE_STARTED_BACKGROUND) == TRUE)
- || (l_revIter->IsModuleState(MODULE_STATE_STOP_BACKGROUND_SENT) == TRUE)
- || (l_revIter->IsModuleState(MODULE_STATE_STOPPED_BACKGROUND) == TRUE)) {
- // LCOV_EXCL_BR_STOP 11: Excluded due to gcov constraints (others)
- if (FRAMEWORKUNIFIED_NS_NPSERVICE == l_revIter->name) {
- if (epssdmsdtFACTORY_DATA_RESET == m_shutdownTrigger) {
- CALL_AND_LOG_STATUS(FrameworkunifiedSendStopToNSNPP(hApp, eFrameworkunifiedDataResetShutdown, eFrameworkunifiedUserData | eFrameworkunifiedFactoryData)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else if (epssdmsdtUSER_DATA_RESET == m_shutdownTrigger) {
- CALL_AND_LOG_STATUS(FrameworkunifiedSendStopToNSNPP(hApp, eFrameworkunifiedDataResetShutdown, eFrameworkunifiedUserData)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else if (epssdmsdtFAST_SLEEP_MODE == m_shutdownTrigger) {
- CALL_AND_LOG_STATUS(FrameworkunifiedSendStopToNSNPP(hApp, eFrameworkunifiedQuickShutdown)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- CALL_AND_LOG_STATUS(FrameworkunifiedSendStopToNSNPP(hApp, eFrameworkunifiedNormalShutdown)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
-
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- l_revIter->SetModuleState(MODULE_STATE_STOP_FAILED);
- } else {
- l_revIter->SetModuleState(MODULE_STATE_STOP_SENT);
- l_numModulesMessaged++;
- }
-
- m_NPPStopSent = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " m_NPPStopSent is %s", GetStr(m_NPPStopSent).c_str()); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- // End else if ( FRAMEWORKUNIFIED_NS_NPSERVICE == l_ModuleListIter->name )
- } else {
- l_eStatus = l_revIter->SendMsgAndUpdateState(&l_SM_STOP_Struct);
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, "l_revIter->SendMsgAndUpdateState(&l_SM_STOP_Struct)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- if (eFrameworkunifiedStatusOK == l_eStatus) {
- if (epssdmsdtFAST_SLEEP_MODE == m_shutdownTrigger) {
- l_uiModuleWaitTime = l_revIter->fast_shutdown_wait_time;
-
- } else {
- l_uiModuleWaitTime = l_revIter->shutdown_wait_time;
- }
- if (l_uiModuleWaitTime > l_uiMaxGroupWaitTime_sec) {
- l_uiMaxGroupWaitTime_sec = l_uiModuleWaitTime;
- }
- l_numModulesMessaged++;
- }
- } // End if MODULE_STATE_STARTED || MODULE_STATE_START_SENT
- } else if (l_revIter->IsModuleState(MODULE_STATE_INVALID)
- && FRAMEWORKUNIFIED_NS_NPSERVICE == l_revIter->name) {
- m_NPPStopSent = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "StopNotSent:%s is INVALID", FRAMEWORKUNIFIED_NS_NPSERVICE);
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "StopNotSent:%s is %s",
- l_revIter->name.c_str(),
- l_revIter->ModuleStateStr().c_str());
- }
- }
-
- if (0 == l_numModulesMessaged) {
- LogGroupModulesState(m_SystemStarter.get_id() // m_ActiveGroupId // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- , " Warning: NO modules were sent SS_SM_STOP");
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "StopComp grp:%d", l_GroupIterator->second.id);
-
- if (m_SystemStarter.get_id() > SS_SM_INITIAL_GROUP) {
- m_SystemStarter.decrement_id();
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, " m_ActiveGroupId is now %d", m_SystemStarter.get_id());
-
- check_all_groups_have_stopped(hApp);
- }
- } else {
- if (epssdmsdtFAST_SLEEP_MODE == m_shutdownTrigger) {
- // fast shutdown wait time always comes in milli seconds
- UI_32 l_uiTotalWaitTime = l_uiMaxGroupWaitTime_sec;
- l_uiMaxGroupWaitTime_sec = l_uiTotalWaitTime / 1000;
- l_uiMaxGroupWaitTime_msec = l_uiTotalWaitTime % 1000;
- } else {
- // Other types of shutdown except fast shutdown always comes in seconds.
- l_uiMaxGroupWaitTime_msec = 0;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "StopTimer grp:%d time:%d.%d",
- m_SystemStarter.get_id(), l_uiMaxGroupWaitTime_sec,
- l_uiMaxGroupWaitTime_msec);
- m_GroupLaunchTimer->StartTimerMulti(
- m_aTimerIDs[eSM_TIMER_CLIENT_STOP_MONITOR],
- l_uiMaxGroupWaitTime_sec, l_uiMaxGroupWaitTime_msec, 0, 0,
- m_SystemStarter.get_id());
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of VOID CSystemManager::stop_all_modules_of_group(HANDLE hApp)
-
-EFrameworkunifiedStatus CSystemManager::ValidateUserModeMessage(HANDLE hApp, EPWR_USER_MODE_TYPE &l_eUserModeState) { // LCOV_EXCL_START 6: Because the condition cannot be set // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- Pwr_ServiceSetInterface tServiceSetIf;
- EPWR_USER_MODE_TYPE l_my_eUserModeState;
-
- // ReadMsg(): *
- // Check hApp ptr, msg size, msg reception, read msg if all ok. *
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < Pwr_ServiceSetInterface > (hApp, tServiceSetIf))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- l_my_eUserModeState = tServiceSetIf.data.user_mode.mode;
- switch (l_my_eUserModeState) {
- case epsumINVALID:
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: l_eUserModeState == epsumINVALID");
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- break;
-
- case epsumOFF:
- case epsumON:
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Validated '%s'",
- l_my_eUserModeState == epsumON ? "epsumON" : "epsumOFF");
- l_eUserModeState = l_my_eUserModeState;
- l_eStatus = eFrameworkunifiedStatusOK;
- break;
-
- // default: Don't code a 'default' here - let the compiler
- // issue a warning ( set via -Wall or -Wswitch ) when the set of
- // enumerations changes - then the maintainer will
- // automagically know to update this switch statement.
- } // End switch
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::ValidateUserModeMessage( HANDLE hApp, EPWR_USER_MODE_TYPE &l_eUserModeState )
-// LCOV_EXCL_STOP
-
-//*****************************************************************************
-// Next Wakeup Type Set Protocol functions *
-// *
-EFrameworkunifiedStatus CSystemManager::OnSetNextWakeupTypeRequest(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- ESMNextWakeupType l_wakeupType;
-
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
- SetCmdHist("SS_SM_NEXT_WAKEUP_TYPE_SET_REQ", m_SMCmdHist, m_SMHistIter, FrameworkunifiedGetMsgSrc(hApp));
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < ESMNextWakeupType > (hApp, l_wakeupType))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- switch (l_wakeupType) {
- case e_SS_SM_NEXT_WAKEUP_TYPE_NONE:
- case e_SS_SM_NEXT_WAKEUP_TYPE_COLD:
- case e_SS_SM_NEXT_WAKEUP_TYPE_HOT:
- break;
- default:
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "unknown type(%d)", l_wakeupType);
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- }
- }
- l_eStatus = FrameworkunifiedSetSyncResponseData(hApp, &l_eStatus, sizeof(l_eStatus));
- LOG_STATUS_IF_ERRORED(l_eStatus, "FrameworkunifiedSetSyncResponseData()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnSetNextWakeupTypeRequest( HANDLE hApp )
-
-// *
-// End of Boot Mode Protocol functions *
-//*****************************************************************************
-
-
-//*****************************************************************************
-// Data Reset Mode Protocol functions *
-// *
-EFrameworkunifiedStatus CSystemManager::OnSetDataResetModeRequest(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- ESMDataResetModeInfo l_dataResetMode;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- SetCmdHist("SS_SM_DATA_RESET_MODE_SET_REQ", m_SMCmdHist, m_SMHistIter, FrameworkunifiedGetMsgSrc(hApp));
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < ESMDataResetModeInfo > (hApp, l_dataResetMode))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- uint32_t tmp;
- m_DataResetMode = l_dataResetMode;
- tmp = static_cast<uint32_t>(m_DataResetMode);
- if (PowerHalSetResetInfo(AGL_DATARESET_STATE, tmp)) { // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Could not set AGL_DATARESET_STATE.");
- // Return error to client of system_manager.
- l_eStatus = eFrameworkunifiedStatusFail;
- }
- }
- //
- // Instead of sending Return Message, this function must call FrameworkunifiedSetSyncResponseData()
- // because this request is sent by FrameworkunifiedInvokeSync()
- //
- l_eStatus = FrameworkunifiedSetSyncResponseData(hApp, &l_eStatus, sizeof(l_eStatus));
- LOG_STATUS_IF_ERRORED(l_eStatus, "FrameworkunifiedSetSyncResponseData()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnSetDataResetModeRequest( HANDLE hApp )
-
-EFrameworkunifiedStatus CSystemManager::OnSetProgUpdateStateRequest(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus;
- SMProgUpdateState l_progUpdateState;
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(hApp));
-
- SetCmdHist("SS_SM_PROG_UPDATE_STATE_SET_REQ", m_SMCmdHist, m_SMHistIter, FrameworkunifiedGetMsgSrc(hApp));
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < SMProgUpdateState > (hApp, l_progUpdateState))) { // LCOV_EXCL_BR_LINE 4: nsfw error
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else {
- m_ProgUpdateState |= l_progUpdateState;
- if (PowerHalSetResetInfo(AGL_PROGUPDATE_STATE, m_ProgUpdateState)) { // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Could not set AGL_PROGUPDATE_STATE.");
- // return Error to client of system_manager.
- l_eStatus = eFrameworkunifiedStatusFail;
- }
- }
- // Instead of sending Return Message, this function must call FrameworkunifiedSetSyncResponseData()
- // because this request is sent by FrameworkunifiedInvokeSync()
- l_eStatus = FrameworkunifiedSetSyncResponseData(hApp, &l_eStatus, sizeof(l_eStatus));
- LOG_STATUS_IF_ERRORED(l_eStatus, "FrameworkunifiedSetSyncResponseData()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnSetProgUpdateStateRequest( HANDLE hApp )
-
-EFrameworkunifiedStatus CSystemManager::CallStopCompleteHandler(HANDLE hApp, BOOL bIsDetectTimeout /* = FALSE */) {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
-
- if (bIsDetectTimeout) {
- fprintf(stderr, "SS_SysManager/%s/State StopComplete(timeout)\n", __FUNCTION__);
- } else {
- fprintf(stderr, "SS_SysManager/%s/State StopComplete\n", __FUNCTION__);
- }
-
- l_eStatus = SecureChipOff();
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Error: SecureChipOff Failed");
- }
-
- l_eStatus = (*m_pfStopCompleteHandler)(hApp);
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::CallStopCompleteHandler( HANDLE hApp )
-
-
-//*****************************************************************************
-// Soft Reset Protocol functions *
-// *
-static char *get_line(const char *filepath) {
- char line[LINE_MAX];
- FILE *fp;
-
- if ((fp = fopen(filepath, "rb")) == NULL)
- return NULL;
- if (fgets(line, LINE_MAX, fp) == NULL) { // LCOV_EXCL_BR_LINE 5:fgets error
- // LCOV_EXCL_START 5: fgets error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- fclose(fp);
- return NULL;
- // LCOV_EXCL_STOP
- }
- fclose(fp);
-
- return strdup(line);
-}
-
-EFrameworkunifiedStatus CSystemManager::PerformCpuReset(HANDLE hApp,
- ESMCpuResetReason f_eSmCpuResetReason, std::string f_messageStr) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- if (FALSE == m_isRcvModeInfo) {
- // If the condition for implementing the CpuReset request is not satisfied, keep the request.
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "Cpu Reset Pending");
- m_isRstPending = TRUE;
- m_rstPendingInfo.resetReason = f_eSmCpuResetReason;
- snprintf(m_rstPendingInfo.messageStr,
- sizeof(m_rstPendingInfo.messageStr), "%s", f_messageStr.c_str());
- } else {
- switch (f_eSmCpuResetReason) {
- case e_SS_SM_CPU_RESET_REASON_CRITICAL_ERR:
- case e_SS_SM_CPU_RESET_REASON_GENERIC_ERR:
- case e_SS_SM_CPU_RESET_REASON_DSP_ERR:
- m_isImmResetReq = TRUE;
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, " will reset immediately");
- // The break is omitted because the same process as for a normal reboot is performed.
- case e_SS_SM_CPU_RESET_REASON_USER_FORCE_RESET:
- m_pfStopCompleteHandler = (SysMgrCallback<CSystemManager, &CSystemManager::perform_force_reset>);
- case e_SS_SM_CPU_RESET_REASON_NORMAL: {
- TSystemManagerCpuResetInfo l_resetInfo;
-
- l_resetInfo.resetReason = f_eSmCpuResetReason;
- snprintf(l_resetInfo.messageStr, SS_SM_RESET_MSG_STR_SIZE, "%s", f_messageStr.c_str());
- l_eStatus = FrameworkunifiedSendMsg(m_hPowerServiceSession, SS_SM_CPU_RESET_REQ,
- sizeof(l_resetInfo), (PVOID) & l_resetInfo);
- LOG_STATUS(l_eStatus, // LCOV_EXCL_BR_LINE 6: Because the condition cannot be set
- "FrameworkunifiedSendMsg(m_hPowerServiceSession, SS_SM_CPU_RESET_REQ)");
- }
- break;
- case e_SS_SM_CPU_RESET_REASON_DATA_RESET: {
- ESMDataResetType l_eSmDataResetType;
-
- switch (m_DataResetMode) {
- case e_SS_SM_DATA_RESET_MODE_FACTORY:
- l_eSmDataResetType = e_SS_SM_DATA_RESET_TYPE_FACTORY;
- break;
- case e_SS_SM_DATA_RESET_MODE_USER:
- l_eSmDataResetType = e_SS_SM_DATA_RESET_TYPE_USER;
- l_eStatus = FrameworkunifiedBroadcastEvent(hApp, SS_SM_EVENT_USER_DATA_RESET, NULL, 0);
- LOG_STATUS(l_eStatus, "FrameworkunifiedBroadcastEvent(SS_SM_EVENT_USER_DATA_RESET)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- break;
- default:
- SS_ASERT_LOG(0, "unexpected data reset mode : %d", m_DataResetMode); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- break;
- }
- if (l_eStatus == eFrameworkunifiedStatusOK) {
- l_eStatus = FrameworkunifiedSendMsg(m_hPowerServiceSession,
- SS_SM_REMOTE_DATA_RESET_REQ, sizeof(l_eSmDataResetType),
- (PVOID) & l_eSmDataResetType);
- LOG_STATUS(l_eStatus, "FrameworkunifiedSendMsg(m_hPowerServiceSession, SS_SM_REMOTE_DATA_RESET_REQ)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- }
- break;
- case e_SS_SM_CPU_RESET_REASON_INVALID:
- default:
- SS_ASERT_LOG(0, " Error: Unknown CPU reset request type: 0x%X/%d", // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- f_eSmCpuResetReason, f_eSmCpuResetReason);
- l_eStatus = eFrameworkunifiedStatusInvldParam;
- break;
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::PerformCpuReset( ESMCpuResetReason f_eSmCpuResetReason )
-
-//*****************************************************************************
-// CPU Reset Protocol functions *
-// *
-EFrameworkunifiedStatus CSystemManager::OnCpuResetRequest(HANDLE hApp) { // SS_SM_CPU_RESET_REQ
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail;
- std::string l_moduleName = FrameworkunifiedGetMsgSrc(hApp);
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "from %s", l_moduleName.c_str());
-
- // If you implement FastSleep,
- // ShutdownTrigger of FrameworkunifiedOnStop needs to be changed to FAST_SLEEP_MODE,
- // and also MaxShutdownTime needs to be changed to CriticalAppsMaxShutdownTimeFastSleep
-
- try {
- TSystemManagerCpuResetInfo l_resetInfo;
- SetCmdHist("SS_SM_CPU_RESET_REQ", m_SMCmdHist, m_SMHistIter, // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- FrameworkunifiedGetMsgSrc(hApp)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < TSystemManagerCpuResetInfo > (hApp, l_resetInfo))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- char l_cBuf[100];
- EErrorEventType l_errorEventType;
- SMLoggingInfo l_loggingInfo; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_loggingInfo.messageStr = l_resetInfo.messageStr;
- l_loggingInfo.suffixStr = l_resetInfo.suffixStr;
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__,
- " CPU Reset Reason: '%d'/'%s' from %s",
- l_resetInfo.resetReason,
- GetStr(l_resetInfo.resetReason).c_str(),
- FrameworkunifiedGetMsgSrc(hApp));
-
- if (e_SS_SM_CPU_RESET_REASON_IMMRESET_NORMAL == l_resetInfo.resetReason) {
- m_isImmResetReq = TRUE;
- l_resetInfo.resetReason = e_SS_SM_CPU_RESET_REASON_NORMAL;
- }
- switch (l_resetInfo.resetReason) {
- case e_SS_SM_CPU_RESET_REASON_DATA_RESET:
- switch (m_DataResetMode) {
- case e_SS_SM_DATA_RESET_MODE_FACTORY:
- case e_SS_SM_DATA_RESET_MODE_USER:
- break;
- case e_SS_SM_DATA_RESET_MODE_NONE:
- default:
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "unexpected data reset mode : %d", m_DataResetMode);
- throw eFrameworkunifiedStatusInvldParam;
- }
- case e_SS_SM_CPU_RESET_REASON_CRITICAL_ERR:
- case e_SS_SM_CPU_RESET_REASON_GENERIC_ERR:
- case e_SS_SM_CPU_RESET_REASON_DSP_ERR:
- case e_SS_SM_CPU_RESET_REASON_NORMAL:
- l_errorEventType = eErrorEventTypeModuleInvokedResetRequest;
- l_loggingInfo.resetReason = l_resetInfo.resetReason;
- break;
- case e_SS_SM_CPU_RESET_REASON_USER_FORCE_RESET:
- // Separate ErrorEventType only for USER_FORCE_RESET, because the logs to be saved differ.
- l_errorEventType = eErrorEventTypeUserInvokedUserForceReset;
- l_loggingInfo.resetReason = e_SS_SM_CPU_RESET_REASON_USER_FORCE_RESET;
- break;
- case e_SS_SM_CPU_RESET_REASON_INVALID:
- default:
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Unknown CPU reset request type: 0x%X/%d",
- l_resetInfo.resetReason, l_resetInfo.resetReason);
- throw eFrameworkunifiedStatusInvldParam;
- }
-
- l_eStatus = ErrorEventEnqueue(hApp, l_errorEventType, l_moduleName,
- eErrorEventResetTypeHard, l_loggingInfo);
-
- snprintf(l_cBuf, sizeof(l_cBuf), "ErrorEventEnqueue(%s)",
- GetStr(l_errorEventType).c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, l_cBuf); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
- } catch (EFrameworkunifiedStatus e) {
- l_eStatus = e;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-// *
-// End of CPU Reset Protocol functions *
-//*****************************************************************************
-
-VOID CSystemManager::InitiateAllGroupsShutdown(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- // Prioritize safe termination sequence and do not save logs during termination
- m_errorEventQueueLocked = TRUE;
-
- m_MaxShutdownTime = calculate_max_shutdown_time();
-
- l_eStatus = FrameworkunifiedNPPublishNotification(hApp, NTFY_SSSystemMgrShutdownStarted, NULL, 0);
-
- SetCmdHist(NTFY_SSSystemMgrShutdownStarted, m_PubCmdHist, m_PubHistIter, ""); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "FrameworkunifiedNPPublishNotification(" NTFY_SSSystemMgrShutdownStarted ")");
-
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER_START_RESP_MONITOR_WAIT_TIMER]);
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER_CLIENT_START_MONITOR]);
-
- // Stop Heartbeat thread activity
- l_eStatus = SendRequestToHeartBeat(hApp, SS_HEARTBEAT_STOP, NULL, 0);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "SendRequestToHeartBeat(SS_HEARTBEAT_STOP)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- SMSetState(hApp, SS_SM_APPS_STOPPING_AT__CWORD56__REQ);
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "shutdownTrigger:%s, lastUserMode:%s",
- GetStr(m_shutdownTrigger).c_str(), GetStr(m_lastUserMode).c_str());
-
- fprintf(stderr, // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- "SS_SysManager/%s/State shutdownTrigger:%s, lastUserMode:%s\n", // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- __FUNCTION__, GetStr(m_shutdownTrigger).c_str(), // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- GetStr(m_lastUserMode).c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- /// Send SS_SM_STOP to all modules, starting with the m_ActiveGroupId group
- m_NPPStopSent = FALSE;
- check_all_groups_have_stopped(hApp);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return;
-} // End of EFrameworkunifiedStatus CSystemManager::InitiateAllGroupsShutdown(HANDLE hApp)
-
-VOID CSystemManager::SendDeferMsg(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- if (!m_dqDeferMsg.empty()) {
- EFrameworkunifiedStatus l_eStatus;
- SM_POWER_EVENT_INFO deferMsg;
-
- deferMsg = m_dqDeferMsg.front();
- m_dqDeferMsg.pop();
-
- HANDLE hSender = McOpenSender(SERVICE_SYSMANAGER);
- if (hSender == NULL) { // LCOV_EXCL_BR_LINE 4: nsfw error
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error: McOpenSender(SERVICE_SYSMANAGER)");
- // LCOV_EXCL_STOP
- } else {
- CALL_AND_LOG_STATUS_IF_ERRORED( // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- McSend(hSender, SERVICE_POWER, deferMsg.first,
- sizeof(Pwr_ServiceSetInterface),
- (PVOID) & deferMsg.second));
- CALL_AND_LOG_STATUS_IF_ERRORED(McClose(hSender)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- return;
-} // End of VOID CSystemManager::SendDeferMsg(HANDLE hApp)
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup PublishPowerOnOffNotification
-/// Power Off notification handler
-///
-/// \param [in]
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::PublishPowerOnOffNotification(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- l_eStatus = PerformPowerOnOffUserModePublication(hApp, NTFY_SSSystemMgrPowerOnOff);
-
- SetCmdHist(NTFY_SSSystemMgrPowerOnOff, m_PubCmdHist, m_PubHistIter, "");
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, "PerformPowerOnOffUserModePublication()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-EFrameworkunifiedStatus CSystemManager::PublishUserModeNotification(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- l_eStatus = PerformPowerOnOffUserModePublication(hApp, NTFY_SSSystemMgrUserMode);
-
- SetCmdHist(NTFY_SSSystemMgrUserMode, m_PubCmdHist, m_PubHistIter, "");
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, "PerformPowerOnOffUserModePublication()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::PublishUserModeNotification(
-
-EFrameworkunifiedStatus CSystemManager::PerformPowerOnOffUserModePublication(HANDLE hApp, const char * p_NotificationStr) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- char l_cBuf[500] = { 0 };
-
- if (m_SMConfig.UMConfig.IsUserModeNotificationABOOL) {
- BOOL l_bUuserMode(m_PowerType_to_SSBoolEnumMap[m_Wake.powerupType]);
-
- snprintf(l_cBuf, sizeof(l_cBuf), "FrameworkunifiedNPPublishNotification(%s, %s)",
- p_NotificationStr, GetStr(l_bUuserMode).c_str());
- l_eStatus = FrameworkunifiedNPPublishNotification(hApp, p_NotificationStr,
- &l_bUuserMode, sizeof(l_bUuserMode));
- } else {
- T_SS_SM_UserModeOnOffNotification_Struct l_UserModeOnOffStruct(
- m_PowerType_to_SSBoolEnumMap[m_Wake.powerupType],
- m_StartUpReason, m_userModeChangeReason);
-
- snprintf(l_cBuf, sizeof(l_cBuf),
- "FrameworkunifiedNPPublishNotification(%s, %s, %s, %s)", p_NotificationStr,
- GetStr(l_UserModeOnOffStruct.isUserModeOn).c_str(),
- GetStr(m_StartUpReason).c_str(),
- GetStr(m_userModeChangeReason).c_str());
- l_eStatus = FrameworkunifiedNPPublishNotification(hApp, p_NotificationStr,
- &l_UserModeOnOffStruct, sizeof(l_UserModeOnOffStruct));
- }
-
- SetCmdHist(p_NotificationStr, m_PubCmdHist, m_PubHistIter, "");
- LOG_STATUS(l_eStatus, l_cBuf); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::PerformPowerOnOffUserModePublication(
-
-EFrameworkunifiedStatus CSystemManager::ResetModulesStateToConnected(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- ModuleLaunchListIter l_moduleIter;
- for (GroupLaunchMapIter l_GroupIter = m_MapProclaunchGrps.begin();
- l_GroupIter != m_MapProclaunchGrps.end(); l_GroupIter++) {
- for (l_moduleIter = l_GroupIter->second.modules.begin();
- l_moduleIter != l_GroupIter->second.modules.end();
- l_moduleIter++) {
- if (l_moduleIter->name == FRAMEWORKUNIFIED_NS_NPSERVICE) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " %s ( Group %d/%s ) is %s",
- l_moduleIter->name.c_str(), l_GroupIter->second.id,
- l_GroupIter->second.name.c_str(),
- l_moduleIter->ModuleStateStr().c_str());
- l_moduleIter->SetModuleState(MODULE_STATE_STARTED); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- // End else if ( FRAMEWORKUNIFIED_NS_NPSERVICE == l_ModuleListIter->name )
- } else {
- switch (l_moduleIter->GetModuleState()) {
- case MODULE_STATE_INVALID:
- case MODULE_STATE_SKIPPED:
- case MODULE_STATE_LAUNCHING:
- case MODULE_STATE_LAUNCHED:
- case MODULE_STATE_LAUNCH_FAILED:
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " %s ( Group %d/%s ) is %s, NOT setting to "
- "MODULE_STATE_CONNECTED",
- l_moduleIter->name.c_str(), l_GroupIter->second.id,
- l_GroupIter->second.name.c_str(),
- l_moduleIter->ModuleStateStr().c_str()); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- break;
-
- case MODULE_STATE_STARTED:
- case MODULE_STATE_START_SENT:
- case MODULE_STATE_CONNECTED:
- case MODULE_STATE_START_FAILED:
- case MODULE_STATE_STOP_FAILED:
- case MODULE_STATE_STOP_SENT:
- case MODULE_STATE_STOPPED:
- case MODULE_STATE_START_PRE_SENT:
- case MODULE_STATE_START_PRE_FAILED:
- case MODULE_STATE_STARTED_PRE:
- case MODULE_STATE_STOP_PRE_SENT:
- case MODULE_STATE_STOP_PRE_FAILED:
- case MODULE_STATE_STOPPED_PRE:
- case MODULE_STATE_START_BACKGROUND_SENT:
- case MODULE_STATE_START_BACKGROUND_FAILED:
- case MODULE_STATE_STARTED_BACKGROUND:
- case MODULE_STATE_STOP_BACKGROUND_SENT:
- case MODULE_STATE_STOP_BACKGROUND_FAILED:
- case MODULE_STATE_STOPPED_BACKGROUND:
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " %s ( Group %d/%s ) is %s",
- l_moduleIter->name.c_str(), l_GroupIter->second.id,
- l_GroupIter->second.name.c_str(),
- l_moduleIter->ModuleStateStr().c_str());
- l_moduleIter->SetModuleState(MODULE_STATE_CONNECTED);
- break;
- // default: Don't code a 'default' here - let the compiler
- // issue a warning ( set via -Wall or -Wswitch ) when the set of
- // enumerations changes - then the maintainer will
- // automagically know to update this switch statement.
- }
- }
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::ResetModulesStateToConnected(HANDLE hApp)
-
-EFrameworkunifiedStatus CSystemManager::On_CWORD56_HeartBeatRequest(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- PCSTR l_senderName = FrameworkunifiedGetMsgSrc(hApp);
-
- SetCmdHist("SS_SM__CWORD56__HEARTBEAT_REQ", m_SMCmdHist, m_SMHistIter, l_senderName);
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_INFO, __FUNCTION__, " Received from %s", l_senderName);
- EPWR_HB_REQ_MSG_STRUCT l_hbReq;
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < EPWR_HB_REQ_MSG_STRUCT > (hApp, l_hbReq))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
-
- m_GroupLaunchTimer->StopTimer(m_aTimerIDs[eSM_TIMER__CWORD56__HEARTBEAT_RESPONSE]);
-
- if (l_hbReq.IntervalSec > 0) {
- m_GroupLaunchTimer->StartTimer(
- m_aTimerIDs[eSM_TIMER__CWORD56__HEARTBEAT_RESPONSE], 0, 0,
- l_hbReq.IntervalSec, 0);
- } else if (l_hbReq.IntervalSec == 0) { // LCOV_EXCL_BR_LINE 8: As the condition is never false
- l_eStatus = FrameworkunifiedSendMsg(m_hPowerServiceSession, SS_SM__CWORD56__HEARTBEAT_RSPN, 0, NULL);
-
- LOG_STATUS(l_eStatus, "FrameworkunifiedSendMsg(m_hPowerServiceSession, SS_SM__CWORD56__HEARTBEAT_RSPN)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-EFrameworkunifiedStatus CSystemManager::On_CWORD56_HeartBeatResponseIntervalTimerExpiry(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- SetCmdHist("SM_TIMER__CWORD56__HEARTBEAT_RESPONSE", m_TimerCmdHist, m_TimerHistIter, FrameworkunifiedGetMsgSrc(hApp)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_eStatus = FrameworkunifiedSendMsg(m_hPowerServiceSession, SS_SM__CWORD56__HEARTBEAT_RSPN, 0, NULL);
-
- LOG_STATUS(l_eStatus, "FrameworkunifiedSendMsg(m_hPowerServiceSession, SS_SM__CWORD56__HEARTBEAT_RSPN)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-// EOF of /SS_SystemManager/src/ss_system_manager_callbacks.cpp
-
diff --git a/systemservice/system_manager/server/src/ss_system_manager_error_event.cpp b/systemservice/system_manager/server/src/ss_system_manager_error_event.cpp
deleted file mode 100755
index 131b86a..0000000
--- a/systemservice/system_manager/server/src/ss_system_manager_error_event.cpp
+++ /dev/null
@@ -1,945 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for IAT error event logging.
-///
-///////////////////////////////////////////////////////////////////////////////
-#include <stdlib.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <dirent.h>
-#include <sys/mman.h>
-#include <sys/procfs.h>
-#include <libgen.h>
-#include <spawn.h>
-#include <errno.h>
-#include <sys/timeb.h>
-#include <system_service/ss_system_manager_notifications.h>
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/frameworkunified_multithreading.h>
-#include <system_service/ss_services.h>
-#include <system_service/ss_client_names.h>
-#include <system_service/ss_power_service_if.h>
-#include <processlauncher/ProcessLauncher_if.h>
-#include <processlauncher/ss_sm_process_launcher_protocol.h>
-#include <processlauncher/ss_sm_process_launcher.h>
-#include <heartbeat/ss_hb_if.h>
-#include <system_service/ss_heartbeat_service_protocol.h>
-#include <system_service/ss_power_service_notifications.h>
-#include <system_service/ss_power_service_protocol.h>
-#include <stub/ss_diag.h>
-#include <system_service/ss_test_clients.h>
-#include <native_service/ns_np_service_protocol.h>
-#include <native_service/frameworkunified_application.h>
-
-#include <system_service/ss_sm_thread_names.h>
-#include <system_service/ss_templates.h>
-#include <native_service/ns_plogger_if.h>
-#include <native_service/frameworkunified_thread_priority.h>
-#include <native_service/ns_np_service_nor_persistence.h>
-#include <boost/bind.hpp>
-#include <string>
-#include "ss_system_manager.h"
-#include "ss_sm_systemmanagerlog.h"
-#include "ss_sm_default_paths.h"
-#include "ss_sm_version.h"
-
-template<typename C, eFrameworkunifiedStatus (C::*M)(HANDLE)>
- EFrameworkunifiedStatus SysMgrCallback(HANDLE hApp) { // LCOV_EXCL_START 6: Can not set condition
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail;
- C * pObj = static_cast<C *>(&CSystemManager::GetInstance());
- if (pObj) {
- l_eStatus = (pObj->*M)(hApp);
- }
- return l_eStatus;
-}
-// LCOV_EXCL_STOP
-
-//******************************************************************************
-void Init_EErrorEventReset_StrMap(std::map<EErrorEventResetType, SS_String> & m_strMap) { // NOLINT
- MAP_ENTRY(m_strMap, eErrorEventResetTypeNone); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- MAP_ENTRY(m_strMap, eErrorEventResetTypeHard); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-}
-class EnumStringMap<EErrorEventResetType, Init_EErrorEventReset_StrMap> m_oEErrorEventResetTypeMap;
-SS_String GetStr(EErrorEventResetType f_enum) { // LCOV_EXCL_START 6: Can not set condition
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- return m_oEErrorEventResetTypeMap.GetStr(f_enum);
-}
-// LCOV_EXCL_STOP
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup ErrorEventInit
-/// This function initializes the error event handling subsystem.
-/// This function MUST be called by System Manager initialization.
-///
-/// \param HANDLE f_hApp AGL FW application handle.
-///
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::ErrorEventInit(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- Timer *l_pTimer;
-
- m_isPrevErrEventCompleted = TRUE;
- m_errorEventResult = eFrameworkunifiedStatusOK;
- m_errorEventQueueLocked = FALSE;
- m_errorEventCurrentIter = m_errorEventQueue.end();
-
- l_pTimer = &m_errorEventTimers[eSM_ERROR_EVENT_TIMER_LOGGER_START_REQ];
- l_pTimer->Initialize(f_hApp, SS_SM_ERROR_EVENT_TIMER_ID_LOGGER_START_REQ,
- boost::bind(&CSystemManager::OnErrorEventLoggerStartRequestTimeout, this, _1)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_pTimer = &m_errorEventTimers[eSM_ERROR_EVENT_TIMER_DEBUG_DUMP_RSPN];
- l_pTimer->Initialize(f_hApp, SS_SM_ERROR_EVENT_TIMER_ID_DEBUG_DUMP_RSPN,
- boost::bind(&CSystemManager::OnDebugDumpCompleteTimeout, this, _1)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_pTimer = &m_errorEventTimers[eSM_ERROR_EVENT_TIMER_BOOT_MICRO_LOG_RSPN];
- l_pTimer->Initialize(f_hApp, SS_SM_ERROR_EVENT_TIMER_ID_BOOT_MICRO_LOG_RSPN,
- boost::bind(&CSystemManager::OnErrorEventBootMicroLogResponseTimeout, this, _1)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_pTimer = &m_errorEventTimers[eSM_ERROR_EVENT_TIMER_CORE_FILE_POLL];
- l_pTimer->Initialize(f_hApp, SS_SM_ERROR_EVENT_TIMER_ID_CORE_FILE_POLL,
- boost::bind(&CSystemManager::OnErrorEventCoreFilePollTimeout, this, _1)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup ErrorEventEnqueue
-/// Conditional queue error events for processing by the error event state
-/// machine.
-///
-/// \param f_hApp Handle to AGL application.
-///
-/// \param f_eventType Error event type.
-///
-/// \param f_moduleQueueName Error event trigger module queue name.
-///
-/// \param f_resetType Error event reset type (none, hard).
-///
-/// \param f_loggingInfo Logging information if applicable (optional).
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::ErrorEventEnqueue(HANDLE f_hApp,
- EErrorEventType f_eventType, std::string &f_moduleQueueName,
- EErrorEventResetType f_resetType, const SMLoggingInfo &f_loggingInfo) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- ERROR_EVENT_INFO l_errorEventInfo;
- ERROR_EVENT_QUEUE_ITER l_errorEventIter;
- ERROR_EVENT_QUEUE_RET l_retVal;
- BOOL isErrorReset = FALSE;
-
- if (eErrorEventResetTypeHard == f_resetType) {
- // Forced reset if shutdown process is not completed after Reboot requesting
- m_GroupLaunchTimer->StartTimer(
- m_aTimerIDs[eSM_TIMER_SHUTDOWN_COMPLETE_MONITOR],
- SM_SHUTDOWN_COMPLETE_MONITOR_TIMEOUT, 0, 0, 0);
-
- switch (f_loggingInfo.resetReason) {
- case e_SS_SM_CPU_RESET_REASON_GENERIC_ERR:
- case e_SS_SM_CPU_RESET_REASON_DSP_ERR:
- isErrorReset = TRUE;
- break;
- default:
- break;
- }
- // LCOV_EXCL_START 6:This variable cannot be modified by external API
- if ((m_ResetCount > SS_SM_ERR_NAVI_RESET_LIMIT) && isErrorReset) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 6:This variable cannot be modified by external API (evaluated only initial value)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- fprintf(stderr,
- "SS_SysManager/%s:will NAVIDET as continuous error(%d) \n", __FUNCTION__, m_ResetCount);
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "will NAVIDET as continuous error(%d)", m_ResetCount);
- m_pfStopCompleteHandler = (SysMgrCallback<CSystemManager, &CSystemManager::perform_force_reset>);
- // LCOV_EXCL_STOP
- }
- }
-
- if (TRUE == m_errorEventQueueLocked) {
- l_eStatus = eFrameworkunifiedStatusAccessError;
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning. The Error Event Queue has been locked. No further items may be enqueued. System reset pending."); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- } else {
- GetTimeStamp(l_errorEventInfo.m_eventEnqueueTimeStamp);
-
- l_errorEventInfo.m_moduleQueueName = f_moduleQueueName;
- l_errorEventInfo.m_eventType = f_eventType;
- l_errorEventInfo.m_errorEventResetType = f_resetType;
- l_errorEventInfo.m_loggingInfo = f_loggingInfo;
- l_errorEventInfo.m_prio = eErrorEventPrioDefault; // Make Prios of all ErrorEvent first-win as default
- // It needs to add eErrorEventPrioxxx properly if design modification about priority required
-
- if (eErrorEventResetTypeNone != f_resetType) {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, " System will reset after logging");
- }
-
- l_retVal = m_errorEventQueue.insert(l_errorEventInfo);
- if (FALSE == l_retVal.second) {
- std::string l_errorEventName = GetStr(l_errorEventInfo.m_eventType);
- TEXT(__FUNCTION__, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- " ERROR EVENT: %s is already queued or is in progress. Event dropped.", // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- l_errorEventName.c_str()); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- }
-
- l_eStatus = ErrorEventProcessNext(f_hApp);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "ErrorEventProcessNext()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup PerformResetAfterLogging
-/// perform CPU reset after logging complete
-///
-/// \param f_hApp Handle to AGL application.
-/// f_eCpuResetReason CPU reset reason
-/// f_messageStr Error message string
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///
-///
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::PerformResetAfterLogging(HANDLE f_hApp,
- ESMCpuResetReason f_eCpuResetReason, std::string f_messageStr) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- l_eStatus = PerformCpuReset(f_hApp, f_eCpuResetReason, f_messageStr);
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, "PerformCpuReset()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_BR_START 200: Can not satisfy the condition for calling from caller
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 200: Can not satisfy the condition for calling from caller
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT_LOG(0, "PerformCpuReset() : %d", l_eStatus);
- // Erasing ErrorEvent only if resetting process is failed
- m_errorEventQueue.erase(m_errorEventCurrentIter); // Erase last processed event.
- // LCOV_EXCL_STOP
- } else {
- m_errorEventQueueLocked = TRUE; // Permanent lock until post reset.
- m_errorEventQueue.clear(); // Drop queued events.
- SendDeferMsg(f_hApp);
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup ErrorEventProcessNext
-/// Process the next error event from error event queue.
-///
-/// \param f_hApp Handle to AGL application.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///
-/// \Notes (1) Removal from the queue occurs AFTER the entry has been processed
-/// AND just before the NEXT entry is to be obtained. Therefore,
-/// the first item enqueued MUST not be removed since it has not
-/// been processed. This is ensured by setting the iterator to END
-/// during module initialization. After processing the first event,
-/// the iterator will no longer be END until all events have been
-/// processed.
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::ErrorEventProcessNext(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- ERROR_EVENT_QUEUE_ITER l_errorEventIter;
- SMErrorEventNtfData l_errorEventNtfData;
-
- if (TRUE == m_isPrevErrEventCompleted) { // Remove last completed item from front of queue.
- // See Note #1.
- if ((0 != m_errorEventQueue.size()) &&
- (m_errorEventQueue.end() != m_errorEventCurrentIter)) {
- // Completed logging by ErrorEvent
- switch (m_errorEventCurrentIter->m_errorEventResetType) {
- case eErrorEventResetTypeNone:
- switch (m_errorEventCurrentIter->m_eventType) {
- case eErrorEventTypeInterfaceunifiedEmmcLogs:
- case eErrorEventTypeUserInvokedClearLogs:
- if (eFrameworkunifiedStatusOK == m_errorEventResult) {
- if (PowerHalSetResetInfo(AGL_ERRLOG_COUNTER, 0)) {
- // Logging only.
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not reset AGL_ERRLOG_COUNTER");
- }
- }
- break;
- default:
- break;
- }
-
- if (eErrorEventTypeInterfaceunifiedEmmcLogs == m_errorEventCurrentIter->m_eventType) {
- HANDLE hSession = FrameworkunifiedMcOpenSender(f_hApp,
- m_errorEventCurrentIter->m_moduleQueueName.c_str());
-
- if (hSession == NULL) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else {
- if (eFrameworkunifiedStatusOK // LCOV_EXCL_BR_LINE 4: NSFW error case
- != FrameworkunifiedSendMsg(hSession,
- SS_SM_ERROR_EVENT_INTERFACEUNIFIED_EMMC_LOGS_RSPN,
- sizeof(m_errorEventResult),
- &m_errorEventResult)) {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- }
- if (eFrameworkunifiedStatusOK != FrameworkunifiedMcClose(hSession)) { // LCOV_EXCL_BR_LINE 4: NSFW error case
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- }
- }
- }
- m_errorEventQueue.erase(m_errorEventCurrentIter); // Erase last processed event.
- break;
- case eErrorEventResetTypeHard:
- TEXT(__FUNCTION__, "ERROR EVENT: Hard reset required for previously processed error event." // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- "Initiating reset and flushing logging queue."); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- if (eFrameworkunifiedStatusOK != m_errorEventResult) {
- // Logging at next launching by setting L to NaviDet if logging failed before rebooting
- fprintf(stderr,
- "SS_SysManager/%s:will NAVIDET as LOG save failed\n", __FUNCTION__);
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "will NAVIDET as LOG save failed");
- m_pfStopCompleteHandler = (SysMgrCallback<CSystemManager,
- &CSystemManager::perform_force_reset>);
- }
-
- if ((m_errorEventCurrentIter->m_loggingInfo.resetReason == e_SS_SM_CPU_RESET_REASON_CRITICAL_ERR) ||
- (m_errorEventCurrentIter->m_loggingInfo.resetReason == e_SS_SM_CPU_RESET_REASON_GENERIC_ERR) ||
- (m_errorEventCurrentIter->m_loggingInfo.resetReason == e_SS_SM_CPU_RESET_REASON_DSP_ERR) ||
- (m_errorEventCurrentIter->m_loggingInfo.resetReason == e_SS_SM_CPU_RESET_REASON_USER_FORCE_RESET)) {
- BOOL l_user_reset = FALSE;
- if (m_errorEventCurrentIter->m_loggingInfo.resetReason == e_SS_SM_CPU_RESET_REASON_USER_FORCE_RESET) {
- l_user_reset = TRUE;
- }
- m_ResetFactor = GetResetFactor(m_errorEventCurrentIter->m_moduleQueueName.c_str(), l_user_reset);
- }
-
- l_eStatus = PerformResetAfterLogging(f_hApp,
- m_errorEventCurrentIter->m_loggingInfo.resetReason,
- m_errorEventCurrentIter->m_loggingInfo.messageStr); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "PerformResetAfterLogging()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- break;
- // LCOV_EXCL_START 6:Can not satisfy condition to branch
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- default:
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. Unknown reset type encountered: 0x%X/%d. No action taken.",
- m_errorEventCurrentIter->m_errorEventResetType,
- m_errorEventCurrentIter->m_errorEventResetType);
- break;
- // LCOV_EXCL_STOP
- }
- }
-
- // Check if a new work item exists.
- if (0 != m_errorEventQueue.size()) {
- // ErrorEvent startup process
- m_errorEventCurrentIter = m_errorEventQueue.begin();
-
- l_errorEventNtfData.EventType = m_errorEventCurrentIter->m_eventType;
-
- if (eErrorEventResetTypeHard == m_errorEventCurrentIter->m_errorEventResetType) {
- l_errorEventNtfData.isNeedReboot = TRUE;
- } else {
- l_errorEventNtfData.isNeedReboot = FALSE;
- }
-
- // Check BufferSize
- size_t modl_len = sizeof(l_errorEventNtfData.ModuleName) - 1;
-
- // SS Logger uses the l_errorEventNtfData.ModuleName as the LOGGERSERVICE_EMMC_LOGS and
- // EEL_EXPORT destination path. eErrorEventTypeDiagEvent sends the destination path.
- // For all other event types, the binary name is sent to logger.
- // LCOV_EXCL_BR_START 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- if ((eErrorEventTypeInterfaceunifiedEmmcLogs
- == m_errorEventCurrentIter->m_eventType) ||
- (eErrorEventTypeEelExport
- == m_errorEventCurrentIter->m_eventType) ||
- (eErrorEventTypeDiagEvent
- == m_errorEventCurrentIter->m_eventType)) {
- // LCOV_EXCL_BR_STOP
- strncpy(l_errorEventNtfData.ModuleName,
- m_errorEventCurrentIter->m_loggingInfo.path.c_str(),
- sizeof(l_errorEventNtfData.ModuleName) - 1);
-
- size_t path_len = strlen(m_errorEventCurrentIter->m_loggingInfo.path.c_str());
- if (path_len > modl_len) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Input buffer size over. input : %ld, enable : %ld",
- path_len, modl_len);
- }
- l_errorEventNtfData.ModuleName[sizeof(l_errorEventNtfData.ModuleName) - 1] = 0;
- } else {
- strncpy(l_errorEventNtfData.ModuleName,
- m_errorEventCurrentIter->m_loggingInfo.suffixStr.c_str(),
- sizeof(l_errorEventNtfData.ModuleName) - 1);
- }
-
- // When the Reboot process is started during the execution of the LOG save sequence, an undefined value was set
- // in m_errorEventCurrentIter. Therefore, the Reboot start timing due to an error in SS_Loger was changed from
- // the time of ErrorEvent queuing to the time of dequeuing.
-
- // LCOV_EXCL_BR_START 6: Because the following conditions cannot be satisfied when called from an external API
- if ((SERVICE_LOGGER == m_errorEventCurrentIter->m_moduleQueueName)
- && ((eErrorEventTypeProcessCrash
- == m_errorEventCurrentIter->m_eventType)
- || (eErrorEventTypeProcessExit
- == m_errorEventCurrentIter->m_eventType)
- || (eErrorEventTypeHeartBeatFailure
- == m_errorEventCurrentIter->m_eventType)
- || (eErrorEventTypeModConnFailed
- == m_errorEventCurrentIter->m_eventType)
- || (eErrorEventTypeStartRespFailed
- == m_errorEventCurrentIter->m_eventType))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 6: Because the following conditions cannot be satisfied when called from an external API
- // Note: If logger crashes, a core file will exist.
- std::string l_hmiDispStr;
- l_hmiDispStr = SERVICE_LOGGER;
- if (eErrorEventResetTypeNone != m_errorEventCurrentIter->m_errorEventResetType) {
- l_hmiDispStr += " - Shutting down, check for core file.";
-
- // Since LOG save cannot be performed when an SSL error is detected, the LOG is saved at the next startup
- // by rebooting with NaviDet = L after completion of the process.
- fprintf(stderr, "SS_SysManager/%s:will NAVIDET as SSL dead\n", __FUNCTION__);
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "will NAVIDET as SSL dead");
- m_pfStopCompleteHandler = (SysMgrCallback<CSystemManager,
- &CSystemManager::perform_force_reset>);
-
- m_ResetFactor = GetResetFactor(SERVICE_LOGGER, FALSE);
-
- l_eStatus = PerformResetAfterLogging(f_hApp,
- e_SS_SM_CPU_RESET_REASON_GENERIC_ERR);
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, "PerformResetAfterLogging()");
- } else {
- l_hmiDispStr += " - Check for core file.";
- }
-
- SMErrorEventNtfData l_errorEventNtfData;
- l_errorEventNtfData.EventType = m_errorEventCurrentIter->m_eventType;
- l_errorEventNtfData.isNeedReboot = FALSE;
- snprintf(l_errorEventNtfData.ModuleName,
- sizeof(l_errorEventNtfData.ModuleName), "%s",
- l_hmiDispStr.c_str());
-
- l_eStatus = FrameworkunifiedPublishEvent(f_hApp, // Show indication on HMI.
- SS_SM_EVENT_ERROR,
- NULL, &l_errorEventNtfData, sizeof(l_errorEventNtfData));
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus,
- "FrameworkunifiedPublishEvent(SS_SM_EVENT_ERROR)");
- } else if (m_errorEventCurrentIter->m_eventType == eErrorEventTypeModuleInvokedResetRequest
- && (m_errorEventCurrentIter->m_loggingInfo.resetReason == e_SS_SM_CPU_RESET_REASON_NORMAL
- || m_errorEventCurrentIter->m_loggingInfo.resetReason == e_SS_SM_CPU_RESET_REASON_DATA_RESET)) {
- l_eStatus = PerformResetAfterLogging(f_hApp,
- m_errorEventCurrentIter->m_loggingInfo.resetReason,
- m_errorEventCurrentIter->m_loggingInfo.messageStr); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, "PerformResetAfterLogging()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- } else {
- BOOL bIsNeedLogging = TRUE;
-
- {
- UI_32 l_ErrLogCount = 0;
- if (PowerHalGetResetInfo(AGL_ERRLOG_COUNTER, &l_ErrLogCount)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not get AGL_ERRLOG_COUNTER form power_hal, assume to 0.");
- l_ErrLogCount = 0;
- }
-
- {
- if ((l_ErrLogCount >= SS_SM_ERR_LOGGING_LIMIT)
- && (eErrorEventResetTypeHard == m_errorEventCurrentIter->m_errorEventResetType)) {
- fprintf(stderr, "SS_SysManager/%s:Skip Logging by continuous error \n", __FUNCTION__);
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Skip Logging by continuous error ");
-
- m_ResetFactor = PSM_FACTOR_AGL_WITH_HISTORY;
-
- l_eStatus =
- PerformResetAfterLogging(f_hApp,
- m_errorEventCurrentIter->m_loggingInfo.resetReason,
- m_errorEventCurrentIter->m_loggingInfo.messageStr);
- LOG_STATUS_REC_HIST_IF_ERRORED(l_eStatus, "PerformResetAfterLogging()");
- bIsNeedLogging = FALSE;
- } else if (eErrorEventResetTypeHard
- == m_errorEventCurrentIter->m_errorEventResetType) {
- l_ErrLogCount++;
- if (PowerHalSetResetInfo(AGL_ERRLOG_COUNTER, l_ErrLogCount)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- "Could not set AGL_ERRLOG_COUNTER to power_hal.");
- }
- }
- }
- }
-
- if (bIsNeedLogging) {
- m_isPrevErrEventCompleted = FALSE;
- m_errorEventResult = eFrameworkunifiedStatusOK;
- BOOL result =
- m_errorEventTimers[eSM_ERROR_EVENT_TIMER_LOGGER_START_REQ].Start(
- SS_ERROR_EVENT_START_REQ_TO_SEC, 0, 0, 0);
- if (FALSE == result) { // LCOV_EXCL_BR_LINE 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- // LCOV_EXCL_START 6: Because the applicable variable cannot be changed from the external API (only evaluated by the initial value)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. Failed to start timer eSM_ERROR_EVENT_TIMER_LOGGER_START_REQ.");
- // LCOV_EXCL_STOP
- }
-
- l_eStatus = FrameworkunifiedPublishEvent(f_hApp,
- SS_SM_EVENT_ERROR_TO_SSL,
- NULL, &l_errorEventNtfData,
- sizeof(l_errorEventNtfData));
-
- if (l_eStatus != eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 4: NSFW error case.
- // LCOV_EXCL_START 4: NSFW error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " FrameworkunifiedPublishEvent(SS_SM_EVENT_ERROR_TO_SSL, "
- "module name (optional): '%s', "
- "event type: %d) returned '%d'/'%s'",
- l_errorEventNtfData.ModuleName,
- l_errorEventNtfData.EventType, l_eStatus,
- GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP 4: NSFW error case.
- }
- }
- }
- }
-
- // If Reboot has been started up to this point, m_errorEventQueue is cleared and checking is performed at the end because m_errorEventQueue is cleared.
- if (0 == m_errorEventQueue.size()) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Info. Error Event queue empty. Error logging complete.");
- m_errorEventCurrentIter = m_errorEventQueue.end(); // Invalidate iterator in case of spurious events.
- SendDeferMsg(f_hApp);
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnLoggingStartRequestFromSL
-/// This function gets called when System Logger initiates artifact
-/// collection for a trigger source that originates within System
-/// Logger or as a result of System Manager raising a logging
-/// event notification to System Logger.
-///
-/// \param [in] hApp
-/// HANDLE - Handle of the Client Application
-///
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnLoggingStartRequest(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- ModuleLaunchListIter l_ModuleListIter;
- HANDLE l_hLoggerServiceSession;
- EErrorEventType l_eventType;
- SMErrorEventNtfData l_errorEventNtfData;
-
- m_errorEventTimers[eSM_ERROR_EVENT_TIMER_LOGGER_START_REQ].Stop();
-
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp);
-
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = ReadMsg < EErrorEventType > (f_hApp, l_eventType))) {
- LOG_ERROR("ReadMsg()");
- } else {
- if (0 == m_errorEventQueue.size()) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. Logging start request received for event type: %d/'%s', "
- "but the logging queue is empty.!", l_eventType,
- GetStr(l_eventType).c_str());
- l_eStatus = eFrameworkunifiedStatusFail;
- } else if (m_errorEventCurrentIter == m_errorEventQueue.end()) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. Logging start request received for event type: %d/'%s', "
- "but the current event iterator is invalid.",
- l_eventType, GetStr(l_eventType).c_str());
- l_eStatus = eFrameworkunifiedStatusFail;
- } else if (m_errorEventCurrentIter->m_eventType != l_eventType) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. Logging start request received for event type: %d/'%s', "
- "but current work item is for event type: %d/'%s'.",
- l_eventType, GetStr(l_eventType).c_str(),
- m_errorEventCurrentIter->m_eventType,
- GetStr(m_errorEventCurrentIter->m_eventType).c_str());
- l_eStatus = eFrameworkunifiedStatusFail;
- } else {
- l_errorEventNtfData.EventType = l_eventType;
- l_errorEventNtfData.isNeedReboot = FALSE;
-
- // For boot micro reset, customize the string as per the reset reason.
- if (l_eventType == eErrorEventTypeBootMicroReset) {
- switch (m_BootMicroResetReason) {
- case SS_SM_BOOT_MICRO_RESET_REASON_SELF_RESET:
- (void) snprintf(l_errorEventNtfData.ModuleName,
- sizeof(l_errorEventNtfData.ModuleName),
- "Boot Micro Reset. Reason: %d, Self Reset",
- m_BootMicroResetReason);
- break;
-
- case SS_SM_BOOT_MICRO_RESET_REASON_USER_FORCE_RESET: // User Force Reset timeout.
- (void) snprintf(l_errorEventNtfData.ModuleName,
- sizeof(l_errorEventNtfData.ModuleName),
- "Boot Micro Reset. Reason: %d, UFR Timeout",
- m_BootMicroResetReason);
- break;
-
- case SS_SM_BOOT_MICRO_RESET_REASON_DSP_RESET:
- (void) snprintf(l_errorEventNtfData.ModuleName,
- sizeof(l_errorEventNtfData.ModuleName),
- "Boot Micro Reset. Reason: %d, DSP Reset",
- m_BootMicroResetReason);
- break;
-
- case SS_SM_BOOT_MICRO_RESET_REASON_HB_TIMEOUT:
- (void) snprintf(l_errorEventNtfData.ModuleName,
- sizeof(l_errorEventNtfData.ModuleName),
- "Boot Micro Reset. Reason: %d, HB Timeout",
- m_BootMicroResetReason);
- break;
-
- default:
- (void) snprintf(l_errorEventNtfData.ModuleName,
- sizeof(l_errorEventNtfData.ModuleName),
- "Boot Micro Reset. Reason: %d, Unknown",
- m_BootMicroResetReason);
- break;
- }
- } else {
- // All other error event types format =
- // Binary Name <circumstantial> PID: TID: Additional info: </circumstantial>
- std::string l_hmiDispStr = ErrorEventCreateHmiDisplayString();
-
- (void) snprintf(l_errorEventNtfData.ModuleName,
- sizeof(l_errorEventNtfData.ModuleName), "%s",
- l_hmiDispStr.c_str());
- }
-
- l_eStatus = FrameworkunifiedPublishEvent(f_hApp, SS_SM_EVENT_ERROR, // To HMI
- NULL, &l_errorEventNtfData, sizeof(l_errorEventNtfData));
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus,
- "FrameworkunifiedPublishEvent(SS_SM_EVENT_ERROR)");
- }
-
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = GetModuleIterator(SERVICE_LOGGER, l_ModuleListIter))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: GetModuleIterator(%s) errored: %d/'%s'",
- SERVICE_LOGGER, l_eStatus, GetStr(l_eStatus).c_str());
- } else {
- l_hLoggerServiceSession = l_ModuleListIter->hsession;
-
- l_eStatus = FrameworkunifiedSendMsg(l_hLoggerServiceSession,
- SS_SM_ERROR_EVENT_LOGGING_START_RSPN, 0, NULL);
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus,
- "FrameworkunifiedSendMsg(SS_SM_ERROR_EVENT_LOGGING_START_RSPN)");
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnErrorEventLoggerStartRequestTimeout
-///
-/// \brief This function is called if System Logger fails to respond in a
-/// timely fashion to the published logger start request event
-/// SS_SM_EVENT_ERROR_TO_SSL. See OnLoggingStartRequest() which
-/// is the expected path should the timer period NOT expire.
-///
-/// \param [in] hApp
-/// HANDLE - Handle of the Client Application
-///
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnErrorEventLoggerStartRequestTimeout(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- SMErrorEventNtfData l_errorEventNtfData;
-
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. Logger failed to respond to message SS_SM_EVENT_ERROR_TO_SSL in a timely fashion. Logging aborted.");
-
- // Publish to HMI even if the error event will not be processed.
- // In this way, developers can be made aware of the error condition
- // and determine why logging did not proceed as expected.
- if (m_errorEventCurrentIter != m_errorEventQueue.end()) {
- l_errorEventNtfData.EventType = m_errorEventCurrentIter->m_eventType;
- l_errorEventNtfData.isNeedReboot = FALSE;
-
- std::string l_hmiDispStr = ErrorEventCreateHmiDisplayString();
- snprintf(l_errorEventNtfData.ModuleName,
- sizeof(l_errorEventNtfData.ModuleName), "%s.", l_hmiDispStr.c_str());
-
- l_eStatus = FrameworkunifiedPublishEvent(f_hApp, SS_SM_EVENT_ERROR, // To HMI
- NULL, &l_errorEventNtfData, sizeof(l_errorEventNtfData)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "FrameworkunifiedPublishEvent(SS_SM_EVENT_ERROR)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- m_isPrevErrEventCompleted = TRUE;
- m_errorEventResult = eFrameworkunifiedStatusFail;
- l_eStatus = ErrorEventProcessNext(f_hApp);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "ErrorEventProcessNext()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-EFrameworkunifiedStatus CSystemManager::OnErrorEventLoggingComplete(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- HANDLE l_hLoggerServiceSession;
- ModuleLaunchListIter l_ModuleListIter;
-
- // If logger does not send a logging start and instead immediately
- // sends a logging complete response, then the start timer must be
- // stopped to prevent a start response timeout from occuring.
- m_errorEventTimers[eSM_ERROR_EVENT_TIMER_LOGGER_START_REQ].Stop();
-
- m_errorEventResult = eFrameworkunifiedStatusFail;
- if (sizeof(m_errorEventResult) != FrameworkunifiedGetMsgLength(f_hApp)) {
- LOG_ERROR("DataSize mismatch");
- } else if (eFrameworkunifiedStatusOK
- != (l_eStatus = FrameworkunifiedGetMsgDataOfSize(f_hApp, &m_errorEventResult,
- sizeof(m_errorEventResult), eSMRRelease))) {
- LOG_ERROR("FrameworkunifiedGetMsgDataOfSize()");
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "m_errorEventResult = %d", m_errorEventResult);
- }
- m_isPrevErrEventCompleted = TRUE;
-
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = GetModuleIterator(SERVICE_LOGGER, l_ModuleListIter))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: GetModuleIterator(%s) errored: %d/'%s'",
- SERVICE_LOGGER, l_eStatus, GetStr(l_eStatus).c_str());
- } else {
- l_hLoggerServiceSession = l_ModuleListIter->hsession;
-
- l_eStatus = FrameworkunifiedSendMsg(l_hLoggerServiceSession,
- SS_SM_ERROR_EVENT_LOGGING_COMPLETE_RSPN, 0, NULL);
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus,
- "FrameworkunifiedSendMsg(SS_SM_ERROR_EVENT_LOGGING_START_RSPN)");
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, " Info. Done processing error event %s.",
- GetStr(m_errorEventCurrentIter->m_eventType).c_str());
-
- l_eStatus = ErrorEventProcessNext(f_hApp);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "ErrorEventProcessNext()");
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup ActOnModuleFailure
-/// This function is called to take appropriate action of the failure
-/// reported by heart beat or crash detector. Attributes set in
-/// Launch configuration file are considered while taking action
-/// on the failed module.
-///
-/// \param f_hApp AGL FW application handle.
-/// f_moduleName Failed module name.
-/// f_refSoftResetRequired Return parameter indicating if a
-/// soft reset will be required.
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-const CHAR RestartModule[] = "me";
-
-EFrameworkunifiedStatus CSystemManager::ActOnModuleFailure(HANDLE f_hApp,
- SS_String f_moduleName, BOOL &f_refResetRequired) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- ModuleLaunchListIter l_ModuleListIter;
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- ESMPLThreadCommandIds l_PLCmd = ePLThrdCmd_NONE;
- SS_String l_PLCmdStr = "";
-
- f_refResetRequired = FALSE;
-
- l_eStatus = GetModuleIterator(f_moduleName.c_str(), l_ModuleListIter);
- if (l_eStatus != eFrameworkunifiedStatusOK) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Module %s not found in Group Launch Map", f_moduleName.c_str());
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (eFrameworkunifiedStatusDbRecNotFound);
- }
-
- // LCOV_EXCL_BR_START 6: Because the condition cannot be set
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = RemoveModuleEntryFromHB(f_hApp,
- l_ModuleListIter->name.c_str()))) {
- // LCOV_EXCL_BR_STOP
- // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: RemoveModuleEntryFromHB(%s) errored: %d/'%s'",
- l_ModuleListIter->name.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- }
-
- if (TRUE == l_ModuleListIter->critical
- && (l_ModuleListIter->relaunch_count >= l_ModuleListIter->retry_cnt)) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Critical module '%s' re-launch counter exceeded limit (%d).",
- l_ModuleListIter->name.c_str(), l_ModuleListIter->retry_cnt);
-
- l_ModuleListIter->SetModuleState(MODULE_STATE_SKIPPED);
-
- // Module has crossed re-launched limit and is not going to be re-launched.
- // It must however still be terminated.
- l_PLCmd = ePLThrdCmd_TERMINATE_MODULE_REQST;
- l_PLCmdStr = "ePLThrdCmd_TERMINATE_MODULE_REQST";
-
- // Module is critical. Restart system.
- f_refResetRequired = TRUE;
- // Restart required?
- } else if (0 == std::strcmp(l_ModuleListIter->restart.c_str(), RestartModule)) { // LCOV_EXCL_BR_LINE 6: Because the condition cannot be set // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "Module: %s, relaunch_count: %d",
- l_ModuleListIter->name.c_str(),
- l_ModuleListIter->relaunch_count);
-
- if (l_ModuleListIter->relaunch_count < l_ModuleListIter->retry_cnt) {
- SS_String l_ModulePath = (m_BinaryFilesPath + l_ModuleListIter->path);
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__,
- " Requesting ReLaunch of '%s' '%s'",
- l_ModuleListIter->name.c_str(), l_ModulePath.c_str());
-
- l_PLCmd = ePLThrdCmd_RELAUNCH_MODULE_REQST;
- l_PLCmdStr = "ePLThrdCmd_RELAUNCH_MODULE_REQST";
- l_ModuleListIter->relaunch_count++;
- l_ModuleListIter->relaunch_status = RelaunchErr;
- } else if ((FALSE == l_ModuleListIter->critical)
- && (l_ModuleListIter->relaunch_count
- >= l_ModuleListIter->retry_cnt)) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning: Skipping re-launch of non-critical %s module, "
- "re-launch counter exceeded limit(%d). Terminating module.",
- l_ModuleListIter->name.c_str(),
- l_ModuleListIter->retry_cnt);
-
- l_ModuleListIter->SetModuleState(MODULE_STATE_SKIPPED);
-
- // non critical module has crossed re-launched limit and is not going to be re-launched.
- // We must terminate the module in the event that it has become non responsive.
- l_PLCmd = ePLThrdCmd_TERMINATE_MODULE_REQST;
- l_PLCmdStr = "ePLThrdCmd_TERMINATE_MODULE_REQST";
- }
- // LCOV_EXCL_STOP
- } else { // LCOV_EXCL_BR_LINE 6: Because the condition cannot be set
- // LCOV_EXCL_START 6: Because the condition cannot be set
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning: %s is not required to be re-launched, "
- "skipping re-launch and terminating module.",
- l_ModuleListIter->name.c_str());
-
- l_ModuleListIter->SetModuleState(MODULE_STATE_SKIPPED);
-
- // Module restart not required.
- // We must terminate the module in the event that it has become non responsive.
- l_PLCmd = ePLThrdCmd_TERMINATE_MODULE_REQST;
- l_PLCmdStr = "ePLThrdCmd_TERMINATE_MODULE_REQST";
- // LCOV_EXCL_STOP
- }
-
-
- if (ePLThrdCmd_NONE != l_PLCmd) {
- l_eStatus = SendRequestToLauncher(f_hApp, l_ModuleListIter, l_PLCmd, l_PLCmdStr); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "SendRequestToLauncher()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup ErrorEventCreateHmiDisplayString
-///
-/// \brief Create error event HMI colored square display string.
-///
-/// \return Error Display String.
-///////////////////////////////////////////////////////////////////////////////
-std::string CSystemManager::ErrorEventCreateHmiDisplayString(void) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- std::stringstream l_displayNamess; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- std::stringstream l_pidss; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- std::stringstream l_hmiDispStr; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (0 != strncmp("",
- m_errorEventCurrentIter->m_loggingInfo.binaryFileName,
- sizeof(m_errorEventCurrentIter->m_loggingInfo.binaryFileName))) {
- l_displayNamess << m_errorEventCurrentIter->m_loggingInfo.binaryFileName; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- } else {
- l_displayNamess << m_errorEventCurrentIter->m_moduleQueueName;
- }
-
- if (m_errorEventCurrentIter->m_loggingInfo.pid != 0) {
- l_pidss << " PID: " << m_errorEventCurrentIter->m_loggingInfo.pid;
- }
-
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_hmiDispStr.str());
-} // LCOV_EXCL_BR_LINE 10:The final line
-
diff --git a/systemservice/system_manager/server/src/ss_system_manager_error_event_responses.cpp b/systemservice/system_manager/server/src/ss_system_manager_error_event_responses.cpp
deleted file mode 100755
index 28e8dbf..0000000
--- a/systemservice/system_manager/server/src/ss_system_manager_error_event_responses.cpp
+++ /dev/null
@@ -1,1007 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup SS_SM_Logging
-/// \brief This file supports SM logging.
-///
-///////////////////////////////////////////////////////////////////////////////
-#include <native_service/frameworkunified_types.h>
-#include <native_service/ns_plogger_if.h>
-#include <stub/ss_diag.h>
-#include <system_service/ss_ver.h>
-#include <system_service/ss_services.h>
-#include <system_service/ss_templates.h>
-#include <system_service/ss_client_names.h>
-#include <system_service/ss_sm_client_if.h>
-
-#include <stdint.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/statvfs.h>
-#include <fcntl.h>
-#include <dirent.h>
-#include <errno.h>
-#include <sys/wait.h>
-#include <boost/algorithm/string.hpp>
-#include <fstream>
-#include <iostream>
-#include <iomanip>
-#include <string>
-#include <list>
-
-#include "ss_system_manager.h"
-
-///////////////////////////////////////////////////////////////////////////
-// Function : OnObtainLoggerserviceLogRequest
-// brief : Collect frameworkunifiedlog artifact and return a response to
-// SS_Logger.
-///////////////////////////////////////////////////////////////////////////
-static int getExecedString(char* const argv[], std::stringstream &ss) {
- int ret;
- int pipeFd[2]; // 0:read, 1:write
- pid_t pid;
- ret = pipe(pipeFd);
- if (ret != 0) { // LCOV_EXCL_BR_LINE 5:pipe's error case
- // LCOV_EXCL_START 5:pipe's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- SS_ASERT_ERRNO(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- goto error_exit;
- // LCOV_EXCL_STOP
- }
-
- pid = fork();
- if (pid == -1) { // LCOV_EXCL_BR_LINE 5:fork's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- SS_ASERT_ERRNO(0); // LCOV_EXCL_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else if (pid == 0) {
- close(pipeFd[0]); // unnecessary pile (closing read)
- close(1); // closing stdout
- dup2(pipeFd[1], 1); // take stdout to pipe
- execve(argv[0], argv, environ);
- SS_ASERT_ERRNO(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- exit(EXIT_FAILURE);
- } else {
- char readBuf[256];
- ssize_t rs;
- SS_ASERT_ERRNO(0 == close(pipeFd[1])); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- fd_set rfds;
- FD_ZERO(&rfds); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- FD_SET(pipeFd[0], &rfds); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- struct timeval timeout;
- timeout.tv_sec = 2;
- timeout.tv_usec = 0;
-
- int selRet = select(pipeFd[0] + 1, &rfds, NULL, NULL, &timeout);
- switch (selRet) {
- case 1:
- if (FD_ISSET(pipeFd[0], &rfds)) {
- do {
- rs = read(pipeFd[0], readBuf, sizeof(readBuf) - 1);
- if (rs > 0) {
- readBuf[rs] = '\0';
- ss << readBuf;
- } else if (rs == -1) { // LCOV_EXCL_BR_LINE 5:read's error case
- // LCOV_EXCL_START 5:read's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- if (errno != EINTR) {
- SS_ASERT_ERRNO(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- ret = -1;
- break;
- }
- // LCOV_EXCL_STOP
- }
- } while (rs != 0);
- } else {
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- break;
- case -1:
- SS_ASERT_ERRNO(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- break;
- default:
- // LCOV_EXCL_START 5:never be this case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- if (0 == selRet) {
- ss << "timeout" << std::endl;
- } else {
- ss << "ERR:rslt=" << selRet << std::endl;
- }
- break;
- // LCOV_EXCL_STOP
- }
-
- // SM leaves processing to OnProcessExitDetected when using child process
- // SS_ASERT_ERRNO(-1 != waitpid(pid,&status,0));
- }
- SS_ASERT_ERRNO(0 == close(pipeFd[0])); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-error_exit:
- return ret;
-}
-
-static int saveProcsMemInfo(std::ofstream &fo) {
- DIR *dir = NULL;
- int ret = 0;
-
- try {
- struct dirent dent, *next;
- // LCOV_EXCL_BR_START 11:unexpected branch // NOLINT(whitespace/line_length)
- {
- fo << "******** mem info **********" << std::endl;
- std::ifstream fin("/proc/meminfo");
- std::string line;
- while (fin && std::getline(fin, line)) {
- fo << line << endl;
- }
- }
-
- {
- fo << "******** slab info **********" << std::endl;
- std::ifstream fin("/proc/slabinfo");
- std::string line;
- while (fin && std::getline(fin, line)) {
- fo << line << endl;
- }
- }
-
- {
- fo << "******** zone info **********" << std::endl;
- std::ifstream fin("/proc/zoneinfo");
- std::string line;
- while (fin && std::getline(fin, line)) {
- fo << line << endl;
- }
- }
- // LCOV_EXCL_BR_STOP
-
- // Linux dependency codes
- dir = opendir("/proc"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (dir == NULL) { // LCOV_EXCL_BR_LINE 5:opendir's error case
- // LCOV_EXCL_START 11:opendir's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- SS_ASERT_ERRNO(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- throw eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- fo << "******** proc status **********" << std::endl;
- while (0 == readdir_r(dir, &dent, &next) && next) {
- if (DT_DIR == dent.d_type) {
- struct stat statbuf;
- std::string statPath("/proc/"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- statPath += dent.d_name;
- statPath += "/status";
-
- if (stat(statPath.c_str(), &statbuf) == 0) {
- std::ifstream fin(statPath.c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- std::string line;
- while (fin && std::getline(fin, line)) {
- if (strstr(line.c_str(), "Name") != NULL
- || strstr(line.c_str(), "Pid") != NULL
- || strstr(line.c_str(), "Vm") != NULL) {
- fo << line << endl;
- }
- }
- fo << "************************************" << std::endl;
- }
- }
- }
- SS_ASERT_ERRNO(0 == closedir(dir)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } catch (...) {
- if (dir) { // LCOV_EXCL_BR_LINE 5:opendir's error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- SS_ASERT_ERRNO(0 == closedir(dir)); // LCOV_EXCL_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- ret = -1;
- }
- return ret;
-}
-
-///////////////////////////////////////////////////////////////////////////
-// Function : OnObtainLoggerserviceLogRequest
-// brief : Collect frameworkunifiedlog artifact and return a response to
-// SS_Logger.
-///////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::SendLogArtifactResponseToLogger(HANDLE f_hApp,
- EArtifactId f_artifactId, std::string f_artifactFilePathAndName) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- HANDLE l_hLoggerServiceSession;
- ModuleLaunchListIter l_ModuleListIter;
- ARTIFACT_RESPONSE l_artifactResponse;
-
- l_artifactResponse.ArtifactId = f_artifactId;
-
- strncpy(l_artifactResponse.FilePathAndName,
- f_artifactFilePathAndName.c_str(),
- sizeof(l_artifactResponse.FilePathAndName) - 1);
-
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = GetModuleIterator(SERVICE_LOGGER, l_ModuleListIter))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: GetModuleIterator(%s) errored: %d/'%s'",
- SERVICE_LOGGER, l_eStatus, GetStr(l_eStatus).c_str());
- } else {
- l_hLoggerServiceSession = l_ModuleListIter->hsession;
-
- l_eStatus = FrameworkunifiedSendMsg(l_hLoggerServiceSession,
- SS_SM_ERROR_EVENT_ARTIFACT_RSPN, sizeof(l_artifactResponse),
- &l_artifactResponse);
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "FrameworkunifiedSendMsg(SS_SM_ERROR_EVENT_ARTIFACT_RSPN)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnErrorEventArtifactRequest
-/// Dispatch logging requests to the various handlers.
-///
-/// \param f_hApp Framework application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnErrorEventArtifactRequest(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = ReadMsg < EArtifactId
- > (hApp, m_requestedArtifactId))) { // LCOV_EXCL_BR_LINE 200:NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- switch (m_requestedArtifactId) {
- case eArtifactIdBootMicroLog:
- l_eStatus = OnObtainBootMicroLog(hApp);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "OnObtainBootMicroLog()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- break;
-
- case eArtifactIdSystemDataCsv:
- l_eStatus = OnObtainSystemmanagerSystemDataCsv(hApp);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "OnObtainSystemmanagerSystemDataCsv()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- break;
-
- case eArtifactIdShowMemTxt:
- l_eStatus = OnObtainShowMemTxt(hApp);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "OnObtainShowMemTxt()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- break;
-
- case eArtifactIdProcessCore:
- SS_ASERT(0); // Never called in Linux PF // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- break;
-
- case eArtifactIdDebugDumpLog:
- l_eStatus = OnObtainDebugDumpLog(hApp);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "OnObtainDebugDumpLog()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- break;
-
- default:
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Unsupported logging artifact requested: %d.",
- m_requestedArtifactId);
- break;
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnObtainBootMicroLog
-/// Obtain the boot micro log content, write file to disk, and send filename to SL.
-///
-/// \param [in] f_hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnObtainBootMicroLog(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(f_hApp));
-
- l_eStatus = RequestBootMicroLog(f_hApp);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "RequestBootMicroLog"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnBootMicroLogResponse
-/// Boot micro log response sent from the logging shadow.
-///
-/// \param [in] f_hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnBootMicroLogResponse(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- UI_32 l_len;
- std::string l_artifactFilePathAndName;
-
- m_errorEventTimers[eSM_ERROR_EVENT_TIMER_BOOT_MICRO_LOG_RSPN].Stop(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "from %s", FrameworkunifiedGetMsgSrc(f_hApp));
-
- if (0 == strcmp(TIMER_SERVICE_NAME, FrameworkunifiedGetMsgSrc(f_hApp))) {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Info. Timer expired while waiting for the boot micro log.");
- } else if (0 == (l_len = FrameworkunifiedGetMsgLength(f_hApp))) { // LCOV_EXCL_BR_LINE 200:restricted by ss_sm_client
- // LCOV_EXCL_START 200:restricted by ss_sm_client
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Invalid log response received. Length cannot be 0.");
- // LCOV_EXCL_STOP
- } else {
- char l_buf[l_len]; // NOLINT
- l_eStatus = FrameworkunifiedGetMsgDataOfSize(f_hApp, l_buf, static_cast<UI_32>(sizeof(l_buf)), eSMRRelease); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 200:NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- LOG_ERROR("FrameworkunifiedGetMsgDataOfSize()"); // LCOV_EXCL_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- l_artifactFilePathAndName = "/tmp/bootmicro.log";
- l_len = static_cast<UI_32>(strlen((const char *) l_buf));
- std::ofstream l_stream(l_artifactFilePathAndName.c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream.write(l_buf, l_len); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream.close(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
- }
-
- l_eStatus = SendLogArtifactResponseToLogger(f_hApp, m_requestedArtifactId,
- l_artifactFilePathAndName); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (l_eStatus != eFrameworkunifiedStatusOK) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: SendLogArtifactResponseToLogger(Artifact '%d', '%s') "
- "errored: %d/'%s'", m_requestedArtifactId,
- l_artifactFilePathAndName.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- }
-
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnErrorEventBootMicroLogResponseTimeout
-/// Called when the boot micro log request timer expires (e.g. no response).
-///
-/// \param [in] f_hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnErrorEventBootMicroLogResponseTimeout(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- std::string l_artifactFilePathAndName = "";
-
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Boot micro log response timed out. Sending empty artifact response to SSL.");
-
- l_eStatus = SendLogArtifactResponseToLogger(f_hApp, m_requestedArtifactId,
- l_artifactFilePathAndName); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (l_eStatus != eFrameworkunifiedStatusOK) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: SendLogArtifactResponseToLogger(Artifact '%d', '%s') "
- "errored: %d/'%s'", m_requestedArtifactId,
- l_artifactFilePathAndName.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnObtainSystemmanagerSystemDataCsv
-/// Obtain system content, write file to disk, and send filename to SL.
-///
-/// \param [in] f_hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnObtainSystemmanagerSystemDataCsv(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- // std::string l_artifactFilePathAndName = "/tmp/frameworkunified_systemdata.csv";
- // std::ofstream l_stream(l_artifactFilePathAndName.c_str());
- std::stringstream l_stream;
- char *l_pSignalName;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- // Output version info
- {
- // LCOV_EXCL_BR_START 11:unexpected branch // NOLINT(whitespace/line_length)
- CSSVer ver;
- l_stream << "********** PACKAGE VERSIONS **********\n";
- l_stream << left;
- l_stream << setw(16) << "PACKAGE" << setw(24) << "VERSION" << setw(10)
- << "DATE" << endl;
- for (SSVerPkgListIter ite = ver.begin(); ite != ver.end(); ite++) {
- l_stream << setw(16) << ite->first;
- l_stream << setw(24) << ite->second.version;
- l_stream << setw(10) << ite->second.date << std::endl;
- }
- // LCOV_EXCL_BR_STOP
- FRAMEWORKUNIFIEDLOG(ZONE_SYSLOG, __FUNCTION__, "\n%s", l_stream.str().c_str());
- l_stream.str(""); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream.clear(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- // LCOV_EXCL_BR_START 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream << "********** Error Description Start ***********" << endl;
- l_stream << "Error Event Type,"
- << GetStr(m_errorEventCurrentIter->m_eventType) << endl;
- l_stream << m_errorEventCurrentIter->m_eventEnqueueTimeStamp.c_str() << endl;
- l_stream << "MessageStr,"
- << m_errorEventCurrentIter->m_loggingInfo.messageStr.c_str() << endl;
- // LCOV_EXCL_BR_STOP
-
- {
- UI_32 l_ErrLogCount = 0;
- if (PowerHalGetResetInfo(AGL_ERRLOG_COUNTER, &l_ErrLogCount)) { // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- FRAMEWORKUNIFIEDLOG(ZONE_SYSLOG, __FUNCTION__,
- "Could not get AGL_ERRLOG_COUNTER from power_hal.");
- }
-
- {
- l_stream << "ErrLogCount," << l_ErrLogCount << "/"
- << SS_SM_ERR_LOGGING_LIMIT << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
- }
-
- switch (m_errorEventCurrentIter->m_eventType) {
- case eErrorEventTypeProcessCrash:
- l_stream << "Crash Failure Binary Name,"
- << m_errorEventCurrentIter->m_loggingInfo.binaryFileName << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream << "Module PID," << m_errorEventCurrentIter->m_loggingInfo.pid << endl;
- l_stream << "Exit Value,"
- << m_errorEventCurrentIter->m_loggingInfo.exitValue << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_pSignalName = strsignal(
- m_errorEventCurrentIter->m_loggingInfo.signalNumber);
- if (NULL != l_pSignalName) {
- l_stream << "Exit Signal,"
- << m_errorEventCurrentIter->m_loggingInfo.signalNumber // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- << "," << l_pSignalName << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- break;
-
- case eErrorEventTypeProcessExit:
- l_stream << "Exit Binary Name,"
- << m_errorEventCurrentIter->m_loggingInfo.binaryFileName << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream << "Module PID," << m_errorEventCurrentIter->m_loggingInfo.pid << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream << "Exit Value,"
- << m_errorEventCurrentIter->m_loggingInfo.exitValue << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- break;
-
- case eErrorEventTypeHeartBeatFailure:
- l_stream << "HB Failure Module Queue Name,"
- << m_errorEventCurrentIter->m_moduleQueueName.c_str() << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream << "***************** HB Information Start *******************" << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream << "Entire State," << m_HBReport.eEntireState << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream << "Module Name,HB State,Retry Count" << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- for (UI_32 i = 0; i < m_HBReport.nNumOfModules; i++) {
- if (0 != m_HBReport.tModuleList[i].HeartBeatRetryCount) {
- l_stream << m_HBReport.tModuleList[i].ProcQueueName << "," // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- << m_HBReport.tModuleList[i].ProcHBState << "," // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- << m_HBReport.tModuleList[i].HeartBeatRetryCount // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
- }
- l_stream << "***************** HB Information End *******************" << endl;
- break;
-
- case eErrorEventTypeSystemLowMemory:
- l_stream << "Free Memory Available (Byte)," << m_FreeMemAvailable << endl;
- break;
-
- case eErrorEventTypeBootMicroReset:
- l_stream << "Boot Micro Reset Reason," << m_BootMicroResetReason << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- break;
-
- case eErrorEventTypeModConnFailed:
- l_stream << "Failed Module Queue Name,"
- << m_errorEventCurrentIter->m_moduleQueueName.c_str() << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- break;
-
- case eErrorEventTypeStartRespFailed:
- l_stream << "Failed Module Queue Name,"
- << m_errorEventCurrentIter->m_moduleQueueName.c_str() << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- break;
-
- // No additional event specific log information to add.
- case eErrorEventTypeUserInvokedCollectAllLogs:
- case eErrorEventTypeUserInvokedCollectScreenShot:
- case eErrorEventTypeUserInvokedCollectInterfaceunifiedLogs:
- case eErrorEventTypeUserInvokedUserForceReset:
- case eErrorEventTypeUserInvokedCollectDevLogs:
- default:
- break;
- }
-
- {
- std::ifstream finNum("/proc/sys/vm/nr_oom_kill_process");
- std::string strNum;
- if (finNum && std::getline(finNum, strNum)) { // LCOV_EXCL_BR_LINE 200:will not be this case
- // LCOV_EXCL_START 200:will not be this case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- char *endptr = NULL;
- long lNum = strtol(strNum.c_str(), &endptr, 10); // NOLINT
- if (('\0' != *endptr) || (lNum < 0)) {
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- l_stream << "nr_oom_kill_process," << strNum.c_str() << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (0 != lNum) {
- std::ifstream finLast("/proc/sys/vm/last_oom_kill_victim"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- std::string strLast;
- if (finLast && std::getline(finLast, strLast)) {
- l_stream << "last_oom_kill_victim," << strLast.c_str() << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
- }
- }
- }
- // LCOV_EXCL_STOP
- }
-
- l_stream << "********** Error Description End ***********" << endl << endl;
- FRAMEWORKUNIFIEDLOG(ZONE_SYSLOG, __FUNCTION__, "\n%s", l_stream.str().c_str());
-
- fprintf(stderr, "SS_SysManager/\n%s", l_stream.str().c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_stream.str(""); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream.clear(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_stream << "********** Variant Code Start ***********" << endl;
- if (NULL != m_pVarCodeStr) {
- l_stream << m_pVarCodeStr << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- } else {
- l_stream << "Variant coding not available." << endl;
- }
- l_stream << "********** Variant Code End ***********" << endl << endl;
- FRAMEWORKUNIFIEDLOG(ZONE_SYSLOG, __FUNCTION__, "\n%s", l_stream.str().c_str());
- l_stream.str(""); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream.clear(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_stream << "********** File System Information Start ***********" << endl;
- l_stream << "== mounts info start==" << endl;
- {
- std::ifstream fin("/proc/mounts"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- std::string line;
- while (fin && std::getline(fin, line)) {
- l_stream << line << endl;
- }
- }
- l_stream << "== mounts info end ==" << endl;
- FRAMEWORKUNIFIEDLOG(ZONE_SYSLOG, __FUNCTION__, "\n%s", l_stream.str().c_str());
- l_stream.str(""); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream.clear(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_stream << "== DF info start==" << endl;
- {
- char* const argv[] = { const_cast<char*>("/bin/df"), const_cast<char*>("-a"), static_cast<char*>(NULL), };
- SS_ASERT(0 == getExecedString(argv, l_stream)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- l_stream << "== DF info end==" << endl;
-
- FRAMEWORKUNIFIEDLOG(ZONE_SYSLOG, __FUNCTION__, "\n%s", l_stream.str().c_str());
- l_stream.str(""); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream.clear(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
-#if 0 // Need to install lsblk if requested so that it is not installed
- l_stream << "== lsblk info start==" << endl;
- {
- char* const argv[] = {
- const_cast<char*>("/usr/debug/bin/lsblk"),
- const_cast<char*>("-o"),
- const_cast<char*>("NAME,KNAME,MAJ:MIN,FSTYPE,PARTLABEL,MODEL,SERIAL,REV,VENDOR"),
- const_cast<char*>(NULL),
- };
- SS_ASERT(0 == getExecedString(argv, l_stream));
- }
- l_stream << "== lsblk info end==" << endl;
- FRAMEWORKUNIFIEDLOG(ZONE_SYSLOG, __FUNCTION__, "\n%s", l_stream.str().c_str());
- l_stream.str("");
- l_stream.clear();
-#endif
-
- l_stream << "== proc info start==" << endl;
- {
- char* const argv[] = { const_cast<char*>("/bin/ps"), const_cast<char*>("auxc"),
- const_cast<char*>("-L"), static_cast<char*>(NULL), };
- SS_ASERT(0 == getExecedString(argv, l_stream)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- l_stream << "== proc info end==" << endl;
- {
- // Output is splitted so that the FRAMEWORKUNIFIEDLOG can not write data over 4K Bytes at a time
- std::list<std::string> strList;
- boost::split(strList, static_cast<const std::string>(l_stream.str()),
- boost::is_any_of("\n")); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- int ii = 0;
- std::stringstream ss; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- for (std::list<std::string>::iterator ite = strList.begin();
- ite != strList.end(); ite++) {
- ss << *ite << endl;
- ii++;
- if (ii > 20) {
- FRAMEWORKUNIFIEDLOG(ZONE_SYSLOG, __FUNCTION__, "\n%s", ss.str().c_str());
- ss.str(""); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- ss.clear(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- ii = 0;
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_SYSLOG, __FUNCTION__, "\n%s", ss.str().c_str());
- }
- l_stream.str(""); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream.clear(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_eStatus = SendLogArtifactResponseToLogger(f_hApp, m_requestedArtifactId, ""); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (l_eStatus != eFrameworkunifiedStatusOK) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: SendLogArtifactResponseToLogger(Artifact '%d') "
- "errored: %d/'%s'", m_requestedArtifactId, l_eStatus,
- GetStr(l_eStatus).c_str());
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnObtainShowMemTxt
-/// Obtain showmem content, write file to disk, and send filename to SL.
-///
-/// \param [in] f_hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnObtainShowMemTxt(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- std::string l_artifactFilePathAndName = "/tmp/showmem.txt";
- {
- std::ofstream fo(l_artifactFilePathAndName.c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- saveProcsMemInfo(fo); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- l_eStatus = SendLogArtifactResponseToLogger(f_hApp, m_requestedArtifactId,
- l_artifactFilePathAndName); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (l_eStatus != eFrameworkunifiedStatusOK) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: SendLogArtifactResponseToLogger(Artifact '%d', '%s') "
- "errored: %d/'%s'", m_requestedArtifactId,
- l_artifactFilePathAndName.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnErrorEventCoreFilePollTimeout
-/// Called periodically to verify whether the process core file has completed
-/// being written to disk. When complete, this function sends an artifact
-/// response to SSL.
-///
-/// \param [in] f_hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnErrorEventCoreFilePollTimeout(HANDLE f_hApp) { // LCOV_EXCL_START 8:dead code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- BOOL l_sendResponse = FALSE;
- std::string l_artifactFilePathAndName = "";
- std::ostringstream l_coreFilePathAndName; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
-// struct stat l_fileInfo;
- struct stat64 l_fileInfo;
- int l_result;
- off_t l_coreFileSize;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- l_coreFilePathAndName << "/debug/"
- << m_errorEventCurrentIter->m_loggingInfo.binaryFileName << ".core.gz"; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
-
-// l_result = stat(l_coreFilePathAndName.str().c_str(), &l_fileInfo);
- l_result = stat64(l_coreFilePathAndName.str().c_str(), &l_fileInfo);
- if (l_result == 0) {
- l_coreFileSize = l_fileInfo.st_size;
- if ((l_coreFileSize > m_coreFileSizeBytes) || // Core file grew from last read.
- (l_coreFileSize == 0)) { // Core file not yet updated externally.
- m_coreFileSizeBytes = l_coreFileSize; // Wait until file stops growing.
- bool result =
- m_errorEventTimers[eSM_ERROR_EVENT_TIMER_CORE_FILE_POLL].Start( // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- 0, SS_ERROR_EVENT_CORE_FILE_POLL_TO_MS, 0, 0); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (FALSE == result) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Failed to start timer SS_ERROR_EVENT_CORE_FILE_POLL_TO_MS.");
- l_sendResponse = TRUE;
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Info. Core file: %s, size: %ld still growing.",
- l_coreFilePathAndName.str().c_str(),
- m_coreFileSizeBytes);
-
- l_sendResponse = FALSE;
- }
- } else { // File has stopped growing.
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Info. Core file: %s, size: %ld write complete. Sending artifact response.",
- l_coreFilePathAndName.str().c_str(), m_coreFileSizeBytes);
-
- l_artifactFilePathAndName = l_coreFilePathAndName.str();
- l_sendResponse = TRUE;
- }
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Info. Core file: %s, unable to determine size. Sending empty artifact response to SSL.",
- l_coreFilePathAndName.str().c_str());
-
- l_sendResponse = TRUE;
- }
-
- if (TRUE == l_sendResponse) {
- l_eStatus = SendLogArtifactResponseToLogger(f_hApp, // Error getting file size. Send empty path to SSL.
- m_requestedArtifactId, l_artifactFilePathAndName); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (l_eStatus != eFrameworkunifiedStatusOK) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: SendLogArtifactResponseToLogger(Artifact '%d', '%s') "
- "errored: %d/'%s'", m_requestedArtifactId,
- l_artifactFilePathAndName.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-// LCOV_EXCL_STOP
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnObtainDebugDumpLog
-/// Obtain debug dump content, write file to disk, and send filename to SL.
-/// See OnModuleDebugDumpResponse().
-///
-/// \param [in] f_hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnObtainDebugDumpLog(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- ModuleLaunchListIter l_moduleIter;
-
- m_NbrDebugDumpRspnRecv = 0;
-
- for (GroupLaunchMapIter l_GroupIter = m_MapProclaunchGrps.begin();
- l_GroupIter != m_MapProclaunchGrps.end(); l_GroupIter++) {
- for (l_moduleIter = l_GroupIter->second.modules.begin();
- l_moduleIter != l_GroupIter->second.modules.end();
- l_moduleIter++) {
- const BOOL isModuleConnected = l_moduleIter->IsModuleConnected(); // LCOV_EXCL_BR_LINE 11:Gcov constraints (because exception-handling routes are automatically generated)
- if ((SERVICE_NS_NPP != l_moduleIter->name) && // NPP is a special case and does NOT session connect with SM.
- (TRUE == isModuleConnected)) {
- l_eStatus = FrameworkunifiedSendMsg(l_moduleIter->hsession, SS_SM_DEBUG_DUMP,
- 0, NULL);
-
- if (eFrameworkunifiedStatusOK == l_eStatus) { // LCOV_EXCL_BR_LINE 200:NSFW error case
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Info. FrameworkunifiedSendMsg(SS_SM_DEBUG_DUMP) to %s succeeded.", // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- l_moduleIter->name.c_str()); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- } else {
- // LCOV_EXCL_START 200:NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: FrameworkunifiedSendMsg(%p, SS_SM_DEBUG_DUMP) to %s errored: %d/'%s'",
- (void *) l_moduleIter->hsession,
- l_moduleIter->name.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- }
- }
- }
- }
-
- // Call debug dump handler for SM.
- l_eStatus = OnSystemManagerDebugDump(f_hApp);
- LOG_STATUS(l_eStatus, "OnSystemManagerDebugDump()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- // Refresh debug dump timeout timer after each debug dump response received.
- // Non AGL framework modules will have the remaining time after the last
- // received response to complete their debug dump.
- bool result =
- m_errorEventTimers[eSM_ERROR_EVENT_TIMER_DEBUG_DUMP_RSPN].Start(
- SS_ERROR_EVENT_DEBUG_DUMP_RSPN_TO_SEC, 0, 0, 0);
- if (FALSE == result) { // LCOV_EXCL_BR_LINE 200:will not be this case
- // LCOV_EXCL_START 200:will not be this case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Failed to start timer eSM_TIMER_DEBUG_DUMP_RSPN_MONITOR.");
- // LCOV_EXCL_STOP
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnDebugDumpResponseReceived
-/// Debug Dump complete Response handler.
-/// See OnDebugDumpCompleteTimeout().
-///
-/// \param [in] f_hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnDebugDumpResponseReceived(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- ModuleLaunchListIter l_ModuleListIter;
- UI_32 l_len;
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- std::string l_moduleName = FrameworkunifiedGetMsgSrc(f_hApp);
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "from %s", l_moduleName.c_str());
-
- SetCmdHist("SS_SM_DEBUG_DUMP_RSPN", m_SMCmdHist, m_SMHistIter, FrameworkunifiedGetMsgSrc(f_hApp)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- // SM is not launched by SM and is therefore not in the process list.
- // SM does however use the same debug dump mechanism as other processes.
- if (l_moduleName != SERVICE_SYSMANAGER) {
- l_eStatus = GetModuleIterator(l_moduleName.c_str(), l_ModuleListIter);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Module %s not found in Group Launch Map", l_moduleName.c_str());
- } else {
- l_ModuleListIter->SetModuleDebugDumpState(MODULE_DEBUG_DUMP_STATE_RESPONSE_RECEIVED);
- }
- }
-
- if (0 == (l_len = FrameworkunifiedGetMsgLength(f_hApp))) { // LCOV_EXCL_BR_LINE 200:restricted by ss_sm_client
- // LCOV_EXCL_START 200:restricted by ss_sm_client
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- l_eStatus = eFrameworkunifiedStatusInvldBufSize;
- LOG_ERROR("0 == FrameworkunifiedGetMsgLength(f_hApp)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- " Received debug dump response from %s, size: %d bytes. "
- "Total number of responses received: %d",
- l_moduleName.c_str(), l_len, m_NbrDebugDumpRspnRecv);
-
- UI_8 l_buf[l_len]; // NOLINT
- l_eStatus = FrameworkunifiedGetMsgDataOfSize(f_hApp, l_buf, static_cast<UI_32>(sizeof(l_buf)),
- eSMRRelease);
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- LOG_ERROR("FrameworkunifiedGetMsgDataOfSize()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- ios_base::openmode l_mode;
- if (0 == m_NbrDebugDumpRspnRecv) {
- // Create new file.
- l_mode = std::ios_base::trunc;
- } else {
- // Append existing file.
- l_mode = std::ios_base::app;
- }
-
- std::ofstream l_stream("/tmp/systemmanager_debugdump.log", l_mode); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream << l_buf << endl; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_stream.close(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- m_NbrDebugDumpRspnRecv++;
-
- // Refresh debug dump timeout timer after each debug dump response received.
- // Non AGL framework modules will have the remaining time after the last
- // received response to complete their debug dump.
- bool result =
- m_errorEventTimers[eSM_ERROR_EVENT_TIMER_DEBUG_DUMP_RSPN].Start( // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- SS_ERROR_EVENT_DEBUG_DUMP_RSPN_TO_SEC, 0, 0, 0); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (FALSE == result) { // LCOV_EXCL_BR_LINE 200:will not be this case
- // LCOV_EXCL_START 200:will not be this case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Failed to start timer eSM_TIMER_DEBUG_DUMP_RSPN_MONITOR.");
- l_eStatus = OnDebugDumpCompleteTimeout(f_hApp); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "OnDebugDumpCompleteTimeout()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnDebugDumpCompleteTimeout
-/// Called after the last debug dump message is received, or when the debug
-/// dump monitor timer expires.
-///
-/// \param [in] f_hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnDebugDumpCompleteTimeout(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- std::string l_artifactFilePathAndName = "/tmp/systemmanager_debugdump.log";
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- m_errorEventTimers[eSM_ERROR_EVENT_TIMER_DEBUG_DUMP_RSPN].Stop(); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "Received '%d' Debug Dump responses.",
- m_NbrDebugDumpRspnRecv);
-
- l_eStatus = SendLogArtifactResponseToLogger(f_hApp, m_requestedArtifactId,
- l_artifactFilePathAndName); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (l_eStatus != eFrameworkunifiedStatusOK) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: SendLogArtifactResponseToLogger(Artifact '%d', '%s') "
- "errored: %d/'%s'", m_requestedArtifactId,
- l_artifactFilePathAndName.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-
diff --git a/systemservice/system_manager/server/src/ss_system_manager_error_event_triggers.cpp b/systemservice/system_manager/server/src/ss_system_manager_error_event_triggers.cpp
deleted file mode 100755
index 385a628..0000000
--- a/systemservice/system_manager/server/src/ss_system_manager_error_event_triggers.cpp
+++ /dev/null
@@ -1,1093 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for IAT error event logging.
-///
-///////////////////////////////////////////////////////////////////////////////
-#include <system_service/ss_system_manager_notifications.h>
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/frameworkunified_multithreading.h>
-#include <system_service/ss_services.h>
-#include <system_service/ss_client_names.h>
-#include <system_service/ss_power_service_if.h>
-#include <processlauncher/ProcessLauncher_if.h>
-#include <processlauncher/ss_sm_process_launcher_protocol.h>
-#include <processlauncher/ss_sm_process_launcher.h>
-#include <heartbeat/ss_hb_if.h>
-#include <system_service/ss_heartbeat_service_protocol.h>
-#include <string.h>
-#include <system_service/ss_power_service_notifications.h>
-#include <system_service/ss_power_service_protocol.h>
-#include <stub/ss_diag.h>
-#include <system_service/ss_test_clients.h>
-#include <native_service/ns_np_service_protocol.h>
-#include <native_service/frameworkunified_application.h>
-#include <system_service/ss_sm_thread_names.h>
-#include <system_service/ss_templates.h>
-#include <native_service/ns_plogger_if.h>
-#include <native_service/frameworkunified_thread_priority.h>
-#include <native_service/ns_np_service_nor_persistence.h>
-#include <native_service/cl_process.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <dirent.h>
-#include <sys/mman.h>
-#include <sys/procfs.h>
-#include <libgen.h>
-#include <spawn.h>
-#include <errno.h>
-#include <sys/timeb.h>
-#include <string>
-#include "ss_system_manager.h"
-#include "ss_sm_systemmanagerlog.h"
-#include "ss_sm_signals.h"
-#include "ss_sm_default_paths.h"
-#include "ss_sm_version.h"
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnHeartBeatErrorDetected
-/// This function gets called when a heartbeat failure is detected.
-///
-/// \param [in] f_hApp
-/// HANDLE - Handle of the Client Application
-///
-/// \return Status
-/// EFrameworkunifiedStatus - success or error
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnHeartBeatErrorDetected(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- BOOL l_resetRequired;
- EErrorEventResetType l_resetType;
- SMLoggingInfo l_loggingInfo;
- std::string l_moduleBinaryName;
- UI_32 l_ix;
- THbReportData l_HBReport;
-
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < THbReportData > (f_hApp, l_HBReport))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Report contains : %d entries.", l_HBReport.nNumOfModules);
-
- for (l_ix = 0; l_ix < l_HBReport.nNumOfModules; l_ix++) {
- if (HB_STATUS_TIMEOUT == l_HBReport.tModuleList[l_ix].ProcHBState) {
- std::string l_moduleQueueName = l_HBReport.tModuleList[l_ix].ProcQueueName; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- m_HBReport.eEntireState = l_HBReport.eEntireState;
- m_HBReport.nNumOfModules = l_HBReport.nNumOfModules;
- memcpy(&m_HBReport.tModuleList[l_ix], &l_HBReport.tModuleList[l_ix], sizeof(TSmModuleInfo));
-
- TEXT(__FUNCTION__, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- " ERROR EVENT: Heartbeat error detected from: %s.", // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- l_moduleQueueName.c_str()); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- l_eStatus = GetBinaryNameOfProcess(l_moduleQueueName, l_moduleBinaryName); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning. Unable to identify binary name for SM child process with queue name: %s."
- " The process name will be missing from the .csv and the core file will not be archived.",
- l_moduleQueueName.c_str());
- } else {
- strncpy(l_loggingInfo.binaryFileName,
- l_moduleBinaryName.c_str(),
- sizeof(l_loggingInfo.binaryFileName) - 1);
- }
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = ActOnModuleFailure(f_hApp, l_moduleQueueName, l_resetRequired))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. ActOnModuleFailure(%s,%d) errored: %d/'%s'",
- l_moduleQueueName.c_str(), l_resetRequired,
- l_eStatus, GetStr(l_eStatus).c_str());
- }
-
- l_resetType =
- (FALSE == l_resetRequired) ?
- eErrorEventResetTypeNone :
- eErrorEventResetTypeHard;
-
- if (eErrorEventResetTypeNone != l_resetType) {
- l_loggingInfo.resetReason =
- e_SS_SM_CPU_RESET_REASON_GENERIC_ERR;
- }
-
- l_eStatus = ErrorEventEnqueue(f_hApp,
- eErrorEventTypeHeartBeatFailure, l_moduleQueueName,
- l_resetType, l_loggingInfo);
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(eErrorEventTypeHeartBeatFailure)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnProcessTermDetected
-///
-///
-///
-/// \param Handle to AGL application.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnProcessTermDetected(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- int l_clRet;
- int l_count = 0;
-
- // When multiple child processes terminate, CL_ProcessCleanup() returns 1. If 1 is returned, it repeats.
- do {
- CL_ProcessCleanupInfo_t l_procInfo;
-
- l_count++;
-
- l_clRet = CL_ProcessCleanup(m_ClProcessSigFd, &l_procInfo);
- if (l_clRet != 0 && l_clRet != 1) {
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning: CL_ProcessCleanup(%d):%s", l_clRet,
- strerror(errno));
- l_eStatus = eFrameworkunifiedStatusFail;
- break;
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "PID:%d code:%d status:%d",
- l_procInfo.pid, l_procInfo.code, l_procInfo.status);
-
- // Terminate a process group to reclaim descendants of an anomaly terminated process
- SS_ASERT_ERRNO(0 == CL_ProcessAbortGroup(l_procInfo.pid)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- BOOL bIsExited = (CLD_EXITED == l_procInfo.code) ? TRUE : FALSE; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- SMProcessExitInfo l_procExitInfo;
- memset(&l_procExitInfo, 0, sizeof(l_procExitInfo));
- l_procExitInfo.pid = l_procInfo.pid;
- // Process exit value when si_code == CLD_EXITED, else delivered signal number.
- l_procExitInfo.exitValue = l_procInfo.status;
- l_procExitInfo.signalNumber = SS_SM_ABORT_SIGNAL;
-
- // If GroupRelaunch is required, kill the remaining services
- SS_String l_moduleQueueName("");
- if (eFrameworkunifiedStatusOK == FindNameOfTerminatedProcess(l_procExitInfo.pid, l_moduleQueueName)) {
- for (GroupRelaunchModuleListIter l_itr =
- m_GroupRelaunchModuleList.begin();
- m_GroupRelaunchModuleList.end() != l_itr; l_itr++) {
- if (l_itr->name == l_moduleQueueName) {
- if (l_itr->bIsKilled) { // LCOV_EXCL_BR_LINE 200: relaunch module bIsKilled is always false
- // LCOV_EXCL_START 200: relaunch module bIsKilled is always false
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- // Normal during forced Relaunch
- l_procExitInfo.exitValue = SS_SM_EXIT_RELAUNCH;
- bIsExited = TRUE;
- l_itr->bIsKilled = FALSE;
- // LCOV_EXCL_STOP
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "GroupRelaunch(%d/%d)",
- m_GroupRelaunchCount, m_GroupRelaunchLimit);
-
- if (m_GroupRelaunchCount < m_GroupRelaunchLimit) {
- SS_ASERT( // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- FrameworkunifiedNPPublishNotification(f_hApp, // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- NTFY_SSNeedAplRestart, NULL, 0)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- // Issue ErrorEvent
- SMLoggingInfo l_loggingInfo; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- SS_String l_moduleBinaryName(""); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_loggingInfo.pid = l_procExitInfo.pid;
- l_loggingInfo.exitValue = l_procExitInfo.exitValue;
- l_loggingInfo.signalNumber = SS_SM_ABORT_SIGNAL;
- if (eFrameworkunifiedStatusOK != GetBinaryNameOfProcess(l_moduleQueueName, l_moduleBinaryName)) { // LCOV_EXCL_BR_LINE 200: cannot be error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_LINE 200: cannot be error
- } else {
- snprintf(l_loggingInfo.binaryFileName,
- sizeof(l_loggingInfo.binaryFileName),
- "%s", l_moduleBinaryName.c_str());
- }
-
- l_eStatus = ErrorEventEnqueue(f_hApp,
- eErrorEventTypeGroupRelaunch, l_itr->name,
- eErrorEventResetTypeNone, l_loggingInfo);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- // Relaunch normally and do not leave anomaly LOGs
- l_procExitInfo.exitValue = SS_SM_EXIT_RELAUNCH;
- bIsExited = TRUE;
-
- for (GroupRelaunchModuleListIter l_itr =
- m_GroupRelaunchModuleList.begin();
- m_GroupRelaunchModuleList.end() != l_itr;
- l_itr++) {
- if (l_itr->name != l_moduleQueueName) { // LCOV_EXCL_BR_LINE 200: name always be equal because of outer if judge // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 200: name always be equal
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- ModuleLaunchListIter l_ModuleListIter;
- if (eFrameworkunifiedStatusOK
- != GetModuleIterator(
- l_itr->name.c_str(),
- l_ModuleListIter)) {
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- killpg(l_ModuleListIter->pid,
- SS_SM_TERMINATE_SIGNAL);
- l_itr->bIsKilled = TRUE;
- }
- // LCOV_EXCL_STOP
- }
- }
-
- m_GroupRelaunchCount++;
- } else {
- // Reboot system
- ModuleLaunchListIter l_ModuleListIter;
- if (eFrameworkunifiedStatusOK == GetModuleIterator(l_moduleQueueName.c_str(), l_ModuleListIter)) { // LCOV_EXCL_BR_LINE 200:cannot be error // NOLINT(whitespace/line_length)
- l_ModuleListIter->relaunch_count = l_ModuleListIter->retry_cnt;
- } else {
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_LINE 200: cannot be error
- }
- }
- break;
- }
- }
- }
- }
-
- if (isPreLaunchedProcess(l_procExitInfo.pid)) { // LCOV_EXCL_BR_LINE 200:prelaunch mode is not valid at UT test //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 200 :prelaunch mode is not valid at UT test
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = OnPreLaunchedProcessTermDetected(f_hApp, l_procExitInfo, bIsExited); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- LOG_ERROR("OnPreLaunchedProcessTermDetected()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- l_eStatus = eFrameworkunifiedStatusFail;
- // If an error occurs here, the zombie process may be collected and continued.
- }
- // LCOV_EXCL_STOP
- } else if (bIsExited) {
- l_eStatus = OnProcessExitDetected(f_hApp, l_procExitInfo); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- LOG_ERROR("OnProcessExitDetected()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- l_eStatus = eFrameworkunifiedStatusFail;
- // If an error occurs here, the zombie process may be collected and continued.
- }
- } else {
- l_eStatus = OnProcessCrashDetected(f_hApp, l_procExitInfo); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (eFrameworkunifiedStatusOK != l_eStatus) {
- LOG_ERROR("OnProcessCrashDetected()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- l_eStatus = eFrameworkunifiedStatusFail;
- // If an error occurs here, the zombie process may be collected and continued.
- }
- }
- } while (l_clRet == 1 && l_count < 50);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-BOOL CSystemManager::isPreLaunchedProcess(int f_pid) {
- BOOL l_bIsExist = FALSE;
-
- PreLaunchModuleListIter l_itr;
- for (l_itr = m_PreLaunchModuleList.begin();
- m_PreLaunchModuleList.end() != l_itr; l_itr++) {
- if (l_itr->pid == f_pid) { // LCOV_EXCL_BR_LINE 200:prelaunch mode is not valid at UT test //NOLINT (whitespace/line_length)
- // LCOV_EXCL_START 200 :prelaunch mode is not valid at UT test
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_bIsExist = TRUE;
- break;
- // LCOV_EXCL_STOP
- }
- }
- return l_bIsExist;
-}
-
-EFrameworkunifiedStatus CSystemManager::OnPreLaunchedProcessTermDetected(HANDLE f_hApp, SMProcessExitInfo &f_procExitInfo, BOOL f_bIsExited) { // LCOV_EXCL_START 200 :prelaunch mode is not valid at UT test // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- PreLaunchModuleListIter l_itr;
- for (l_itr = m_PreLaunchModuleList.begin();
- m_PreLaunchModuleList.end() != l_itr; l_itr++) {
- if (l_itr->pid == static_cast<int>(f_procExitInfo.pid)) {
- break;
- }
- }
-
- try {
- if (m_PreLaunchModuleList.end() == l_itr) {
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- throw eFrameworkunifiedStatusFail;
- }
-
- BOOL l_bIsNeedRelaunched = FALSE;
-
- if ((SS_SM_RELAUNCH_NO_LIMIT == l_itr->relaunchLimit)
- || (l_itr->relaunchLimit > l_itr->relaunchCount)) {
- l_itr->relaunchCount++;
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "Relaunch %s(%d/%d)",
- l_itr->name.c_str(), l_itr->relaunchCount,
- l_itr->relaunchLimit);
- if (-1 == (l_itr->pid = l_itr->LaunchFunc())) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Relaunch %s Failed",
- l_itr->name.c_str());
- } else {
- l_bIsNeedRelaunched = TRUE;
- }
- }
-
- if (!l_bIsNeedRelaunched) {
- if (l_itr->critical) {
- SMLoggingInfo l_loggingInfo; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- EErrorEventType l_ErrorType;
-
- l_itr->pid = -1;
-
- l_loggingInfo.pid = f_procExitInfo.pid;
- l_loggingInfo.exitValue = f_procExitInfo.exitValue;
- l_loggingInfo.signalNumber = f_procExitInfo.signalNumber;
- l_loggingInfo.resetReason =
- e_SS_SM_CPU_RESET_REASON_GENERIC_ERR;
- snprintf(l_loggingInfo.binaryFileName,
- sizeof(l_loggingInfo.binaryFileName), "%s",
- l_itr->binaryFileName.c_str());
-
- if (f_bIsExited) {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "%s exited",
- l_itr->name.c_str());
- l_ErrorType = eErrorEventTypeProcessExit;
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "%s crashed",
- l_itr->name.c_str());
- l_ErrorType = eErrorEventTypeProcessCrash;
- }
-
- l_eStatus = ErrorEventEnqueue(f_hApp, l_ErrorType, l_itr->name,
- eErrorEventResetTypeHard, l_loggingInfo);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, "ErrorEventEnqueue()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "%s removed",
- l_itr->name.c_str());
- l_itr->pid = -1;
- }
- }
- } catch (EFrameworkunifiedStatus e) {
- l_eStatus = e;
- }
-
- return l_eStatus;
-}
-// LCOV_EXCL_STOP
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnProcessCrashDetected
-/// Initiate logging and recovery for an abnormal process termination.
-/// The terminated process may or may not be a child of system manager.
-/// If the process is a child of SM, then a validation check must ensue
-/// to ensure that the process crash is not the result of a failed heartbeat
-/// and subsequent termination signal sent from System Manager. This function
-/// is NOT called for processes that exit normally.
-///
-/// See OnProcessCrashDetected.
-///
-/// \param Handle to AGL application.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnProcessCrashDetected(HANDLE f_hApp,
- SMProcessExitInfo &f_procExitInfo) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail;
- BOOL l_resetRequired = TRUE;
- SS_String l_moduleQueueName("");
- SS_String l_moduleBinaryName(""); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- EErrorEventResetType l_resetType;
-
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- TEXT(__FUNCTION__, " PROCESS CRASH: Process PID: %d", f_procExitInfo.pid); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = FindNameOfTerminatedProcess(f_procExitInfo.pid, l_moduleQueueName))) {
- // Normally, logging COULD continue, but stopping logging also solves a PosixBasedOS001 errata
- // where a process crashes and is removed from the SM process launch map and is ALSO
- // detected by the exit detector as a 'normal' exit. The FindNameOfTerminatedProcess()
- // will continue properly IF a crash and removal from the map has not occurred
- // for the same process.
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. FindNameOfTerminatedProcess() returned error: %d/'%s' for PID: %d."
- " No recovery possible. Logging has been suspended for this event.",
- l_eStatus, GetStr(l_eStatus).c_str(), f_procExitInfo.pid);
- } else {
- l_eStatus = GetBinaryNameOfProcess(l_moduleQueueName, l_moduleBinaryName); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 200: cannot be error
- // LCOV_EXCL_START 200: cannot be error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning. Unable to identify binary for SM child process PID: %d, Queue Name: %s."
- " The process binary name will be missing from the .csv file.",
- f_procExitInfo.pid, l_moduleQueueName.c_str());
- // LCOV_EXCL_STOP
- } else {
- strncpy(f_procExitInfo.binaryFileName, l_moduleBinaryName.c_str(),
- sizeof(f_procExitInfo.binaryFileName) - 1);
-
- f_procExitInfo.binaryFileName[sizeof(f_procExitInfo.binaryFileName) - 1] = '\0';
- }
-
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = ActOnModuleFailure(f_hApp, l_moduleQueueName,
- l_resetRequired))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. ActOnModuleFailure(%s,%d) errored: %d/'%s'",
- l_moduleQueueName.c_str(), l_resetRequired, l_eStatus,
- GetStr(l_eStatus).c_str());
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__,
- "Info. ActOnModuleFailure() returned reset status: %d/'%s'.",
- l_resetRequired, GetStr(l_resetRequired).c_str());
- }
-
- l_resetType =
- (FALSE == l_resetRequired) ?
- eErrorEventResetTypeNone : eErrorEventResetTypeHard;
-
- SMLoggingInfo l_loggingInfo; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_loggingInfo.pid = f_procExitInfo.pid;
- l_loggingInfo.exitValue = f_procExitInfo.exitValue;
- l_loggingInfo.signalNumber = f_procExitInfo.signalNumber;
- snprintf(l_loggingInfo.binaryFileName,
- sizeof(l_loggingInfo.binaryFileName), "%s",
- f_procExitInfo.binaryFileName);
- if (eErrorEventResetTypeNone != l_resetType) {
- l_loggingInfo.resetReason = e_SS_SM_CPU_RESET_REASON_GENERIC_ERR;
- }
-
- l_eStatus = ErrorEventEnqueue(f_hApp, eErrorEventTypeProcessCrash,
- l_moduleQueueName, l_resetType, l_loggingInfo);
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(eErrorEventTypeProcessCrash)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnProcessExitDetected
-/// Initiate logging and recovery for System Manager child processes that
-/// exit normally via the last brace of main(), exit(), or have their last
-/// thread exit. This function is NOT called for processes that terminate
-/// unexpectedly.
-///
-/// See OnProcessExitDetected.
-///
-/// \param Handle to AGL application.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnProcessExitDetected(HANDLE f_hApp,
- SMProcessExitInfo &f_procExitInfo) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusFail;
- SS_String l_moduleQueueName("");
-
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(f_hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- TEXT(__FUNCTION__, "PROCESS EXIT: PID:%d exitValue:%d", f_procExitInfo.pid, // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- f_procExitInfo.exitValue); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = FindNameOfTerminatedProcess(f_procExitInfo.pid,
- l_moduleQueueName))) {
- // This happens when SMs to EXEC debugging commands, etc.
- // Since this is not an error, set LOGs to WARN levels and set the return codes to OK.
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "%s: pid:%d is unknown service",
- GetStr(l_eStatus).c_str(), f_procExitInfo.pid);
- l_eStatus = eFrameworkunifiedStatusOK;
- } else {
- if (0 == f_procExitInfo.exitValue) {
- ModuleLaunchListIter l_moduleListIter;
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = RemoveModuleEntryFromHB(f_hApp, l_moduleQueueName.c_str()))) { // LCOV_EXCL_BR_LINE 4: NSFW // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 4: NSFW
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: RemoveModuleEntryFromHB(%s) errored: %d/'%s'",
- l_moduleQueueName.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- }
-
- l_eStatus = GetModuleIterator(l_moduleQueueName.c_str(),
- l_moduleListIter);
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 200:cannot be error
- // LCOV_EXCL_START 200:cannot be error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Module %s not found in Group Launch Map",
- l_moduleQueueName.c_str());
- // LCOV_EXCL_STOP
- } else {
- l_eStatus = SendRequestToLauncher(f_hApp, l_moduleListIter, // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- ePLThrdCmd_TERMINATE_MODULE_REQST, // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- "ePLThrdCmd_TERMINATE_MODULE_REQST"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "SendRequestToLauncher()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- // Do not add relaunch_count for normal termination.
- l_moduleListIter->relaunch_status = RelaunchSafe;
- }
- } else if (SS_SM_EXIT_RELAUNCH == f_procExitInfo.exitValue) {
- ModuleLaunchListIter l_moduleListIter;
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = RemoveModuleEntryFromHB(f_hApp, l_moduleQueueName.c_str()))) { // LCOV_EXCL_BR_LINE 4: nsfw error // NOLINT(whitespace/line_length)
- // LCOV_EXCL_START 4: nsfw error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: RemoveModuleEntryFromHB(%s) errored: %d/'%s'",
- l_moduleQueueName.c_str(), l_eStatus,
- GetStr(l_eStatus).c_str());
- // LCOV_EXCL_STOP
- }
-
- l_eStatus = GetModuleIterator(l_moduleQueueName.c_str(),
- l_moduleListIter);
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 200:cannot be error
- // LCOV_EXCL_START 200:cannot be error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error: Module %s not found in Group Launch Map",
- l_moduleQueueName.c_str());
- // LCOV_EXCL_STOP
- } else {
- l_eStatus = SendRequestToLauncher(f_hApp, l_moduleListIter, // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- ePLThrdCmd_RELAUNCH_MODULE_REQST, // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- "ePLThrdCmd_RELAUNCH_MODULE_REQST"); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "SendRequestToLauncher()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- // Do not add relaunch_count for normal Relaunch
- l_moduleListIter->relaunch_status = RelaunchSafe;
- }
- } else {
- SS_String l_moduleBinaryName(""); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- BOOL l_resetRequired = TRUE;
- EErrorEventResetType l_resetType;
-
- l_eStatus = GetBinaryNameOfProcess(l_moduleQueueName, l_moduleBinaryName); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (eFrameworkunifiedStatusOK != l_eStatus) { // LCOV_EXCL_BR_LINE 200: cannot be error
- // LCOV_EXCL_START 200: cannot be error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning. Unable to identify binary for SM child process PID: %d, Queue Name: %s."
- " The process binary name will be missing from the .csv file.",
- f_procExitInfo.pid, l_moduleQueueName.c_str());
- // LCOV_EXCL_STOP
- } else {
- strncpy(f_procExitInfo.binaryFileName,
- l_moduleBinaryName.c_str(),
- sizeof(f_procExitInfo.binaryFileName) - 1);
-
- f_procExitInfo.binaryFileName[sizeof(f_procExitInfo.binaryFileName)
- - 1] = '\0';
- }
-
- if (eFrameworkunifiedStatusOK
- != (l_eStatus = ActOnModuleFailure(f_hApp,
- l_moduleQueueName, l_resetRequired))) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. ActOnModuleFailure(%s,%d) errored: %d/'%s'",
- l_moduleQueueName.c_str(), l_resetRequired, l_eStatus,
- GetStr(l_eStatus).c_str());
- }
-
- l_resetType =
- (FALSE == l_resetRequired) ?
- eErrorEventResetTypeNone : eErrorEventResetTypeHard;
-
- SMLoggingInfo l_loggingInfo; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_loggingInfo.pid = f_procExitInfo.pid;
- l_loggingInfo.exitValue = f_procExitInfo.exitValue;
- l_loggingInfo.signalNumber = f_procExitInfo.signalNumber;
- snprintf(l_loggingInfo.binaryFileName,
- sizeof(l_loggingInfo.binaryFileName), "%s",
- f_procExitInfo.binaryFileName);
- if (eErrorEventResetTypeNone != l_resetType) {
- l_loggingInfo.resetReason = e_SS_SM_CPU_RESET_REASON_GENERIC_ERR;
- }
-
- l_eStatus = ErrorEventEnqueue(f_hApp, eErrorEventTypeProcessExit,
- l_moduleQueueName, l_resetType, l_loggingInfo);
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(eErrorEventTypeProcessExit)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnBootMicroResetNotification
-/// Called from the logging shadow when the boot micro notifies the shadow of
-/// an unexpected boot micro reset during the last power cycle.
-///
-/// \param [in] hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnBootMicroResetNotification(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- std::string l_moduleName;
- EFrameworkunifiedStatus l_eStatus;
-
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < eSMBootMicroResetReason > (hApp, m_BootMicroResetReason))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- l_moduleName = FrameworkunifiedGetMsgSrc(hApp); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- TEXT(__FUNCTION__, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- " ERROR EVENT: A boot micro reset has occurred. Reset reason: %d/'%s'.", // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- m_BootMicroResetReason, GetStr(m_BootMicroResetReason).c_str()); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- l_eStatus = ErrorEventEnqueue(hApp, eErrorEventTypeBootMicroReset, l_moduleName); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(eErrorEventTypeBootMicroReset)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup RequestBootMicroLog
-/// Request boot micro log from the logging shadow.
-///
-/// \param [in] hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::RequestBootMicroLog(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- l_eStatus = FrameworkunifiedPublishEvent(hApp, // Event received by PS Logging Shadow
- SS_SM_BOOT_MICRO_LOG_REQ,
- NULL,
- NULL, 0);
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "FrameworkunifiedPublishEvent(SS_SM_BOOT_MICRO_LOG_REQ)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- bool result =
- m_errorEventTimers[eSM_ERROR_EVENT_TIMER_BOOT_MICRO_LOG_RSPN].Start(
- SS_ERROR_EVENT_BOOT_MICRO_LOG_RESPONSE_TO_SEC, 0, 0, 0);
- if (FALSE == result) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. Failed to start timer eSM_TIMER_BOOT_MICRO_LOG_RESPONSE.");
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnLowSystemMemory
-/// Called when a low memory error has been detected.
-///
-/// \param [in] hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnLowSystemMemory(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- SysMem l_SysMem;
- std::string l_moduleName;
- EFrameworkunifiedStatus l_eStatus;
- SMLoggingInfo l_loggingInfo; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < SysMem > (hApp, l_SysMem))) {
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- } else {
- m_FreeMemAvailable = l_SysMem.FreeMemoryBytes;
-
- TEXT(__FUNCTION__, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- " ERROR EVENT: System Low Memory detected. Remaining memory: %d.", // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- m_FreeMemAvailable); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- l_moduleName = FrameworkunifiedGetMsgSrc(hApp); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_loggingInfo.resetReason = e_SS_SM_CPU_RESET_REASON_GENERIC_ERR;
- l_eStatus = ErrorEventEnqueue(hApp, eErrorEventTypeSystemLowMemory,
- l_moduleName, eErrorEventResetTypeHard, l_loggingInfo);
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(eErrorEventTypeSystemLowMemory)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-} // End of EFrameworkunifiedStatus CSystemManager::OnLowSystemMemory( HANDLE hApp )
-
-EFrameworkunifiedStatus CSystemManager::OnPropagateSystemError(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- INTERFACEUNIFIEDLOG_RECEIVED_FROM(hApp); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnUserInvokedLoggingRequest
-/// Called when the end user invokes a error event logging request by means
-/// of hard key or other direct input method.
-///
-/// \param [in] hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnUserInvokedLoggingRequest(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- TSystemManagerLoggingRequestInfo l_logInfo;
- EErrorEventType l_errorEventType;
- std::string l_moduleName;
- EFrameworkunifiedStatus l_eStatus;
- SMLoggingInfo l_loggingInfo; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (eFrameworkunifiedStatusOK != (l_eStatus = ReadMsg < TSystemManagerLoggingRequestInfo > (f_hApp, l_logInfo))) { // LCOV_EXCL_BR_LINE 4: NSFW error case // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("ReadMsg()"); // LCOV_EXCL_LINE 4: NSFW error case
- } else {
- l_moduleName = FrameworkunifiedGetMsgSrc(f_hApp); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_loggingInfo.messageStr = l_logInfo.messageStr;
- l_loggingInfo.suffixStr = l_logInfo.suffixStr;
-
- switch (l_logInfo.logType) {
- case e_SS_SM_CAPTURE_ALL_LOGS:
- l_errorEventType = eErrorEventTypeUserInvokedCollectAllLogs;
- break;
-
- case e_SS_SM_SCREEN_CAPTURE:
- l_errorEventType = eErrorEventTypeUserInvokedCollectScreenShot;
- break;
-
- case e_SS_SM_CAPTURE_INTERFACEUNIFIED_LOGS:
- l_errorEventType = eErrorEventTypeUserInvokedCollectInterfaceunifiedLogs;
- break;
-
- case e_SS_SM_CAPTURE_DEV_LOGS:
- l_errorEventType = eErrorEventTypeUserInvokedCollectDevLogs;
- break;
-
- case e_SS_SM_CAPTURE_MODULE_LOGS:
- l_errorEventType = eErrorEventTypeModuleInvokedCollectDebugLogs;
- break;
-
- case e_SS_SM_CAPTURE_DTC_LOGS:
- l_errorEventType = eErrorEventTypeDtcEvent;
- break;
-
- case e_SS_SM_CAPTURE_NAVI_LOGS:
- l_errorEventType = eErrorEventTypeUserInvokedCollectNaviLog;
- break;
-
- case e_SS_SM_CAPTURE_GROUP_RELAUNCH:
- l_errorEventType = eErrorEventTypeGroupRelaunch;
- break;
-
- default:
- l_errorEventType = eErrorEventTypeMaxValue;
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__,
- " Error. Received unknown user invoked log type: %d. Dropping request.",
- l_logInfo.logType);
- break;
- }
-
- if (eErrorEventTypeMaxValue != l_errorEventType) { // LCOV_EXCL_BR_LINE 200: will not be the else case
- TEXT(__FUNCTION__, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- " ERROR EVENT: User invoked logging request %d/'%s' received. " // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "Adding the request to the event queue.", // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- l_logInfo.logType, GetStr(l_logInfo.logType).c_str()); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- l_eStatus = ErrorEventEnqueue(f_hApp, l_errorEventType,
- l_moduleName, eErrorEventResetTypeNone, l_loggingInfo);
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(UserInvoked)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnEelExportRequest
-/// Called when a removable device is inserted and contains the EEL_Export
-/// trigger.
-///
-/// \param [in] hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnEelExportRequest(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- UI_32 l_strlen = FrameworkunifiedGetMsgLength(f_hApp);
- CHAR l_path[l_strlen]; // NOLINT
-
- if (l_strlen == 0) { // LCOV_EXCL_BR_LINE 200: restricted by iterface_unified
- // LCOV_EXCL_START 200: restricted by iterface_unified
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- return eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- if (sizeof(l_path) != FrameworkunifiedGetMsgLength(f_hApp)) { // LCOV_EXCL_BR_LINE 6: must be equal
- // LCOV_EXCL_START 6: must be equal
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("DataSize mismatch"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else if (eFrameworkunifiedStatusOK // LCOV_EXCL_BR_LINE 4: NSFW error case
- != (l_eStatus = FrameworkunifiedGetMsgDataOfSize(f_hApp, &l_path[0],
- static_cast<UI_32>(sizeof(l_path)), eSMRRelease))) {
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedGetMsgDataOfSize()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else {
- TEXT(__FUNCTION__,
- " ERROR EVENT: EelExport request received. Adding the request to the event queue."); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- std::string l_moduleName = FrameworkunifiedGetMsgSrc(f_hApp);
- SMLoggingInfo l_loggingInfo; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_path[l_strlen - 1] = '\0';
- l_loggingInfo.path = l_path;
-
- l_eStatus = ErrorEventEnqueue(f_hApp, eErrorEventTypeEelExport,
- l_moduleName, eErrorEventResetTypeNone, l_loggingInfo);
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(eErrorEventTypeEelExport)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnSystemmanagerEmmcLogsRequest
-/// Called when a removable device is inserted and contains the LOGGERSERVICE_EMMC_LOGS
-/// trigger.
-///
-/// \param [in] hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnSystemmanagerEmmcLogsRequest(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- UI_32 l_strlen = FrameworkunifiedGetMsgLength(f_hApp);
- CHAR l_path[l_strlen]; // NOLINT
-
- if (l_strlen == 0) { // LCOV_EXCL_BR_LINE 4:NSFW
- // LCOV_EXCL_START 4:NSFW
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0);
- return eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- if (sizeof(l_path) != FrameworkunifiedGetMsgLength(f_hApp)) { // LCOV_EXCL_BR_LINE 8: CHAR l_path[l_strlen]
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("DataSize mismatch"); // LCOV_EXCL_LINE 8: CHAR l_path[l_strlen]
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedGetMsgDataOfSize(f_hApp, &l_path[0], static_cast<UI_32>(sizeof(l_path)), eSMRRelease))) { // LCOV_EXCL_BR_LINE 4:NSFW error case // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedGetMsgDataOfSize()"); // LCOV_EXCL_LINE 4:NSFW error case
- } else {
- TEXT(__FUNCTION__, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- " ERROR EVENT: LOGGERSERVICE_EMMC_LOGS request received. Adding the request to the event queue."); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- std::string l_moduleName = FrameworkunifiedGetMsgSrc(f_hApp); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- SMLoggingInfo l_loggingInfo;
-
- l_path[l_strlen - 1u] = '\0';
- l_loggingInfo.path = l_path;
-
- l_eStatus = ErrorEventEnqueue(f_hApp, eErrorEventTypeInterfaceunifiedEmmcLogs,
- l_moduleName, eErrorEventResetTypeNone, l_loggingInfo);
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(eErrorEventTypeInterfaceunifiedEmmcLogs)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnSystemmanagerClearLogsRequest
-/// Called when a clear LOGGERSERVICE_EMMC_LOGS requested
-/// trigger.
-///
-/// \param [in] hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnSystemmanagerClearLogsRequest(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- std::string l_moduleName = FrameworkunifiedGetMsgSrc(f_hApp);
-
- l_eStatus = ErrorEventEnqueue(f_hApp, eErrorEventTypeUserInvokedClearLogs, // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- l_moduleName, eErrorEventResetTypeNone); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(eErrorEventTypeUserInvokedClearLogs)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnDiagLoggingRequest
-/// Called by logger to initiate log artifact collection and storage on behalf
-/// of diagnostic services.
-///
-/// \param [in] hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnDiagLoggingRequest(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- UI_32 l_strlen = FrameworkunifiedGetMsgLength(f_hApp);
- CHAR l_path[l_strlen]; // NOLINT
-
- if (l_strlen == 0) { // LCOV_EXCL_BR_LINE 200: restricted by iterface_unified
- // LCOV_EXCL_START 200: restricted by iterface_unified
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200:test assert
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- return eFrameworkunifiedStatusFail;
- // LCOV_EXCL_STOP
- }
-
- if (sizeof(l_path) != FrameworkunifiedGetMsgLength(f_hApp)) { // LCOV_EXCL_BR_LINE 6: must be equal
- // LCOV_EXCL_START 6: must be equal
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("DataSize mismatch"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else if (eFrameworkunifiedStatusOK // LCOV_EXCL_BR_LINE 4: NSFW error case
- != (l_eStatus = FrameworkunifiedGetMsgDataOfSize(f_hApp, &l_path[0],
- static_cast<UI_32>(sizeof(l_path)), eSMRRelease))) { // NOLINT
- // LCOV_EXCL_START 4: NSFW error case
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedGetMsgDataOfSize()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- // LCOV_EXCL_STOP
- } else {
- TEXT(__FUNCTION__, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- " ERROR EVENT: SS_SM_ERROR_EVENT_DIAG_LOG_REQ request received. Adding the request to the event queue."); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- std::string l_moduleName = FrameworkunifiedGetMsgSrc(f_hApp);
- SMLoggingInfo l_loggingInfo; // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_path[l_strlen - 1u] = '\0';
- l_loggingInfo.path = l_path;
-
- l_eStatus = ErrorEventEnqueue(f_hApp, eErrorEventTypeDiagEvent,
- l_moduleName, eErrorEventResetTypeNone, l_loggingInfo);
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(eErrorEventTypeDiagEvent)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup OnCanLoggingRequest
-/// This function is called by logger to initiate log artifact collection
-/// and storage when signaled via CAN.
-///
-/// \param [in] hApp - Application handle.
-///
-/// \return EFrameworkunifiedStatus
-/// Success ==> eFrameworkunifiedStatusOK
-/// Failure ==> Other values
-///////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus CSystemManager::OnCANLoggingRequest(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
- std::string l_moduleName;
-
- l_moduleName = FrameworkunifiedGetMsgSrc(f_hApp); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- TEXT(__FUNCTION__, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- " ERROR EVENT: SS_SM_ERROR_EVENT_CAN_LOG_REQ received from %s.", // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- l_moduleName.c_str()); // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
-
- l_eStatus = ErrorEventEnqueue(f_hApp, eErrorEventTypeCanEvent, l_moduleName); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- LOG_ERROR_REC_HIST_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
- "ErrorEventEnqueue(eErrorEventTypeCanEvent)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_system_manager.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
diff --git a/systemservice/system_manager/server/src/ss_system_memory_monitor.cpp b/systemservice/system_manager/server/src/ss_system_memory_monitor.cpp
deleted file mode 100755
index 7ea9b71..0000000
--- a/systemservice/system_manager/server/src/ss_system_memory_monitor.cpp
+++ /dev/null
@@ -1,362 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file provides support for System Manager System Low Memory
-/// detection.
-///
-///////////////////////////////////////////////////////////////////////////////
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/frameworkunified_multithreading.h>
-#include <native_service/frameworkunified_thread_priority.h>
-#include <system_service/ss_sm_thread_names_local.h>
-#include <system_service/ss_templates.h>
-#include <stub/Clock_API.h>
-
-#include <sys/stat.h>
-#include <errno.h>
-#include <sys/resource.h>
-#include <boost/bind.hpp>
-#include <fstream>
-#include <sstream>
-#include <string>
-
-#include "ss_system_memory_monitor.h"
-#include "ss_sm_systemmanagerlog.h"
-
-CSysMemoryMonitor::CSysMemoryMonitor() :
- m_hThread(NULL),
- m_hParentApp(NULL),
- m_SLMCheckCounter(0),
- m_siPriority(-1),
- m_NbrSamplesBeforeSystemmanagerlog(0),
- m_memMonitorThreadName(SS_SMLowMemMonitor),
- m_resmSession(-1) { // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- m_SLMConfig.SLMTimerValue = 0;
- m_SLMConfig.SLMMaxRetryCount = 0;
- m_SLMConfig.SLMThresholdValue = 0;
- m_SLMConfig.SLMSystemmanagerLogIntervalMs = 0;
- bzero(&m_sysMemInfoLast, sizeof(m_sysMemInfoLast));
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-CSysMemoryMonitor::~CSysMemoryMonitor(void) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- StopAndFreeObjects(m_hParentApp);
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-EFrameworkunifiedStatus CSysMemoryMonitor::Initialize(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- if (NULL == f_hApp) { // LCOV_EXCL_BR_LINE 4:NSFW
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusNullPointer; // LCOV_EXCL_LINE 4:NSFW
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Error. Argument f_hApp passed NULL pointer.");
- } else if (NULL == (m_hThread = FrameworkunifiedCreateChildThreadWithPriority(f_hApp, SS_SMLowMemMonitor, boost::bind(&CSysMemoryMonitor::CPUMemThreadStart, this, _1), boost::bind(&CSysMemoryMonitor::CPUMemThreadStop, this, _1), PR_SMLOWMEMMON))) { // LCOV_EXCL_BR_LINE 4:NSFW // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusInvldHandle; // LCOV_EXCL_LINE 4:NSFW
- LOG_ERROR("FrameworkunifiedCreateChildThreadWithPriority()"); // LCOV_EXCL_LINE 4:NSFW
- } else if (eFrameworkunifiedStatusOK != (l_eStatus = FrameworkunifiedStartChildThread(f_hApp, m_hThread, 0, NULL))) { // LCOV_EXCL_BR_LINE 4:NSFW // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- LOG_ERROR("FrameworkunifiedStartChildThread()"); // LCOV_EXCL_LINE 4:NSFW
- } else {
- m_hParentApp = f_hApp;
- m_sysMemInfoLast.TotalMemoryBytes = GetSystemRamSize();
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Info. SLM thread successfully initialized.");
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-EFrameworkunifiedStatus CSysMemoryMonitor::StopAndFreeObjects(HANDLE f_hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- CALL_AND_LOG_STATUS(FrameworkunifiedStopChildThread(f_hApp, m_hThread, 0, NULL)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- CALL_AND_LOG_STATUS(FrameworkunifiedDestroyChildThread(f_hApp, m_hThread)); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-const std::string CSysMemoryMonitor::GetThreadName(void) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (m_memMonitorThreadName);
-}
-
-void CSysMemoryMonitor::SetSLMConfigData(SLMConfigParameters & f_ConfigData) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- m_SLMConfig.SLMTimerValue = f_ConfigData.SLMTimerValue;
- m_SLMConfig.SLMMaxRetryCount = f_ConfigData.SLMMaxRetryCount;
- m_SLMConfig.SLMThresholdValue = f_ConfigData.SLMThresholdValue;
- m_SLMConfig.SLMSystemmanagerLogIntervalMs = f_ConfigData.SLMSystemmanagerLogIntervalMs;
-
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__,
- "Timer value '%d', Retry Count '%d', threshold '%d', log interval '%dms'",
- m_SLMConfig.SLMTimerValue, m_SLMConfig.SLMMaxRetryCount,
- m_SLMConfig.SLMThresholdValue, m_SLMConfig.SLMSystemmanagerLogIntervalMs);
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
-}
-
-EFrameworkunifiedStatus CSysMemoryMonitor::CPUMemThreadStart(HANDLE f_hThread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- l_eStatus = FrameworkunifiedSubscribeNotificationWithCallback(f_hThread,
- NTFY_ResourceMgr_Availability,
- boost::bind(&CSysMemoryMonitor::OnAvailability, this, _1));
- if (l_eStatus != eFrameworkunifiedStatusOK) { // LCOV_EXCL_BR_LINE 4:NSFW
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- SS_ASERT(0); // LCOV_EXCL_LINE 4:NSFW
- }
-
- if (FALSE == (m_memMonitorTimer.Initialize(f_hThread, SS_SLM_MEM_MONITOR_TIMER_ID, boost::bind(&CSysMemoryMonitor::OnMemoryTimerExpiry, this, _1)))) { // LCOV_EXCL_BR_LINE 4:NSFW // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusBadConnection; // LCOV_EXCL_LINE 4:NSFW
- LOG_ERROR("m_memMonitorTimer.Initialize() returned 'FALSE'"); // LCOV_EXCL_LINE 4:NSFW
- } else if (FALSE == (m_systemmanagerlogTimer.Initialize(f_hThread, SS_SLM_SYSTEMMANAGERLOG_TIMER_ID, boost::bind(&CSysMemoryMonitor::OnSystemmanagerlogTimerExpiry, this, _1)))) { // LCOV_EXCL_BR_LINE 4:NSFW // NOLINT(whitespace/line_length)
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusBadConnection; // LCOV_EXCL_LINE 4:NSFW
- LOG_ERROR("m_systemmanagerlogTimer.Initialize() returned 'FALSE'"); // LCOV_EXCL_LINE 4:NSFW
- } else {
- if (m_SLMConfig.SLMTimerValue > 0) {
- m_memMonitorTimer.SetTime(m_SLMConfig.SLMTimerValue / 1000,
- m_SLMConfig.SLMTimerValue % 1000,
- m_SLMConfig.SLMTimerValue / 1000,
- m_SLMConfig.SLMTimerValue % 1000);
- } else {
- // default timer settings
- m_memMonitorTimer.SetTime(SS_MEMORY_TIMER_CONFIG_MS / 1000,
- SS_MEMORY_TIMER_CONFIG_MS % 1000,
- SS_MEMORY_TIMER_CONFIG_MS / 1000,
- SS_MEMORY_TIMER_CONFIG_MS % 1000);
-
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning. SLM monitor timer configuration invalid. Using default values.");
- }
-
- if (m_SLMConfig.SLMSystemmanagerLogIntervalMs > 0) {
- m_systemmanagerlogTimer.SetTime(m_SLMConfig.SLMSystemmanagerLogIntervalMs / 1000,
- m_SLMConfig.SLMSystemmanagerLogIntervalMs % 1000,
- m_SLMConfig.SLMSystemmanagerLogIntervalMs / 1000,
- m_SLMConfig.SLMSystemmanagerLogIntervalMs % 1000);
- } else {
- // default timer settings
- m_systemmanagerlogTimer.SetTime(SS_SYSTEMMANAGERLOG_TIMER_CONFIG_MS / 1000,
- SS_SYSTEMMANAGERLOG_TIMER_CONFIG_MS % 1000,
- SS_SYSTEMMANAGERLOG_TIMER_CONFIG_MS / 1000,
- SS_SYSTEMMANAGERLOG_TIMER_CONFIG_MS % 1000);
-
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__,
- " Warning. SLM FRAMEWORKUNIFIEDLOG timer configuration invalid. Using default values.");
- }
-
- if (FALSE == (m_memMonitorTimer.Start())) { // LCOV_EXCL_BR_LINE 4:NSFW
- // LCOV_EXCL_START 4:NSFW
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusFault;
- LOG_ERROR("m_memMonitorTimer.Start() returned 'FALSE'");
- // LCOV_EXCL_STOP 4:NSFW
- } else if (FALSE == (m_systemmanagerlogTimer.Start())) { // LCOV_EXCL_BR_LINE 4:NSFW
- // LCOV_EXCL_START 4:NSFW
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- l_eStatus = eFrameworkunifiedStatusFault;
- LOG_ERROR("m_systemmanagerlogTimer.Start() returned 'FALSE'");
- // LCOV_EXCL_STOP 4:NSFW
- } else {
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, " Success.");
- }
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-EFrameworkunifiedStatus CSysMemoryMonitor::CPUMemThreadStop(HANDLE f_hThread) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus;
-
- l_eStatus = StopTimers();
- LOG_STATUS_IF_ERRORED(l_eStatus, "StopTimers"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- if ((uint32_t) -1 != m_resmSession) {
- if (RESM_E_OK != RESM_Close(m_resmSession)) {
- l_eStatus = eFrameworkunifiedStatusFault;
- LOG_ERROR("RESM_Close()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-EFrameworkunifiedStatus CSysMemoryMonitor::StopTimers(void) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
-
- if (FALSE == (m_memMonitorTimer.Stop())) { // LCOV_EXCL_BR_LINE 4:NSFW's error
- l_eStatus = eFrameworkunifiedStatusFault;
- LOG_ERROR("m_memMonitorTimer.Stop() returned 'FALSE'"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
-
- if (FALSE == (m_systemmanagerlogTimer.Stop())) { // LCOV_EXCL_BR_LINE 4:NSFW's error
- l_eStatus = eFrameworkunifiedStatusFault;
- LOG_ERROR("m_systemmanagerlogTimer.Stop() returned 'FALSE'"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-EFrameworkunifiedStatus CSysMemoryMonitor::OnMemoryTimerExpiry(HANDLE hThread) {
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- RESM_STATUS_t l_resmStatus;
-
- if ((uint32_t) -1 == m_resmSession) {
- return eFrameworkunifiedStatusOK;
- }
-
- if (RESM_E_OK != RESM_GetStatus(m_resmSession, &l_resmStatus)) {
- LOG_ERROR("RESM_GetStatus()"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- l_eStatus = eFrameworkunifiedStatusFail;
- } else {
- m_sysMemInfoLast.FreeMemoryBytes = l_resmStatus.restMemSize;
- if ((m_sysMemInfoLast.FreeMemoryBytes * 1024)
- < (UI_32) m_SLMConfig.SLMThresholdValue) {
- m_SLMCheckCounter++;
-
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, " Low Memory detected(%d/%d).",
- m_SLMCheckCounter, m_SLMConfig.SLMMaxRetryCount);
-
- if (m_SLMCheckCounter >= m_SLMConfig.SLMMaxRetryCount) {
- l_eStatus = FrameworkunifiedSendParent(hThread,
- eSysMemThrdCmd_SYS_LOW_MEMORY, sizeof(m_sysMemInfoLast),
- &m_sysMemInfoLast);
- LOG_STATUS_IF_ERRORED(l_eStatus, // LCOV_EXCL_BR_LINE 15: marco defined in ns_logger_if.h // NOLINT(whitespace/line_length)
- "FrameworkunifiedSendParent(eSysMemThrdCmd_SYS_LOW_MEMORY)"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
-
- l_eStatus = StopTimers();
- LOG_STATUS_IF_ERRORED(l_eStatus, "StopTimers"); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- } else {
- m_SLMCheckCounter = 0;
- }
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-EFrameworkunifiedStatus CSysMemoryMonitor::OnSystemmanagerlogTimerExpiry(HANDLE hThread) {
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "+");
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- UI_32 l_freeMemoryObfuscated;
- UI_32 l_totalMemoryObfuscated;
-
- l_freeMemoryObfuscated = BitReverse32(m_sysMemInfoLast.FreeMemoryBytes);
- l_totalMemoryObfuscated = BitReverse32(m_sysMemInfoLast.TotalMemoryBytes);
-
- // Print to ZONE_WARN as per IAT requirement see WI 219056.
- FRAMEWORKUNIFIEDLOG(ZONE_WARN, __FUNCTION__, "FM: [%d/%d].", l_freeMemoryObfuscated,
- l_totalMemoryObfuscated);
-
- static int count = 0;
-
- if (!(count %= 2)) {
- CHAR l_format[256];
- uint32_t timebuf;
- uint8_t status;
- struct tm gmt;
- struct tm local;
- Clock_getSystemTimeY2K38(&timebuf, &status);
- Clock_CnvSecToDateY2K38(&timebuf, &gmt);
- Clock_getLocalTimeY2K38(&timebuf, &local);
-
- sprintf(l_format, " G%02d %02d%02d%02d L%02d %02d%02d%02d", gmt.tm_mday, // NOLINT
- gmt.tm_hour, gmt.tm_min, gmt.tm_sec, local.tm_mday,
- local.tm_hour, local.tm_min, local.tm_sec);
-
- FRAMEWORKUNIFIEDLOG(ZONE_STATE, __FUNCTION__, "%s", l_format);
- }
-
- count++;
-
- FRAMEWORKUNIFIEDLOG(ZONE_PERIODIC_FUNC, __FUNCTION__, "-");
- return (l_eStatus);
-}
-
-EFrameworkunifiedStatus CSysMemoryMonitor::OnAvailability(HANDLE hThread) {
- if (FrameworkunifiedIsServiceAvailable(hThread)) {
- if (m_resmSession == (uint32_t) -1) {
- if (RESM_E_OK != RESM_Open(NULL, &m_resmSession)) {
- m_resmSession = -1;
- SS_ASERT(0); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
- }
- }
- return eFrameworkunifiedStatusOK;
-}
-
-UI_32 CSysMemoryMonitor::GetSystemRamSize(void) {
- UI_32 l_ramTotalBytes = 0;
- std::ifstream l_sFile("/proc/meminfo");
-
- if (l_sFile.fail()) { // LCOV_EXCL_BR_LINE 5: Standard lib error
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Open /proc/meminfo");
- } else {
- ssize_t l_position;
- std::string l_str;
-
- while (getline(l_sFile, l_str)) {
-
-// if (std::string::npos
-// != (l_position = static_cast<unsigned int>(l_str.find("MemTotal:", 0)))) {
- if (0 <= (l_position = l_str.find("MemTotal:", 0))) { // LCOV_EXCL_BR_LINE 200:linux system information
-
- l_str.erase(l_position, l_position + strlen("MemTotal:")); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- if (std::string::npos != (l_position = static_cast<unsigned int>(l_str.find("kB", 0)))) { // LCOV_EXCL_BR_LINE 200:linux system information
- l_str.erase(l_position, l_position + strlen("kB")); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- std::istringstream l_istr(l_str); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- l_istr >> l_ramTotalBytes;
-
- break;
- }
- }
- }
-
- return (l_ramTotalBytes);
-}
-
-UI_32 CSysMemoryMonitor::BitReverse32(UI_32 f_val) {
- // Don't print FRAMEWORKUNIFIEDLOG(ZONE_FUNC) to prevent obfuscation method from being revealed.
- f_val = (((f_val & 0xaaaaaaaa) >> 1) | ((f_val & 0x55555555) << 1));
- f_val = (((f_val & 0xcccccccc) >> 2) | ((f_val & 0x33333333) << 2));
- f_val = (((f_val & 0xf0f0f0f0) >> 4) | ((f_val & 0x0f0f0f0f) << 4));
- f_val = (((f_val & 0xff00ff00) >> 8) | ((f_val & 0x00ff00ff) << 8));
- f_val = (f_val >> 16) | (f_val << 16);
- return (f_val);
-}
diff --git a/systemservice/system_manager/server/src/systemmanager_application.cpp b/systemservice/system_manager/server/src/systemmanager_application.cpp
deleted file mode 100755
index 506bb2c..0000000
--- a/systemservice/system_manager/server/src/systemmanager_application.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief This file contains the standard set functions called by the NS
-// dispatcher on application initialization, cleanup and wakeup.
-///
-///////////////////////////////////////////////////////////////////////////////
-
-#include <native_service/frameworkunified_application.h>
-#include <native_service/frameworkunified_framework_if.h>
-#include <native_service/frameworkunified_service_protocol.h>
-#include <system_service/ss_templates.h>
-
-#include "ss_sm_systemmanagerlog.h"
-#include "ss_system_manager.h"
-
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <errno.h>
-
-//////////////////////////////////////////
-// Function : FrameworkunifiedOnInitialization
-//////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnInitialization(HANDLE hApp) {
- EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- eStatus = CSystemManager::GetInstance().Initialize(hApp);
- struct rlimit setrl = {RLIM_INFINITY, RLIM_INFINITY};
- struct rlimit getrl = {};
- int ret = prlimit(getpid(), RLIMIT_MSGQUEUE, &setrl, &getrl);
- if (ret != 0) {
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "prlimit ret%d", ret);
- FRAMEWORKUNIFIEDLOG(ZONE_ERR, __FUNCTION__, "Previous limits: soft=%lld; hard=%lld", (long long) getrl.rlim_cur,
- (long long) getrl.rlim_max);
- }
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eStatus;
-}
-
-//////////////////////////////////////////
-// Function : FrameworkunifiedOnWakeup
-//////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnWakeup(HANDLE hApp) {
- EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eStatus;
-}
-
-//////////////////////////////////////////
-// Function : FrameworkunifiedOnShutdown
-//////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnShutdown(HANDLE hApp) {
- EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eStatus;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// FrameworkunifiedOnDestroy
-/// \todo Add behavior to this function
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnDestroy(HANDLE hApp) { // LCOV_EXCL_START 14:Resident process, not called by NSFW
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eStatus;
-}
-// LCOV_EXCL_STOP
-
-////////////////////////////////////////////////////////////////////////////////////////////
-/// FrameworkunifiedOnEShutdown
-/// \todo Add behavior to this function
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus FrameworkunifiedOnEShutdown(HANDLE hApp) {
- EFrameworkunifiedStatus eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eStatus;
-}
-
-EFrameworkunifiedStatus FrameworkunifiedOnDebugDump(HANDLE hApp) { // LCOV_EXCL_START 7:Debug code
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- CSystemManager* l_instance = &CSystemManager::GetInstance();
- if (l_instance !=NULL) {
- l_instance->SystemManagerDebugDump(hApp);
- } else {
- l_eStatus = eFrameworkunifiedStatusInvldHandle;
- LOG_STATUS(l_eStatus, "Unable to acquire SM instance. Debug Dump handler not called."); // LCOV_EXCL_BR_LINE 15: marco defined in ss_templates.h // NOLINT(whitespace/line_length)
- }
-
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-// LCOV_EXCL_STOP
-
-/**
- * EFrameworkunifiedStatus FrameworkunifiedOnStart(HANDLE hApp)
- * @brief Used to .
- *
- * @param hApp Handle to the SS_Power Framework Obj.
- *
- * @return method status of completion or failure.
-*/
-EFrameworkunifiedStatus FrameworkunifiedOnStart(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "This method has not been implemented, return: eFrameworkunifiedStatusOK!");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-/**
- * EFrameworkunifiedStatus FrameworkunifiedOnStop(HANDLE hApp)
- * @brief Used to .
- *
- * @param hApp Handle to the SS_Power Framework Obj.
- *
- * @return method status of completion or failure.
-*/
-EFrameworkunifiedStatus FrameworkunifiedOnStop(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "This method has not been implemented, return: eFrameworkunifiedStatusOK!");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-/**
- * EFrameworkunifiedStatus FrameworkunifiedOnPreStart(HANDLE h_app)
- *
- * @param h_app Handle to the SS_Power Framework Obj.
- *
- * @return method status of completion or failure.
- */
-
-EFrameworkunifiedStatus FrameworkunifiedOnPreStart(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "This method has not been implemented, return: eFrameworkunifiedStatusOK!");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-/**
- * EFrameworkunifiedStatus FrameworkunifiedOnPreStop(HANDLE h_app)
- *
- * @param h_app Handle to the SS_Power Framework Obj.
- *
- * @return method status of completion or failure.
- */
-
-EFrameworkunifiedStatus FrameworkunifiedOnPreStop(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "This method has not been implemented, return: eFrameworkunifiedStatusOK!");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-/**
- * EFrameworkunifiedStatus FrameworkunifiedOnBackgroundStart(HANDLE h_app)
- *
- * @param h_app Handle to the SS_Power Framework Obj.
- *
- * @return method status of completion or failure.
- */
-
-EFrameworkunifiedStatus FrameworkunifiedOnBackgroundStart(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "This method has not been implemented, return: eFrameworkunifiedStatusOK!");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-/**
- * EFrameworkunifiedStatus FrameworkunifiedOnBackgroundStop(HANDLE h_app)
- *
- * @param h_app Handle to the SS_Power Framework Obj.
- *
- * @return method status of completion or failure.
- */
-
-EFrameworkunifiedStatus FrameworkunifiedOnBackgroundStop(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "This method has not been implemented, return: eFrameworkunifiedStatusOK!");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-/**
- * EFrameworkunifiedStatus FrameworkunifiedCreateStateMachine(HANDLE hApp)
- * @brief Used to .
- *
- * @param hApp Handle to the SS_Power Framework Obj.
- *
- * @return method status of completion or failure.
-*/
-EFrameworkunifiedStatus FrameworkunifiedCreateStateMachine(HANDLE hApp) {
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
- FRAMEWORKUNIFIEDLOG(ZONE_INFO, __FUNCTION__, "This method has not been implemented, return: eFrameworkunifiedStatusOK!");
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return eFrameworkunifiedStatusOK;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-///
-///
-////////////////////////////////////////////////////////////////////////////////////////////
-EFrameworkunifiedStatus SystemmanagerCloseApplication(HANDLE hApp) {
- EFrameworkunifiedStatus l_eStatus = eFrameworkunifiedStatusOK;
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "+");
-
- l_eStatus = CSystemManager::GetInstance().CloseApplication(hApp);
- FRAMEWORKUNIFIEDLOG(ZONE_FUNC, __FUNCTION__, "-");
- return l_eStatus;
-}
-// EOF
-
diff --git a/systemservice/system_manager/server/src/systemmanager_main.cpp b/systemservice/system_manager/server/src/systemmanager_main.cpp
deleted file mode 100755
index d12aecc..0000000
--- a/systemservice/system_manager/server/src/systemmanager_main.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-///////////////////////////////////////////////////////////////////////////////
-/// \ingroup tag_SystemManager
-/// \brief Application entry point.
-///
-///////////////////////////////////////////////////////////////////////////////
-#include <system_service/ss_system_if.h>
-#include <native_service/frameworkunified_dispatcher.h>
-#include <native_service/ns_version_if.h>
-#include <system_service/ss_services.h>
-#include <system_service/ss_string_maps.h>
-#include <system_service/ss_version.h>
-#include <system_service/ss_system_types.h>
-#include <stdio.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <cstdlib>
-#include <fstream>
-
-#include "ss_sm_systemmanagerlog.h"
-#include "ss_system_manager.h"
-
-
-CFrameworkunifiedVersion g_FrameworkunifiedVersion(MAJORNO, MINORNO, REVISION);
-
-/// \brief: Name of the Queue that will be used to read data from.
-const CHAR AppName[] = SERVICE_SYSMANAGER;
-
-static EFrameworkunifiedStatus ArgumentParser(SI_32 cc, PCHAR str) {
- switch (cc) {
- case 'b':
- CSystemManager::m_bootOpt += str;
- break;
- default:
- break;
- }
- return eFrameworkunifiedStatusOK;
-}
-
-//////////////////////////////////////////
-// Function : main
-//////////////////////////////////////////
-int main(int argc, char *argv[]) {
- EFrameworkunifiedStatus l_eStatus;
- FrameworkunifiedDefaultCallbackHandler cbFuncs;
- FRAMEWORKUNIFIED_MAKE_DEFAULT_CALLBACK(cbFuncs); // LCOV_EXCL_BR_LINE 15: marco defined in ss-system_if.h // NOLINT(whitespace/line_length)
- int fd;
-/*
- if (geteuid() == 0) { // LCOV_EXCL_BR_LINE 200: process cannot be executed by root
- // LCOV_EXCL_START 200: process cannot be executed by root
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- printf("System cannot be started by root user!!\n"
- "You can start system: \n"
- " # sm > /dev/null &\n"
- " or \n"
- " # sm &\n");
- // LCOV_EXCL_STOP
- return -1;
- }
-*/
- fd = open("/dev/null", O_RDONLY); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (fd > 0) { // LCOV_EXCL_BR_LINE 5: open file error case.
- int ret;
- ret = dup2(fd, 0);
- if (ret == -1) perror("dup2"); // LCOV_EXCL_BR_LINE 5: dup2 error case.
- ret = close(fd); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- if (ret == -1) perror("close"); // LCOV_EXCL_BR_LINE 5: close error case.
- } else {
- // LCOV_EXCL_START 5: open file error case.
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- perror("open"); // LCOV_EXCL_LINE 5: open file error case.
- // LCOV_EXCL_STOP
- }
-
- // This allows overriding the already-passed-in System Manager's command
- // line arguments by having a file exist named
- // "/agl/rwdata/<this_file's_base_name>.args".
- // For example, when this file is named 'SS_SystemManager', then
- // if '/agl/rwdata/SS_SystemManager.args' is present, then the
- // '/agl/rwdata/SS_SystemManager.args' strings are read as command line
- // values and are passed to the FrameworkunifiedDispatcher() function.
- // -m
- // 0xFFFFFFFF,0xFFFFFFFF, where each bit represents a logging Zone.
- // -c
- // [configuration file..]
-
- struct sched_param l_schedParam;
-
- l_schedParam.sched_priority = PR_SS_SYSMANAGER;
-
- if (0 != sched_setscheduler(getpid(), SCHED_FIFO, &l_schedParam)) { // LCOV_EXCL_BR_LINE 5: sched_setscheduler error case. // NOLINT(whitespace/line_length)
- printf("ASSERT %d:%s\n", errno, strerror(errno)); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
-
- CustomCommandLineOptions l_tCmdLineOptions = { "b:", NULL, ArgumentParser }; // cShortOptions,rsv,callback
- {
- l_eStatus = FrameworkunifiedDispatcherWithArguments(AppName, argc, argv, &cbFuncs, &l_tCmdLineOptions); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- }
- printf("SM: Line %d: FrameworkunifiedDispatcherWithArguments() returned l_eStatus: '%d'/'%s'\n", // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
- __LINE__, l_eStatus, GetStr(l_eStatus).c_str()); // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
-
- return l_eStatus;
-} // LCOV_EXCL_BR_LINE 11:unexpected branch // NOLINT(whitespace/line_length)
diff --git a/systemservice/system_manager/server/version.txt b/systemservice/system_manager/server/version.txt
deleted file mode 100755
index 7fe8299..0000000
--- a/systemservice/system_manager/server/version.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-AGL Sample
-20191026_release