[Feature][T108][task-view-1735]API to obtain the restart reason
Only Configure: No
Affected branch: GSW_V1453
Affected module: ALL
Is it affected on IC: only ASR
Self-test: yes
Doc Update: no
Change-Id: I2a61d883045432c9d3d663ad517f867a6269e452
diff --git a/mbtk/test/libgsw_lib/gsw_pm_test.c b/mbtk/test/libgsw_lib/gsw_pm_test.c
index 933cf9e..49e69d2 100755
--- a/mbtk/test/libgsw_lib/gsw_pm_test.c
+++ b/mbtk/test/libgsw_lib/gsw_pm_test.c
@@ -27,21 +27,31 @@
int32_t (*gsw_pm_sdk_init)(GSW_PM_WAKEUPCALLBACK );
int32_t (*gsw_pm_enter_sleep)(const char *gsw_wakelock_name);
int32_t (*gsw_pm_exit_sleep)(const char *gsw_wakelock_name);
+int32_t (*gsw_get_modem_reset_reason)(int32_t *reset_reason);
void (*gsw_modem_log_sync)(void);
const char *tmp_name = "pm_test_lock";
-
void *dlHandle_pm;
char *lynqLib_pm = "/lib/libgsw_lib.so";
-void user_help(void)
-{
+const char *reset_reason_str[] = {
+ "Normal",
+ "Download",
+ "Power Off",
+ "Hardware",
+ "Command",
+ "Abnormal",
+ "Unknown"
+};
+
+void user_help(void) {
printf("\t1 autosleep_enable\n"
"\t2 autosleep_disenable \n"
"\t3 pm_sdk_init\n"
"\t4 pm_enter_sleep\n"
"\t5 pm_exit_sleep\n"
"\t6 modem_log_sync\n"
+ "\t7 get_modem_reset_reason\n"
"please input operator: >> ");
}
@@ -49,6 +59,7 @@
{
int ret;
int opt = 0;
+ int32_t reset_reason = 0;
dlHandle_pm = dlopen(lynqLib_pm, RTLD_NOW);
while(1)
{
@@ -126,7 +137,30 @@
printf("gsw_modem_log_sync success.\n");
return 0;
}
+ case 7:
+ {
+ gsw_get_modem_reset_reason = (int32_t(*)(int32_t*))dlsym(dlHandle_pm, "gsw_get_modem_reset_reason");
+ if (!gsw_get_modem_reset_reason)
+ {
+ fprintf(stderr, "dlsym error: %s\n", dlerror());
+ break;
+ }
+ ret = gsw_get_modem_reset_reason(&reset_reason);
+
+ if (ret == 0)
+ {
+ const char *reason = "Invalid Reason";
+ if (reset_reason >= 0 && reset_reason <= 6)
+ {
+ reason = reset_reason_str[reset_reason];
+ }
+ printf("Modem reset reason: %d (%s)\n", reset_reason, reason);
+ } else {
+ printf("Failed to get reset reason (error: %d)\n", ret);
+ }
+ break;
+ }
}
}
return 0;
-}
\ No newline at end of file
+}