summaryrefslogtreecommitdiff
path: root/apps/debug_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/debug_menu.c')
-rw-r--r--apps/debug_menu.c48
1 files changed, 47 insertions, 1 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index 800e485ce3..33970da581 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -2242,6 +2242,51 @@ static bool cpu_boost_log(void)
lcd_setfont(FONT_UI);
return false;
}
+
+static bool cpu_boost_log_dump(void)
+{
+ int fd;
+#if CONFIG_RTC
+ struct tm *nowtm;
+ char fname[MAX_PATH];
+#endif
+
+ int count = cpu_boost_log_getcount();
+ char *str = cpu_boost_log_getlog_first();
+
+ splashf(HZ, "Boost Log File Dumped");
+
+ /* nothing to print ? */
+ if(count == 0)
+ return false;
+
+#if CONFIG_RTC
+ nowtm = get_time();
+ snprintf(fname, MAX_PATH, "%s/boostlog_%04d%02d%02d%02d%02d%02d.txt", ROCKBOX_DIR,
+ nowtm->tm_year + 1900, nowtm->tm_mon + 1, nowtm->tm_mday,
+ nowtm->tm_hour, nowtm->tm_min, nowtm->tm_sec);
+ fd = open(fname, O_CREAT|O_WRONLY|O_TRUNC);
+#else
+ fd = open(ROCKBOX_DIR "/boostlog.txt", O_CREAT|O_WRONLY|O_TRUNC, 0666);
+#endif
+ if(-1 != fd) {
+ for (int i = 0; i < count; i++)
+ {
+ if (!str)
+ str = cpu_boost_log_getlog_next();
+ if (str)
+ {
+ fdprintf(fd, "%s\n", str);
+ str = NULL;
+ }
+ }
+
+ close(fd);
+ return true;
+ }
+
+ return false;
+}
#endif
#if (defined(HAVE_WHEEL_ACCELERATION) && (CONFIG_KEYPAD==IPOD_4G_PAD) \
@@ -2604,7 +2649,8 @@ static const struct {
#endif
#endif /* HAVE_USBSTACK */
#ifdef CPU_BOOST_LOGGING
- {"cpu_boost log",cpu_boost_log},
+ {"Show cpu_boost log",cpu_boost_log},
+ {"Dump cpu_boost log",cpu_boost_log_dump},
#endif
#if (defined(HAVE_WHEEL_ACCELERATION) && (CONFIG_KEYPAD==IPOD_4G_PAD) \
&& !defined(IPOD_MINI) && !defined(SIMULATOR))