dmidecode-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [dmidecode] [PATCH] dmidecode: additions from smbios 2.6.1 spec upda


From: Jean Delvare
Subject: Re: [dmidecode] [PATCH] dmidecode: additions from smbios 2.6.1 spec update
Date: Fri, 28 Aug 2009 17:05:06 +0200

Hi Jarod,

On Thu, 27 Aug 2009 09:25:40 -0400, Jarod Wilson wrote:
> dmidecode: additions from smbios 2.6.1 spec update
> 
> Tested on an HP DL360G6 with LGA1366 socket cpus, PCI-E Gen 2 slots
> and DDR3 memory, no longer returns any <OUT OF SPEC> info.
> 
> Signed-off-by: Jarod Wilson <address@hidden>
> 

Review:

> ---
>  dmidecode.c |   49 ++++++++++++++++++++++++++++++++++++++++++-------
>  1 file changed, 42 insertions(+), 7 deletions(-)
> 
> diff -Naurp dmidecode-2.10.orig/dmidecode.c dmidecode-2.10/dmidecode.c
> --- dmidecode-2.10.orig/dmidecode.c   2009-08-27 09:20:45.933991764 -0400
> +++ dmidecode-2.10/dmidecode.c        2009-08-27 09:21:15.516869134 -0400
> @@ -361,7 +361,7 @@ static void dmi_system_uuid(const u8 *p,
>  
>  static const char *dmi_system_wake_up_type(u8 code)
>  {
> -     /* 3.3.2.1 */
> +     /* 3.3.2.2 */
>       static const char *type[] = {
>               "Reserved", /* 0x00 */
>               "Other",
> @@ -719,6 +719,12 @@ static const char *dmi_processor_family(
>               { 0xA9, "Quad-Core Xeon 5400" }, /* From CIM_Processor.Family */
>               { 0xAA, "Quad-Core Xeon" }, /* From CIM_Processor.Family */
>  
> +             { 0xAB, "Dual-Core Xeon 5200" },
> +             { 0xAC, "Dual-Core Xeon 7200" },
> +             { 0xAD, "Quad-Core Xeon 7300" },
> +             { 0xAE, "Quad-Core Xeon 7400" },
> +             { 0xAF, "Multi-Core Xeon 7400" },
> +
>               { 0xB0, "Pentium III Xeon" },
>               { 0xB1, "Pentium III Speedstep" },
>               { 0xB2, "Pentium 4" },
> @@ -741,6 +747,8 @@ static const char *dmi_processor_family(
>               { 0xC3, "Core 2 Extreme Mobile" }, /* From CIM_Processor.Family 
> */
>               { 0xC4, "Core 2 Duo Mobile" }, /* From CIM_Processor.Family */
>               { 0xC5, "Core 2 Solo Mobile" }, /* From CIM_Processor.Family */
> +             { 0xC6, "Core i7" },
> +             { 0xC7, "Dual-Core Celeron" },
>  
>               { 0xC8, "IBM390" },
>               { 0xC9, "G4" },
> @@ -753,6 +761,17 @@ static const char *dmi_processor_family(
>               { 0xD4, "C7" },
>               { 0xD5, "Eden" },
>  
> +             { 0xD6, "Multi-Core Xeon" },
> +             { 0xD7, "Dual-Core Xeon 3xxx" },
> +             { 0xD8, "Quad-Core Xeon 3xxx" },
> +
> +             { 0xDA, "Dual-Core Xeon 5xxx" },
> +             { 0xDB, "Quad-Core Xeon 5xxx" },
> +
> +             { 0xDD, "Dual-Core Xeon 7xxx" },
> +             { 0xDD, "Quad-Core Xeon 7xxx" },
> +             { 0xDD, "Multi-Core Xeon 7xxx" },
> +
>               { 0xE6, "Embedded Opteron Quad-Core" }, /* From 
> CIM_Processor.Family */
>               { 0xE7, "Phenom Triple-Core" }, /* From CIM_Processor.Family */
>               { 0xE8, "Turion Ultra Dual-Core Mobile" }, /* From 
> CIM_Processor.Family */
> @@ -1383,10 +1402,15 @@ static const char *dmi_cache_associativi
>               "4-way Set-associative",
>               "Fully Associative",
>               "8-way Set-associative",
> -             "16-way Set-associative" /* 0x08 */
> +             "16-way Set-associative"
> +             "12-way Set-associative"
> +             "24-way Set-associative"
> +             "32-way Set-associative"
> +             "48-way Set-associative"
> +             "64-way Set-associative" /* 0x0D */

There's a bug here: you forgot the trailing comma at the end of each
line, so the compiler will see a single string. This string-splitting
feature of the C language is also a call for bugs, it seems.

>       };
>  
> -     if (code >= 0x01 && code <= 0x08)
> +     if (code >= 0x01 && code <= 0x0D)
>               return type[code - 0x01];
>       return out_of_spec;
>  }
> @@ -1544,12 +1568,18 @@ static const char *dmi_slot_type(u8 code
>               "PCI Express x2",
>               "PCI Express x4",
>               "PCI Express x8",
> -             "PCI Express x16" /* 0xAA */
> +             "PCI Express x16", /* 0xAA */
> +             "PCI Express Gen 2",
> +             "PCI Express Gen 2 x1",
> +             "PCI Express Gen 2 x2",
> +             "PCI Express Gen 2 x4",
> +             "PCI Express Gen 2 x8",
> +             "PCI Express Gen 2 x16", /* 0xB0 */
>       };
>  
>       if (code >= 0x01 && code <= 0x13)
>               return type[code - 0x01];
> -     if (code >= 0xA0 && code <= 0xAA)
> +     if (code >= 0xA0 && code <= 0xB0)
>               return type_0xA0[code - 0xA0];
>       return out_of_spec;
>  }
> @@ -2120,10 +2150,15 @@ static const char *dmi_memory_device_typ
>               "RDRAM",
>               "DDR",
>               "DDR2",
> -             "DDR2 FB-DIMM" /* 0x14 */
> +             "DDR2 FB-DIMM",
> +             "Reserved",
> +             "Reserved",
> +             "Reserved",
> +             "DDR3",
> +             "FBD2", /* 0x19 */
>       };
>  
> -     if (code >= 0x01 && code <= 0x14)
> +     if (code >= 0x01 && code <= 0x19)
>               return type[code - 0x01];
>       return out_of_spec;
>  }
> 
> 

Other than that, it looks good to me (although I admit I did not
cross-check with the SMBIOS specifications). Thanks for your
contribution!

-- 
Jean Delvare




reply via email to

[Prev in Thread] Current Thread [Next in Thread]