From 1bd80255a8c5780b60f753a8e701802aebb5efea Mon Sep 17 00:00:00 2001 From: Toastman Date: Fri, 3 Jun 2011 18:01:48 +0700 Subject: [PATCH] Add flash size info --- release/src/router/httpd/misc.c | 42 ++++++++++++++++++++++++++++++ release/src/router/www/status-data.jsx | 1 + release/src/router/www/status-overview.asp | 2 +- 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/release/src/router/httpd/misc.c b/release/src/router/httpd/misc.c index 2546b35f4c..ed89b99bfc 100644 --- a/release/src/router/httpd/misc.c +++ b/release/src/router/httpd/misc.c @@ -353,6 +353,46 @@ static void print_ipv6_addrs(void) } #endif + +int get_flashsize() +{ +/* +# cat /proc/mtd +dev: size erasesize name +mtd0: 00020000 00010000 "pmon" +mtd1: 007d0000 00010000 "linux" +*/ + FILE *f; + char s[512]; + unsigned int size; + char partname[16]; + int found = 0; + + if ((f = fopen("/proc/mtd", "r")) != NULL) { + while (fgets(s, sizeof(s), f)) { + if (sscanf(s, "%*s %X %*s %16s", &size, partname) != 2) continue; + if (strcmp(partname, "\"linux\"") == 0) { + found = 1; + break; + } + } + fclose(f); + } + if (found) { + if ((size > 0x2000000) && (size < 0x4000000)) return 64; + else if ((size > 0x1000000) && (size < 0x2000000)) return 32; + else if ((size > 0x800000) && (size < 0x1000000)) return 16; + else if ((size > 0x400000) && (size < 0x800000)) return 8; + else if ((size > 0x200000) && (size < 0x400000)) return 4; + else if ((size > 0x100000) && (size < 0x200000)) return 2; + else return 1; + } + else { + return 0; + } +} + + void asp_sysinfo(int argc, char **argv) { struct sysinfo si; @@ -385,6 +425,7 @@ void asp_sysinfo(int argc, char **argv) "\tfreeswap: %ld,\n" "\ttotalfreeram: %ld,\n" "\tprocs: %d,\n" + "\tflashsize: %d,\n" "\tsystemtype: '%s',\n" "\tcpumodel: '%s',\n" "\tbogomips: '%s',\n" @@ -397,6 +438,7 @@ void asp_sysinfo(int argc, char **argv) mem.swaptotal, mem.swapfree, mem.maxfreeram, si.procs, + get_flashsize(), system_type, cpu_model, bogomips, diff --git a/release/src/router/www/status-data.jsx b/release/src/router/www/status-data.jsx index c5a49ff0be..6c9964006a 100644 --- a/release/src/router/www/status-data.jsx +++ b/release/src/router/www/status-data.jsx @@ -26,6 +26,7 @@ do { else if (last_wan_proto != nvram.wan_proto) { reloadPage(); } + stats.flashsize = sysinfo.flashsize+'MB'; stats.cpumhz = sysinfo.cpuclk+'MHz'; stats.systemtype = sysinfo.systemtype; stats.cpuload = ((sysinfo.loads[0] / 65536.0).toFixed(2) + ' / ' + diff --git a/release/src/router/www/status-overview.asp b/release/src/router/www/status-overview.asp index 4c8486eb42..065aa01f30 100644 --- a/release/src/router/www/status-overview.asp +++ b/release/src/router/www/status-overview.asp @@ -192,7 +192,7 @@ createFieldTable('', [ { title: 'Uptime', rid: 'uptime', text: stats.uptime }, { title: 'CPU Load (1 / 5 / 15 mins)', rid: 'cpu', text: stats.cpuload }, { title: 'Total / Free Memory', rid: 'memory', text: stats.memory }, - { title: 'Total / Free Swap', rid: 'swap', text: stats.swap, hidden: (stats.swap == '') } + { title: 'Total / Free Swap', rid: 'swap', text: stats.swap, hidden: (stats.swap == '') }, ]); -- 2.11.4.GIT