diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/debug_menu.c | 48 |
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)) |