Add processor family names from SMBIOS 2.6, 2.6.1 and 2.7.
---
 dmidecode.c |  160 +++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 83 insertions(+), 77 deletions(-)

--- a/dmidecode.c
+++ b/dmidecode.c
@@ -578,8 +578,8 @@ const char *dmi_processor_family(u8 code
 		"Pentium III",
 		"M1",
 		"M2",
-		NULL, /* 0x14 */
-		NULL,
+		"Celeron M", /* 0x14 */
+		"Pentium 4 HT",
 		NULL,
 		NULL, /* 0x17 */
 		"Duron",
@@ -598,10 +598,10 @@ const char *dmi_processor_family(u8 code
 		"Power PC 620",
 		"Power PC x704",
 		"Power PC 750",
-		NULL, /* 0x28 */
-		NULL,
-		NULL,
-		NULL,
+		"Core Duo", /* 0x28 */
+		"Core Duo Mobile",
+		"Core Solo Mobile",
+		"Atom",
 		NULL,
 		NULL,
 		NULL,
@@ -614,11 +614,11 @@ const char *dmi_processor_family(u8 code
 		"Alpha 21164a",
 		"Alpha 21264",
 		"Alpha 21364",
-		NULL, /* 0x38 */
-		NULL,
-		NULL,
-		NULL,
-		NULL,
+		"Turion II Ultra Dual-Core Mobile M", /* 0x38 */
+		"Turion II Dual-Core Mobile M",
+		"Athlon II Dual-Core M",
+		"Opteron 6100",
+		"Opteron 4100",
 		NULL,
 		NULL,
 		NULL, /* 0x3F */
@@ -695,13 +695,13 @@ const char *dmi_processor_family(u8 code
 		"Turion 64", 
 		"Dual-Core Opteron",
 		"Athlon 64 X2",
-		NULL, /* 0x89 */
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL, /* 0x8F */
+		"Turion 64 X2", /* 0x89 */
+		"Quad-Core Opteron",
+		"Third-Generation Opteron",
+		"Phenom FX",
+		"Phenom X4",
+		"Phenom X2",
+		"Athlon X2", /* 0x8F */
 		"PA-RISC",
 		"PA-RISC 8500",
 		"PA-RISC 8000",
@@ -719,21 +719,21 @@ const char *dmi_processor_family(u8 code
 		NULL,
 		NULL, /* 0x9F */
 		"V30",
-		NULL, /* 0xA1 */
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL, /* 0xAF */
+		"Quad-Core Xeon 3200", /* 0xA1 */
+		"Dual-Core Xeon 3000",
+		"Quad-Core Xeon 5300",
+		"Dual-Core Xeon 5100",
+		"Dual-Core Xeon 5000",
+		"Dual-Core Xeon LV",
+		"Dual-Core Xeon ULV",
+		"Dual-Core Xeon 7100",
+		"Quad-Core Xeon 5400",
+		"Quad-Core Xeon",
+		"Dual-Core Xeon 5200",
+		"Dual-Core Xeon 7200",
+		"Quad-Core Xeon 7300",
+		"Quad-Core Xeon 7400",
+		"Multi-Core Xeon 7400", /* 0xAF */
 		"Pentium III Xeon",
 		"Pentium III Speedstep",
 		"Pentium 4",
@@ -747,57 +747,57 @@ const char *dmi_processor_family(u8 code
 		"Celeron D",
 		"Pentium D",
 		"Pentium EE",
-		NULL, /* 0xBD */
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL, /* 0xC7 */
+		"Core Solo", /* 0xBD */
+		"Core 2 or K7",
+		"Core 2 Duo",
+		"Core 2 Solo",
+		"Core 2 Extreme",
+		"Core 2 Quad",
+		"Core 2 Extreme Mobile",
+		"Core 2 Duo Mobile",
+		"Core 2 Solo Mobile",
+		"Core i7",
+		"Dual-Core Celeron", /* 0xC7 */
 		"IBM390",
 		"G4",
 		"G5",
-		NULL, /* 0xCB */
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
-		NULL,
+		"ESA/390 G6", /* 0xCB */
+		"z/Architectur",
+		"Core i5",
+		"Core i3",
 		NULL,
 		NULL,
 		NULL,
+		"C7-M",
+		"C7-D",
+		"C7",
+		"Eden",
+		"Multi-Core Xeon",
+		"Dual-Core Xeon 3xxx",
+		"Quad-Core Xeon 3xxx",
+		"Nano",
+		"Dual-Core Xeon 5xxx",
+		"Quad-Core Xeon 5xxx",
+		NULL,
+		"Dual-Core Xeon 7xxx",
+		"Quad-Core Xeon 7xxx",
+		"Multi-Core Xeon 7xxx",
+		"Multi-Core Xeon 3400",
 		NULL,
 		NULL,
 		NULL,
 		NULL,
 		NULL,
+		"Embedded Opteron Quad-Core",
+		"Phenom Triple-Core",
+		"Turion Ultra Dual-Core Mobile",
+		"Turion Dual-Core Mobile",
+		"Athlon Dual-Core",
+		"Sempron SI",
+		"Phenom II",
+		"Athlon II",
+		"Six-Core Opteron",
+		"Sempron M",
 		NULL,
 		NULL,
 		NULL,
@@ -903,15 +903,21 @@ static void dmi_processor_id(u8 type, u8
 			return;
 		}
 	}
-	else if((type>=0x0B && type<=0x13) /* Intel, Cyrix */
-	|| (type>=0xB0 && type<=0xB3) /* Intel */
+	else if((type>=0x0B && type<=0x15) /* Intel, Cyrix */
+	|| (type>=0x28 && type<=0x2B) /* Intel */
+	|| (type>=0xA1 && type<=0xB3) /* Intel */
 	|| type==0xB5 /* Intel */
-	|| (type>=0xB9 && type<=0xBC)) /* Intel */
+	|| (type>=0xB9 && type<=0xC7) /* Intel */
+	|| (type>=0xCD && type<=0xCE) /* Intel */
+	|| (type>=0xD2 && type<=0xDB) /* VIA, Intel */
+	|| (type>=0xDD && type<=0xE0)) /* Intel */
 		sig=1;
 	else if((type>=0x18 && type<=0x1D) /* AMD */
 	|| type==0x1F /* AMD */
+	|| (type>=0x38 && type<=0x3C) /* AMD */
+	|| (type>=0x83 && type<=0x8F) /* AMD */
 	|| (type>=0xB6 && type<=0xB7) /* AMD */
-	|| (type>=0x83 && type<=0x88)) /* AMD */
+	|| (type>=0xE6 && type<=0xEF)) /* AMD */
 		sig=2;
 	else if(type==0x01 || type==0x02)
 	{
