# HG changeset patch # User Pascal Bellard # Date 1250631325 -7200 # Node ID 044c8848261edc9fdddfa4bdb1a246c51a7f2330 # Parent 6dbc26198e7d422f9fffeed7dcdee7e91288c0bd syslinux: display ram size detected diff -r 6dbc26198e7d -r 044c8848261e syslinux/stuff/extra/ifmem.c --- a/syslinux/stuff/extra/ifmem.c Tue Aug 18 21:42:30 2009 +0200 +++ b/syslinux/stuff/extra/ifmem.c Tue Aug 18 23:35:25 2009 +0200 @@ -49,7 +49,7 @@ // Get memory size in Kb static unsigned long memory_size(void) { - unsigned long bytes = 0; + uint64_t bytes = 0; com32sys_t ireg, oreg; struct e820_data ed; @@ -94,19 +94,22 @@ { char *s; int i, j = 1; + unsigned long ram_size; for (s = argv[1]; *s && (*s < '0' || *s > '9'); s++); + openconsole(&dev_null_r, &dev_stdcon_w); if (argc < 4 || !*s) { - openconsole(&dev_null_r, &dev_stdcon_w); perror("\nUsage: ifmem.c32 size_KB boot_large_memory boot_small_memory\n"); return 1; } // find target according to ram size + ram_size = memory_size(); + printf("Total memory found %luK.\n",ram_size); for (i = 1; i + 2 < argc; ) { j = i++; // size - if (memory_size() >= strtoul(s, NULL, 0)) break; + if (ram_size >= strtoul(s, NULL, 0)) break; s = argv[++i]; }