From aa0937c30834bf3f9e15e26eebe38a451bf68ac0 Mon Sep 17 00:00:00 2001
From: Corinna Vinschen <corinna@vinschen.de>
Date: Tue, 20 Oct 2009 15:26:33 +0000
Subject: [PATCH] 	* cygcheck.cc (dump_sysinfo): Update with latest NT
 6.1 versions.

---
 winsup/utils/ChangeLog   |   4 ++
 winsup/utils/cygcheck.cc | 119 ++++++++++++++++++++++++---------------
 2 files changed, 78 insertions(+), 45 deletions(-)

diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog
index 00d61bab4..825769f0c 100644
--- a/winsup/utils/ChangeLog
+++ b/winsup/utils/ChangeLog
@@ -1,3 +1,7 @@
+2009-10-20  Corinna Vinschen  <corinna@vinschen.de>
+
+	* cygcheck.cc (dump_sysinfo): Update with latest NT 6.1 versions.
+
 2009-10-15  Corinna Vinschen  <corinna@vinschen.de>
 
 	* cygpath.cc (get_special_folder): Fetch path as WCHAR and convert
diff --git a/winsup/utils/cygcheck.cc b/winsup/utils/cygcheck.cc
index 716db5a46..e0c8a3ac0 100644
--- a/winsup/utils/cygcheck.cc
+++ b/winsup/utils/cygcheck.cc
@@ -1265,56 +1265,85 @@ dump_sysinfo ()
 			      &prod))
 	    {
 #define       PRODUCT_UNLICENSED 0xabcdabcd
-#define       PRODUCT_HYPERV 0x2a
+#define       PRODUCT_ULTIMATE_E 0x00000047
 	      const char *products[] =
 	        {
-		  "",
-		  " Ultimate",
-		  " Home Basic",
-		  " Home Premium",
-		  " Enterprise",
-		  " Home Basic N",
-		  " Business",
-		  " Server Standard",
-		  " Server Datacenter",
-		  " Small Business Server",
-		  " Server Enterprise",
-		  " Starter",
-		  " Server Datacenter Core",
-		  " Server Standard Core",
-		  " Server Enterprise Core",
-		  " Server Enterprise for Itanium-based Systems",
-		  " Business N",
-		  " Web Server",
-		  " HPC Edition",
-		  " Home Server",
-		  " Storage Server Express",
-		  " Storage Server Standard",
-		  " Storage Server Workgroup",
-		  " Storage Server Enterprise",
-		  " for Windows Essential Server Solutions",
-		  " Small Business Server Premium",
-		  " Home Premium N",
-		  " Enterprise N",
-		  " Ultimate N",
-		  " Web Server Core",
-		  " Essential Business Server Management Server",
-		  " Essential Business Server Security Server"
-		  " Essential Business Server Messaging Server",
-		  " Server Foundation",
-		  "",
-		  " without Hyper-V for Windows Essential Server Solutions",
-		  " Server Standard without Hyper-V",
-		  " Server Datacenter without Hyper-V",
-		  " Server Enterprise without Hyper-V",
-		  " Server Datacenter Core without Hyper-V",
-		  " Server Standard Core without Hyper-V",
-		  " Server Enterprise Core without Hyper-V",
-		  " Hyper-V Server"
+ /* 0x00000000 */ "",
+ /* 0x00000001 */ " Ultimate",
+ /* 0x00000002 */ " Home Basic",
+ /* 0x00000003 */ " Home Premium",
+ /* 0x00000004 */ " Enterprise",
+ /* 0x00000005 */ " Home Basic N",
+ /* 0x00000006 */ " Business",
+ /* 0x00000007 */ " Server Standard",
+ /* 0x00000008 */ " Server Datacenter",
+ /* 0x00000009 */ " Small Business Server",
+ /* 0x0000000a */ " Server Enterprise",
+ /* 0x0000000b */ " Starter",
+ /* 0x0000000c */ " Server Datacenter Core",
+ /* 0x0000000d */ " Server Standard Core",
+ /* 0x0000000e */ " Server Enterprise Core",
+ /* 0x0000000f */ " Server Enterprise for Itanium-based Systems",
+ /* 0x00000000 */ " Business N",
+ /* 0x00000011 */ " Web Server",
+ /* 0x00000012 */ " HPC Edition",
+ /* 0x00000013 */ " Home Server",
+ /* 0x00000014 */ " Storage Server Express",
+ /* 0x00000015 */ " Storage Server Standard",
+ /* 0x00000016 */ " Storage Server Workgroup",
+ /* 0x00000017 */ " Storage Server Enterprise",
+ /* 0x00000018 */ " for Windows Essential Server Solutions",
+ /* 0x00000019 */ "",
+ /* 0x0000001a */ " Home Premium N",
+ /* 0x0000001b */ " Enterprise N",
+ /* 0x0000001c */ " Ultimate N",
+ /* 0x0000001d */ " Web Server Core",
+ /* 0x0000001e */ " Essential Business Server Management Server",
+ /* 0x0000001f */ " Essential Business Server Security Server"
+ /* 0x00000020 */ " Essential Business Server Messaging Server",
+ /* 0x00000021 */ " Server Foundation",
+ /* 0x00000022 */ "",
+ /* 0x00000023 */ " without Hyper-V for Windows Essential Server Solutions",
+ /* 0x00000024 */ " Server Standard without Hyper-V",
+ /* 0x00000025 */ " Server Datacenter without Hyper-V",
+ /* 0x00000026 */ " Server Enterprise without Hyper-V",
+ /* 0x00000027 */ " Server Datacenter Core without Hyper-V",
+ /* 0x00000028 */ " Server Standard Core without Hyper-V",
+ /* 0x00000029 */ " Server Enterprise Core without Hyper-V",
+ /* 0x0000002a */ " Hyper-V Server",
+ /* 0x0000002b */ "",
+ /* 0x0000002c */ "",
+ /* 0x0000002d */ "",
+ /* 0x0000002e */ "",
+ /* 0x0000002f */ " Starter N",
+ /* 0x00000030 */ " Professional",
+ /* 0x00000031 */ " Proffesional N",
+ /* 0x00000032 */ "",
+ /* 0x00000033 */ "",
+ /* 0x00000034 */ "",
+ /* 0x00000035 */ "",
+ /* 0x00000036 */ "",
+ /* 0x00000037 */ "",
+ /* 0x00000038 */ "",
+ /* 0x00000039 */ "",
+ /* 0x0000003a */ "",
+ /* 0x0000003b */ "",
+ /* 0x0000003c */ "",
+ /* 0x0000003d */ "",
+ /* 0x0000003e */ "",
+ /* 0x0000003f */ "",
+ /* 0x00000040 */ "",
+ /* 0x00000041 */ "",
+ /* 0x00000042 */ " Starter E",
+ /* 0x00000043 */ " Home Basic E",
+ /* 0x00000044 */ " Home Premium E",
+ /* 0x00000045 */ " Professional E",
+ /* 0x00000046 */ " Enterprise E",
+ /* 0x00000047 */ " Ultimate E"
 		};
 	      if (prod == PRODUCT_UNLICENSED)
 	        strcat (osname, "Unlicensed");
-	      else if (prod > PRODUCT_HYPERV)
+	      else if (prod > PRODUCT_ULTIMATE_E)
 	        strcat (osname, "");
 	      else
 	        strcat (osname, products[prod]);