So, 8 MB instead of 8192 kB, 8 GB instead of 8192 MB.

Same principle as in 
c43afb47<http://git.savannah.nongnu.org/cgit/dmidecode.git/commit/?id=c43afb47fcbadabe2655fe7863a1e2ea9af1446c>
 applied to more fields.

commit abaa01ee9516bee7e4e872d9d01c3326f344fdb4
Author: Deomid "rojer" Ryabkov <[email protected]>
Date:   Mon Aug 19 05:45:15 2019 -0700

    Use larger units for memory device and BIOS size.
    
    So, 8 MB instead of 8192 kB, 8 GB instead of 8192 MB.
    
    Same principle as in http://git.savannah.nongnu.org/cgit/dmidecode.git/commit/?id=c43afb47fcbadabe2655fe7863a1e2ea9af1446c applied to more fields.

diff --git a/dmidecode.c b/dmidecode.c
index 21bfd65..ec4ac5b 100644
--- a/dmidecode.c
+++ b/dmidecode.c
@@ -317,10 +317,12 @@ static void dmi_bios_rom_size(u8 code1, u16 code2)
 		"MB", "GB", out_of_spec, out_of_spec
 	};
 
-	if (code1 != 0xFF)
-		printf(" %u kB", (code1 + 1) << 6);
-	else
+	if (code1 != 0xFF) {
+		u64 s = { .l = (code1 + 1) << 6 };
+		dmi_print_memory_size(s, 1);
+	} else {
 		printf(" %u %s", code2 & 0x3FFF, unit[code2 >> 14]);
+	}
 }
 
 static void dmi_bios_characteristics(u64 code, const char *prefix)
@@ -2370,12 +2372,10 @@ static void dmi_memory_device_size(u16 code)
 		printf(" No Module Installed");
 	else if (code == 0xFFFF)
 		printf(" Unknown");
-	else
-	{
-		if (code & 0x8000)
-			printf(" %u kB", code & 0x7FFF);
-		else
-			printf(" %u MB", code);
+	else {
+		u64 s = { .l = code & 0x7FFF };
+		if ((code & 0x8000) == 0) s.l <<= 10;
+		dmi_print_memory_size(s, 1);
 	}
 }
 
_______________________________________________
https://lists.nongnu.org/mailman/listinfo/dmidecode-devel

Reply via email to