Index: sysinfo.c =================================================================== RCS file: /cvs/gpe/base/gpe-conf/sysinfo.c,v retrieving revision 1.19 diff -u -r1.19 sysinfo.c --- sysinfo.c 8 Sep 2004 22:14:12 -0000 1.19 +++ sysinfo.c 25 Oct 2004 12:01:01 -0000 @@ -160,6 +160,7 @@ get_device_info() { t_deviceinfo result; + struct utsname uinfo; #ifdef __arm__ char **strv; int len = 0; @@ -173,6 +174,8 @@ result.ram = 0; result.flash = 0; + uname(&uinfo); + #ifdef __arm__ /* check mach type and model */ if (!access(P_IPAQ,F_OK)) @@ -235,6 +238,7 @@ #endif #ifdef __i386__ result.cpu = g_strdup(_("Intel x86 or compatible")); + result.model = g_strdup_printf("%s, %s", _("IBM type PC"), uinfo.machine); #endif #ifdef __mips__ result.cpu = g_strdup(_("Mips")); @@ -246,12 +250,13 @@ result.cpu = g_strdup(_("IBM Power or PowerPC")); #endif if (!result.model) - result.model = g_strdup(MACHINE); + result.model = g_strdup_printf("%s (%s)", uinfo.machine, MACHINE); #endif /* memory and flash size */ + system_memory(); - result.ram = meminfo.total / 1024 + 1; + result.ram = meminfo.total; result.flash = get_flash_size(); return result; } Index: storage.c =================================================================== RCS file: /cvs/gpe/base/gpe-conf/storage.c,v retrieving revision 1.17 diff -u -r1.17 storage.c --- storage.c 13 Sep 2004 12:00:01 -0000 1.17 +++ storage.c 25 Oct 2004 12:01:01 -0000 @@ -54,41 +54,32 @@ return FS_T_UNKNOWN; } -/* from minisys */ int system_memory (void) { - u_int64_t my_mem_used, my_mem_max; - u_int64_t my_swap_max; + unsigned long mem_free, mem_total; - static int mem_delay = 0; FILE *mem; - static u_int64_t aa, ab, ac, ad, ae, af, ag, ah; - /* put this in permanent storage instead of stack */ - static char not_needed[2048]; - if (mem_delay-- <= 0) + static char line[255]; + mem = fopen ("/proc/meminfo", "r"); + if (mem) { - mem = fopen ("/proc/meminfo", "r"); - fgets (not_needed, 2048, mem); - - fscanf (mem, "%*s %Ld %Ld %Ld %Ld %Ld %Ld", &aa, &ab, &ac, - &ad, &ae, &af); - fscanf (mem, "%*s %Ld %Ld", &ag, &ah); + while (fgets (line, 255, mem)) + { + if (g_str_has_prefix(line, "MemTotal")) + sscanf(line, "%*s %lu %*s", &mem_total); + else if (g_str_has_prefix(line, "MemFree")) + { + sscanf(line, "%*s %lu %*s", &mem_free); + break; + } + } fclose (mem); - mem_delay = 25; - - /* calculate it */ - my_mem_max = aa; /* memory.total; */ - my_swap_max = ag; /* swap.total; */ - - my_mem_used = ah + ab - af - ae; - - meminfo.total = my_mem_max / 1024; - meminfo.used = my_mem_used / 1024; - meminfo.avail = (my_mem_max - my_mem_used) / 1024; - return 0; + meminfo.total = mem_total / 1024; + meminfo.used = (mem_total - mem_free) / 1024; + meminfo.avail = mem_free / 1024; } - return 1; + return 0; } @@ -183,13 +174,13 @@ /* TRANSLATORS: MB == Mega Bytes*/ sprintf (cnew2, "%s: %4.1f %s", _("Free memory"), ((float) meminfo.total - - (float) meminfo.used) / 1024.0, _("MB")); + (float) meminfo.used), _("MB")); gtk_label_set_markup (GTK_LABEL (meminfo.label3), cnew2); fstr = g_strdup_printf ("%s%s %4.1f %s %s", "", _("Total:"), - (float) meminfo.total / 1024.0, + (float) meminfo.total, _("MB"), ""); gtk_label_set_markup (GTK_LABEL (meminfo.label2), fstr); g_free (fstr); @@ -452,7 +443,7 @@ (float) meminfo.total); sprintf (cnew2, "%s: %4.1f %s", _("Free memory"), ((float) meminfo.total - - (float) meminfo.used) / 1024.0, _("MB")); + (float) meminfo.used), _("MB")); label1 = gtk_label_new (NULL); gtk_misc_set_alignment (GTK_MISC (label1), 0.0, 0.5); meminfo.label3 = label1; @@ -464,7 +455,7 @@ fstr = g_strdup_printf ("%s%s %4.1f %s %s", "", _("Total:"), - (float) meminfo.total / 1024.0, + (float) meminfo.total, _("MB"), ""); gtk_label_set_markup (GTK_LABEL (label1), fstr); g_free (fstr);