]> git.proxmox.com Git - mirror_edk2.git/commitdiff
add in MiscSubClassPlatformDxe
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 27 Jun 2007 06:46:00 +0000 (06:46 +0000)
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 27 Jun 2007 06:46:00 +0000 (06:46 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2783 6f19259b-4bc3-4df7-8a09-765794883524

34 files changed:
Nt32Pkg/Include/Common/WinNTInclude.h
Nt32Pkg/MiscSubClassPlatformDxe/CommonHeader.h [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturer.uni [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturerData.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscBiosVendor.uni [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscBiosVendorData.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscBootInformationData.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscChassisManufacturer.uni [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscChassisManufacturerData.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscDevicePath.h [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscNumberOfInstallableLanguagesData.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscOemString.uni [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscOemStringData.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscPortInternalConnectorDesignator.uni [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscPortInternalConnectorDesignatorData.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscPortInternalConnectorDesignatorFunction.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscResetCapabilitiesData.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.dxs [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.h [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.inf [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.msa [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.uni [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriverDataTable.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriverEntryPoint.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemLanguageString.uni [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemLanguageStringData.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturer.uni [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturerData.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturerFunction.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemOptionString.uni [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemOptionStringData.c [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemSlotDesignation.uni [new file with mode: 0644]
Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemSlotDesignationData.c [new file with mode: 0644]
Nt32Pkg/Nt32.dsc

index a8d31c35186f2856ce957d15080d3351fccd5a4d..91daac6c3c25fc1d85586a9f0dd01dab0d795c0d 100644 (file)
@@ -28,7 +28,6 @@ Abstract:
 //\r
 #pragma warning(disable : 4115)\r
 #pragma warning(disable : 4201)\r
 //\r
 #pragma warning(disable : 4115)\r
 #pragma warning(disable : 4201)\r
-#pragma warning(disable : 4214)\r
 #pragma warning(disable : 4028)\r
 #pragma warning(disable : 4133)\r
 \r
 #pragma warning(disable : 4028)\r
 #pragma warning(disable : 4133)\r
 \r
@@ -65,7 +64,6 @@ Abstract:
 //\r
 #pragma warning(default : 4115)\r
 #pragma warning(default : 4201)\r
 //\r
 #pragma warning(default : 4115)\r
 #pragma warning(default : 4201)\r
-#pragma warning(default : 4214)\r
 \r
 \r
 #endif\r
 \r
 \r
 #endif\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/CommonHeader.h b/Nt32Pkg/MiscSubClassPlatformDxe/CommonHeader.h
new file mode 100644 (file)
index 0000000..ed104f7
--- /dev/null
@@ -0,0 +1,41 @@
+/**@file\r
+  Common header file shared by all source files.\r
+\r
+  This file includes package header files, library classes and protocol, PPI & GUID definitions.\r
+\r
+  Copyright (c) 2006 - 2007, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials\r
+   are licensed and made available under the terms and conditions of the BSD License\r
+   which accompanies this distribution. The full text of the license may be found at\r
+   http://opensource.org/licenses/bsd-license.php\r
+   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+**/\r
+\r
+#ifndef __COMMON_HEADER_H_\r
+#define __COMMON_HEADER_H_\r
+\r
+\r
+//\r
+// The package level header files this module uses\r
+//\r
+#include <PiDxe.h>\r
+#include <WinNtDxe.h>\r
+//\r
+// The protocols, PPI and GUID defintions for this module\r
+//\r
+//#include <Protocol/WinNtIo.h>\r
+//\r
+// The Library classes this module consumes\r
+//\r
+#include <Library/BaseLib.h>\r
+#include <Library/DebugLib.h>\r
+#include <Library/FrameworkHiiLib.h>\r
+#include <Library/UefiLib.h>\r
+#include <Library/UefiDriverEntryPoint.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/DevicePathLib.h>\r
+\r
+#endif\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturer.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturer.uni
new file mode 100644 (file)
index 0000000..6228072
Binary files /dev/null and b/Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturer.uni differ
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturerData.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscBaseBoardManufacturerData.c
new file mode 100644 (file)
index 0000000..b7594f7
--- /dev/null
@@ -0,0 +1,62 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscBaseBoardManufacturerData.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// Static (possibly build generated) Bios Vendor data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_BASE_BOARD_MANUFACTURER_DATA, MiscBaseBoardManufacturer) = {\r
+  STRING_TOKEN(STR_MISC_BASE_BOARD_MANUFACTURER),\r
+  STRING_TOKEN(STR_MISC_BASE_BOARD_PRODUCT_NAME),\r
+  STRING_TOKEN(STR_MISC_BASE_BOARD_VERSION),\r
+  STRING_TOKEN(STR_MISC_BASE_BOARD_SERIAL_NUMBER),\r
+  STRING_TOKEN(STR_MISC_BASE_BOARD_ASSET_TAG),\r
+  STRING_TOKEN(STR_MISC_BASE_BOARD_CHASSIS_LOCATION),\r
+  {                         // BaseBoardFeatureFlags\r
+    1,                      // Motherboard\r
+    0,                      // RequiresDaughterCard\r
+    0,                      // Removable\r
+    1,                      // Replaceable,\r
+    0,                      // HotSwappable\r
+    0,                      // Reserved\r
+  },\r
+  EfiBaseBoardTypeUnknown,  // BaseBoardType\r
+  {                         // BaseBoardChassisLink\r
+    EFI_MISC_SUBCLASS_GUID, // ProducerName\r
+    1,                      // Instance\r
+    1,                      // SubInstance\r
+  },\r
+  0,                        // BaseBoardNumberLinks\r
+  {                         // LinkN\r
+    EFI_MISC_SUBCLASS_GUID, // ProducerName\r
+    1,                      // Instance\r
+    1,                      // SubInstance\r
+  },\r
+};\r
+\r
+/* eof - MiscBaseBoardManufacturerData.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscBiosVendor.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscBiosVendor.uni
new file mode 100644 (file)
index 0000000..ecade74
Binary files /dev/null and b/Nt32Pkg/MiscSubClassPlatformDxe/MiscBiosVendor.uni differ
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscBiosVendorData.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscBiosVendorData.c
new file mode 100644 (file)
index 0000000..f2363f3
--- /dev/null
@@ -0,0 +1,93 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscBiosVendorData.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// Static (possibly build generated) Bios Vendor data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_BIOS_VENDOR_DATA, MiscBiosVendor) = {\r
+  STRING_TOKEN(STR_MISC_BIOS_VENDOR),       // BiosVendor\r
+  STRING_TOKEN(STR_MISC_BIOS_VERSION),      // BiosVersion\r
+  STRING_TOKEN(STR_MISC_BIOS_RELEASE_DATE), // BiosReleaseDate\r
+  0xBABE, // BiosStartingAddress\r
+  {       // BiosPhysicalDeviceSize\r
+    2,    // Value\r
+    3,    // Exponent\r
+  },\r
+  {       // BiosCharacteristics1\r
+    0,    // Reserved1                         :2\r
+    0,    // Unknown                           :1\r
+    1,    // BiosCharacteristicsNotSupported   :1\r
+    0,    // IsaIsSupported                    :1\r
+    0,    // McaIsSupported                    :1\r
+    0,    // EisaIsSupported                   :1\r
+    0,    // PciIsSupported                    :1\r
+    0,    // PcmciaIsSupported                 :1\r
+    0,    // PlugAndPlayIsSupported            :1\r
+    0,    // ApmIsSupported                    :1\r
+    0,    // BiosIsUpgradable                  :1\r
+    0,    // BiosShadowingAllowed              :1\r
+    0,    // VlVesaIsSupported                 :1\r
+    0,    // EscdSupportIsAvailable            :1\r
+    0,    // BootFromCdIsSupported             :1\r
+    0,    // SelectableBootIsSupported         :1\r
+    0,    // RomBiosIsSocketed                 :1\r
+    0,    // BootFromPcmciaIsSupported         :1\r
+    0,    // EDDSpecificationIsSupported       :1\r
+    0,    // JapaneseNecFloppyIsSupported      :1\r
+    0,    // JapaneseToshibaFloppyIsSupported  :1\r
+    0,    // Floppy525_360IsSupported          :1\r
+    0,    // Floppy525_12IsSupported           :1\r
+    0,    // Floppy35_720IsSupported           :1\r
+    0,    // Floppy35_288IsSupported           :1\r
+    0,    // PrintScreenIsSupported            :1\r
+    0,    // Keyboard8042IsSupported           :1\r
+    0,    // SerialIsSupported                 :1\r
+    0,    // PrinterIsSupported                :1\r
+    0,    // CgaMonoIsSupported                :1\r
+    0,    // NecPc98                           :1\r
+    0,    // AcpiIsSupported                   :1\r
+    0,    // UsbLegacyIsSupported              :1\r
+    0,    // AgpIsSupported                    :1\r
+    0,    // I20BootIsSupported                :1\r
+    0,    // Ls120BootIsSupported              :1\r
+    0,    // AtapiZipDriveBootIsSupported      :1\r
+    0,    // Boot1394IsSupported               :1\r
+    0,    // SmartBatteryIsSupported           :1\r
+    0,    // BiosBootSpecIsSupported           :1\r
+    0,    // FunctionKeyNetworkBootIsSupported :1\r
+    0     // Reserved                          :22\r
+  },\r
+  {       // BiosCharacteristics2\r
+    0,    // BiosReserved                      :16\r
+    0,    // SystemReserved                    :16\r
+    0     // Reserved                          :32\r
+  },\r
+};\r
+\r
+/* eof - MiscBiosVendorData.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscBootInformationData.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscBootInformationData.c
new file mode 100644 (file)
index 0000000..8741468
--- /dev/null
@@ -0,0 +1,38 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscBootInformationData.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// Static (possibly build generated) Bios Vendor data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_BOOT_INFORMATION_STATUS_DATA, BootInformationStatus) = {\r
+  EfiBootInformationStatusNoError,  // BootInformationStatus\r
+  0                                 // BootInformationData\r
+};\r
+\r
+/* eof - MiscBootInformationData.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscChassisManufacturer.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscChassisManufacturer.uni
new file mode 100644 (file)
index 0000000..eac153a
Binary files /dev/null and b/Nt32Pkg/MiscSubClassPlatformDxe/MiscChassisManufacturer.uni differ
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscChassisManufacturerData.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscChassisManufacturerData.c
new file mode 100644 (file)
index 0000000..3e7d340
--- /dev/null
@@ -0,0 +1,50 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscChassisManufacturerData.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// Static (possibly build generated) Chassis Manufacturer data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_CHASSIS_MANUFACTURER_DATA, MiscChassisManufacturer) = {\r
+  STRING_TOKEN(STR_MISC_CHASSIS_MANUFACTURER),  // ChassisManufactrurer\r
+  STRING_TOKEN(STR_MISC_CHASSIS_VERSION),       // ChassisVersion\r
+  STRING_TOKEN(STR_MISC_CHASSIS_SERIAL_NUMBER), // ChassisSerialNumber\r
+  STRING_TOKEN(STR_MISC_CHASSIS_ASSET_TAG),     // ChassisAssetTag\r
+  {                               // ChassisTypeStatus\r
+    EfiMiscChassisTypeOther,      // ChassisType\r
+    0,                            // ChassisLockPresent\r
+    0                             // Reserved\r
+  },\r
+  EfiChassisStateOther,           // ChassisBootupState\r
+  EfiChassisStateOther,           // ChassisPowerSupplyState\r
+  EfiChassisStateOther,           // ChassisThermalState\r
+  EfiChassisSecurityStatusOther,  // ChassisSecurityState\r
+  0                               // ChassisOemDefined\r
+};\r
+\r
+/* eof - MiscChassisManufacaturerData.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscDevicePath.h b/Nt32Pkg/MiscSubClassPlatformDxe/MiscDevicePath.h
new file mode 100644 (file)
index 0000000..3880aa4
--- /dev/null
@@ -0,0 +1,180 @@
+/*++\r
\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscDevicePath.h\r
+\r
+Abstract:\r
+\r
+  Misc class required EFI Device Path definitions (Ports, slots & \r
+  onboard devices)\r
+\r
+--*/\r
+\r
+#ifndef _MISC_DEVICE_PATH_H\r
+#define _MISC_DEVICE_PATH_H\r
+\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#pragma pack(1)\r
+//\r
+// USB\r
+//\r
+\r
+/* For reference:\r
+#define USB1_1_STR  "ACPI(PNP0A03,0)/PCI(1D,0)."\r
+#define USB1_2_STR  "ACPI(PNP0A03,0)/PCI(1D,1)."\r
+#define USB1_3_STR  "ACPI(PNP0A03,0)/PCI(1D,2)."\r
+#define USB2_1_STR  "ACPI(PNP0A03,0)/PCI(1D,7)." \r
+*/\r
+\r
+//\r
+// #define acpi { 0x02, 0x01, 0x00, 0x0C, 0x0a0341d0, 0x00000000 }\r
+// #define pci( device,function)  { 0x01, 0x01, 0x00, 0x06, device, function }\r
+// #define end  { 0xFF, 0xFF, 0x00, 0x04 }\r
+//\r
+#define DP_ACPI \\r
+  { \\r
+    ACPI_DEVICE_PATH, ACPI_DP, (UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), (UINT8) \\r
+      ((sizeof (ACPI_HID_DEVICE_PATH)) >> 8), EISA_PNP_ID (0x0A03), 0 \\r
+  }\r
+#define DP_PCI(device, function) \\r
+  { \\r
+    HARDWARE_DEVICE_PATH, HW_PCI_DP, (UINT8) (sizeof (PCI_DEVICE_PATH)), (UINT8) \\r
+      ((sizeof (PCI_DEVICE_PATH)) >> 8), function, device \\r
+  }\r
+#define DP_END \\r
+  { \\r
+    END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE, END_DEVICE_PATH_LENGTH, 0 \\r
+  }\r
+\r
+#define DP_LPC(eisaid, function) \\r
+  { \\r
+    ACPI_DEVICE_PATH, ACPI_DP, (UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), (UINT8) \\r
+      ((sizeof (ACPI_HID_DEVICE_PATH)) >> 8), EISA_PNP_ID (eisaid), function \\r
+  }\r
+\r
+//\r
+// Shanmu >> moved to TianoDevicePath.h\r
+//\r
+\r
+/*\r
+typedef struct _USB_PORT_DEVICE_PATH\r
+{\r
+  ACPI_HID_DEVICE_PATH    PciRootBridgeDevicePath;\r
+  PCI_DEVICE_PATH      PciBusDevicePath;\r
+  EFI_DEVICE_PATH_PROTOCOL  EndDevicePath;\r
+} USB_PORT_DEVICE_PATH;\r
+\r
+\r
+//IDE ??I am not sure. Should this be ATAPI_DEVICE_PATH\r
+typedef struct _IDE_DEVICE_PATH\r
+{\r
+  ACPI_HID_DEVICE_PATH    PciRootBridgeDevicePath;\r
+  PCI_DEVICE_PATH      PciBusDevicePath;\r
+  EFI_DEVICE_PATH_PROTOCOL  EndDevicePath;\r
+} IDE_DEVICE_PATH;\r
+\r
+//RMC Connector\r
+typedef struct _RMC_CONN_DEVICE_PATH\r
+{\r
+  ACPI_HID_DEVICE_PATH    PciRootBridgeDevicePath;\r
+  PCI_DEVICE_PATH      PciBridgeDevicePath;\r
+  PCI_DEVICE_PATH      PciBusDevicePath;\r
+  EFI_DEVICE_PATH_PROTOCOL  EndDevicePath;\r
+} RMC_CONN_DEVICE_PATH;\r
+\r
+//static RMC_CONN_DEVICE_PATH mRmcConnDevicePath = { acpi, pci( 0x1E,0x00 ),pci( 0x0A,0x00 ), end };\r
+\r
+//RIDE\r
+typedef struct _RIDE_DEVICE_PATH\r
+{\r
+  ACPI_HID_DEVICE_PATH    PciRootBridgeDevicePath;\r
+  PCI_DEVICE_PATH      PciBridgeDevicePath;\r
+  PCI_DEVICE_PATH      PciBusDevicePath;\r
+  EFI_DEVICE_PATH_PROTOCOL  EndDevicePath;\r
+} RIDE_DEVICE_PATH;\r
+\r
+//static RIDE_DEVICE_PATH mRideDevicePath = { acpi, pci( 0x1E,0x00 ),pci( 0x02,0x00 ), end };\r
+\r
+//Gigabit NIC\r
+//typedef struct _GB_NIC_DEVICE_PATH\r
+//{\r
+//  ACPI_HID_DEVICE_PATH      PciRootBridgeDevicePath;\r
+//  PCI_DEVICE_PATH            PciBridgeDevicePath;\r
+//  PCI_DEVICE_PATH            PciXBridgeDevicePath;\r
+//  PCI_DEVICE_PATH            PciXBusDevicePath;\r
+//  EFI_DEVICE_PATH_PROTOCOL  EndDevicePath;\r
+//} GB_NIC_DEVICE_PATH;\r
+\r
+//static GB_NIC_DEVICE_PATH mGbNicDevicePath = { acpi, pci( 0x03,0x00 ),pci( 0x1F,0x00 ),pci( 0x07,0x00 ), end };\r
+\r
+\r
+//P/S2 Connector\r
+typedef struct _PS2_CONN_DEVICE_PATH\r
+{\r
+  ACPI_HID_DEVICE_PATH    PciRootBridgeDevicePath;\r
+  PCI_DEVICE_PATH      LpcBridgeDevicePath;\r
+  ACPI_HID_DEVICE_PATH    LpcBusDevicePath;\r
+  EFI_DEVICE_PATH_PROTOCOL  EndDevicePath;\r
+} PS2_CONN_DEVICE_PATH;\r
+\r
+//static PS2_CONN_DEVICE_PATH mPs2KeyboardDevicePath   = { acpi, pci( 0x1F,0x00 ),lpc( 0x0303,0 ), end };\r
+//static PS2_CONN_DEVICE_PATH mPs2MouseDevicePath      = { acpi, pci( 0x1F,0x00 ),lpc( 0x0303,1 ), end };\r
+\r
+//Serial Port Connector\r
+typedef struct _SERIAL_CONN_DEVICE_PATH\r
+{\r
+  ACPI_HID_DEVICE_PATH    PciRootBridgeDevicePath;\r
+  PCI_DEVICE_PATH      LpcBridgeDevicePath;\r
+  ACPI_HID_DEVICE_PATH    LpcBusDevicePath;\r
+  EFI_DEVICE_PATH_PROTOCOL  EndDevicePath;\r
+} SERIAL_CONN_DEVICE_PATH;\r
+\r
+//static SERIAL_CONN_DEVICE_PATH mCom1DevicePath   = { acpi, pci( 0x1F,0x00 ),lpc( 0x0501,0 ), end };\r
+//static SERIAL_CONN_DEVICE_PATH mCom2DevicePath   = { acpi, pci( 0x1F,0x00 ),lpc( 0x0501,1 ), end };\r
+\r
+//Parallel Port Connector\r
+typedef struct _PARALLEL_CONN_DEVICE_PATH\r
+{\r
+  ACPI_HID_DEVICE_PATH    PciRootBridgeDevicePath;\r
+  PCI_DEVICE_PATH      LpcBridgeDevicePath;\r
+  ACPI_HID_DEVICE_PATH    LpcBusDevicePath;\r
+  EFI_DEVICE_PATH_PROTOCOL  EndDevicePath;\r
+} PARALLEL_CONN_DEVICE_PATH;\r
+\r
+//static PARALLEL_CONN_DEVICE_PATH mLpt1DevicePath   = { acpi, pci( 0x1F,0x00 ),lpc( 0x0401,0 ), end };\r
+\r
+//Floopy Connector\r
+typedef struct _FLOOPY_CONN_DEVICE_PATH\r
+{\r
+  ACPI_HID_DEVICE_PATH    PciRootBridgeDevicePath;\r
+  PCI_DEVICE_PATH      LpcBridgeDevicePath;\r
+  ACPI_HID_DEVICE_PATH    LpcBusDevicePath;\r
+  EFI_DEVICE_PATH_PROTOCOL  EndDevicePath;\r
+} FLOOPY_CONN_DEVICE_PATH;\r
+\r
+//static FLOOPY_CONN_DEVICE_PATH mFloopyADevicePath   = { acpi, pci( 0x1F,0x00 ),lpc( 0x0604,0 ), end };\r
+//static FLOOPY_CONN_DEVICE_PATH mFloopyBDevicePath   = { acpi, pci( 0x1F,0x00 ),lpc( 0x0604,1 ), end };\r
+\r
+*/\r
+\r
+//\r
+// End Shanmu\r
+//\r
+#pragma pack()\r
+\r
+#endif\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscNumberOfInstallableLanguagesData.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscNumberOfInstallableLanguagesData.c
new file mode 100644 (file)
index 0000000..b3d2c2e
--- /dev/null
@@ -0,0 +1,42 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscNumberOfInstallableLanguagesData.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// Static (possibly build generated) Bios Vendor data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_NUMBER_OF_INSTALLABLE_LANGUAGES_DATA, NumberOfInstallableLanguages) = {\r
+  1,    // NumberOfInstallableLanguages\r
+  {     // LanguageFlags\r
+    0,  // AbbreviatedLanguageFormat\r
+    0   // Reserved\r
+  },\r
+  0,    // CurrentLanguageNumber\r
+};\r
+\r
+/* eof - MiscNumberOfInstallableLanguagesData.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscOemString.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscOemString.uni
new file mode 100644 (file)
index 0000000..9306f0f
Binary files /dev/null and b/Nt32Pkg/MiscSubClassPlatformDxe/MiscOemString.uni differ
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscOemStringData.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscOemStringData.c
new file mode 100644 (file)
index 0000000..7d89033
--- /dev/null
@@ -0,0 +1,37 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+  \r
+    MiscOemStringData.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// Static (possibly build generated) Bios Vendor data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_OEM_STRING_DATA, OemString) = {\r
+  STRING_TOKEN(STR_MISC_OEM_STRING)\r
+};\r
+\r
+/* eof - MiscOemStringData.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscPortInternalConnectorDesignator.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscPortInternalConnectorDesignator.uni
new file mode 100644 (file)
index 0000000..aa5ea70
Binary files /dev/null and b/Nt32Pkg/MiscSubClassPlatformDxe/MiscPortInternalConnectorDesignator.uni differ
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscPortInternalConnectorDesignatorData.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscPortInternalConnectorDesignatorData.c
new file mode 100644 (file)
index 0000000..e961df7
--- /dev/null
@@ -0,0 +1,104 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscPortInternalConnectorDesignatorData.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// Static (possibly build generated) Bios Vendor data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortInternalConnectorDesignator) = {\r
+  STRING_TOKEN(STR_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR),  // PortInternalConnectorDesignator\r
+  STRING_TOKEN(STR_MISC_PORT_EXTERNAL_CONNECTOR_DESIGNATOR),  // PortExternalConnectorDesignator\r
+  EfiPortConnectorTypeOther,  // PortInternalConnectorType\r
+  EfiPortConnectorTypeOther,  // PortExternalConnectorType\r
+  EfiPortTypeNone,            // PortType\r
+  0                           // PortPath\r
+};\r
+\r
+//\r
+// Static (possibly build generated) Bios Vendor data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortKeyboard) = {\r
+  STRING_TOKEN (STR_MISC_PORT_INTERNAL_KEYBOARD),   // PortInternalConnectorDesignator\r
+  STRING_TOKEN (STR_MISC_PORT_EXTERNAL_KEYBOARD),   // PortExternalConnectorDesignator\r
+  EfiPortConnectorTypeNone, // PortInternalConnectorType\r
+  EfiPortConnectorTypePS2,  // PortExternalConnectorType\r
+  EfiPortTypeKeyboard,      // PortType\r
+  // mPs2KbyboardDevicePath                          // PortPath\r
+  //\r
+  0\r
+};\r
+\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortMouse) = {\r
+  STRING_TOKEN (STR_MISC_PORT_INTERNAL_MOUSE),      // PortInternalConnectorDesignator\r
+  STRING_TOKEN (STR_MISC_PORT_EXTERNAL_MOUSE),      // PortExternalConnectorDesignator\r
+  EfiPortConnectorTypeNone, // PortInternalConnectorType\r
+  EfiPortConnectorTypePS2,  // PortExternalConnectorType\r
+  EfiPortTypeMouse,         // PortType\r
+  // mPs2MouseDevicePath                // PortPath\r
+  //\r
+  0\r
+};\r
+\r
+\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortCom1) = {\r
+  STRING_TOKEN(STR_MISC_PORT_INTERNAL_COM1),\r
+  STRING_TOKEN(STR_MISC_PORT_EXTERNAL_COM1),\r
+  EfiPortConnectorTypeNone,\r
+  EfiPortConnectorTypeDB9Female,\r
+  EfiPortTypeSerial16550ACompatible,\r
+  0\r
+};\r
+\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortCom2) = {\r
+  STRING_TOKEN(STR_MISC_PORT_INTERNAL_COM2),\r
+  STRING_TOKEN(STR_MISC_PORT_EXTERNAL_COM2),\r
+  EfiPortConnectorTypeNone,\r
+  EfiPortConnectorTypeDB9Female,\r
+  EfiPortTypeSerial16550ACompatible,\r
+  0\r
+};\r
+\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortExtensionPower) = {\r
+  STRING_TOKEN(STR_MISC_PORT_INTERNAL_EXTENSION_POWER),\r
+  STRING_TOKEN(STR_MISC_PORT_EXTERNAL_EXTENSION_POWER),\r
+  EfiPortConnectorTypeOther,\r
+  EfiPortConnectorTypeNone,\r
+  EfiPortTypeOther,\r
+  0\r
+};\r
+\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA, MiscPortFloppy) = {\r
+  STRING_TOKEN(STR_MISC_PORT_INTERNAL_FLOPPY),\r
+  STRING_TOKEN(STR_MISC_PORT_EXTERNAL_FLOPPY),\r
+  EfiPortConnectorTypeOnboardFloppy,\r
+  EfiPortConnectorTypeNone,\r
+  EfiPortTypeOther,\r
+  0\r
+};\r
+\r
+/* eof - MiscPortInternalConnectorDesignatorData.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscPortInternalConnectorDesignatorFunction.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscPortInternalConnectorDesignatorFunction.c
new file mode 100644 (file)
index 0000000..d493ef0
--- /dev/null
@@ -0,0 +1,271 @@
+/*++\r
\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscPortInternalConnectorDesignatorFunction.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+//\r
+//\r
+MISC_SUBCLASS_TABLE_FUNCTION (\r
+  MiscPortInternalConnectorDesignator\r
+  )\r
+/*++\r
+Description:\r
+\r
+  This function makes boot time changes to the contents of the\r
+  MiscPortConnectorInformation (Type 8).\r
+\r
+Parameters:\r
+\r
+  RecordType\r
+    Type of record to be processed from the Data Table.\r
+    mMiscSubclassDataTable[].RecordType\r
+\r
+  RecordLen\r
+    Size of static RecordData from the Data Table.\r
+    mMiscSubclassDataTable[].RecordLen\r
+\r
+  RecordData\r
+    Pointer to copy of RecordData from the Data Table.  Changes made\r
+    to this copy will be written to the Data Hub but will not alter\r
+    the contents of the static Data Table.\r
+\r
+  LogRecordData\r
+    Set *LogRecordData to TRUE to log RecordData to Data Hub.\r
+    Set *LogRecordData to FALSE when there is no more data to log.\r
+\r
+Returns:\r
+\r
+  EFI_SUCCESS\r
+    All parameters were valid and *RecordData and *LogRecordData have\r
+    been set.\r
+\r
+  EFI_UNSUPPORTED\r
+    Unexpected RecordType value.\r
+\r
+  EFI_INVALID_PARAMETER\r
+    One of the following parameter conditions was true:\r
+      RecordLen was zero.\r
+      RecordData was NULL.\r
+      LogRecordData was NULL.\r
+--*/\r
+{\r
+  STATIC BOOLEAN                    Done                    = FALSE;\r
+  STATIC PS2_CONN_DEVICE_PATH       mPs2KeyboardDevicePath  = { DP_ACPI, DP_PCI (0x1F, 0x00), DP_LPC (0x0303, 0), DP_END };\r
+  STATIC PS2_CONN_DEVICE_PATH       mPs2MouseDevicePath     = { DP_ACPI, DP_PCI (0x1F, 0x00), DP_LPC (0x0303, 1), DP_END };\r
+  STATIC SERIAL_CONN_DEVICE_PATH    mCom1DevicePath         = { DP_ACPI, DP_PCI (0x1F, 0x00), DP_LPC (0x0501, 0), DP_END };\r
+  STATIC SERIAL_CONN_DEVICE_PATH    mCom2DevicePath         = { DP_ACPI, DP_PCI (0x1F, 0x00), DP_LPC (0x0501, 1), DP_END };\r
+  STATIC PARALLEL_CONN_DEVICE_PATH  mLpt1DevicePath         = { DP_ACPI, DP_PCI (0x1F, 0x00), DP_LPC (0x0401, 0), DP_END };\r
+  STATIC FLOOPY_CONN_DEVICE_PATH    mFloopyADevicePath      = { DP_ACPI, DP_PCI (0x1F, 0x00), DP_LPC (0x0604, 0), DP_END };\r
+  STATIC FLOOPY_CONN_DEVICE_PATH    mFloopyBDevicePath      = { DP_ACPI, DP_PCI (0x1F, 0x00), DP_LPC (0x0604, 1), DP_END };\r
+  STATIC USB_PORT_DEVICE_PATH       mUsb0DevicePath         = { DP_ACPI, DP_PCI (0x1d, 0x00), DP_END };\r
+  STATIC USB_PORT_DEVICE_PATH       mUsb1DevicePath         = { DP_ACPI, DP_PCI (0x1d, 0x01), DP_END };\r
+  STATIC USB_PORT_DEVICE_PATH       mUsb2DevicePath         = { DP_ACPI, DP_PCI (0x1d, 0x02), DP_END };\r
+  STATIC USB_PORT_DEVICE_PATH       mUsb3DevicePath         = { DP_ACPI, DP_PCI (0x1d, 0x07), DP_END };\r
+  STATIC IDE_DEVICE_PATH            mIdeDevicePath          = { DP_ACPI, DP_PCI (0x1F, 0x01), DP_END };\r
+  STATIC GB_NIC_DEVICE_PATH         mGbNicDevicePath        = { DP_ACPI, DP_PCI( 0x03,0x00 ),DP_PCI( 0x1F,0x00 ),DP_PCI( 0x07,0x00 ), DP_END };\r
+  EFI_DEVICE_PATH_PROTOCOL          EndDevicePath           = DP_END;\r
+\r
+  //\r
+  // First check for invalid parameters.\r
+  //\r
+  // Shanmu >> to fix the Device Path Issue...\r
+  // if (RecordLen == 0 || RecordData == NULL || LogRecordData == NULL) {\r
+  //\r
+  if (*RecordLen == 0 || RecordData == NULL || LogRecordData == NULL) {\r
+    //\r
+    // End Shanmu\r
+    //\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+  //\r
+  // Then check for unsupported RecordType.\r
+  //\r
+  if (RecordType != EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_RECORD_NUMBER) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+  //\r
+  // Is this the first time through this function?\r
+  //\r
+  if (!Done) {\r
+    //\r
+    // Yes, this is the first time.  Inspect/Change the contents of the\r
+    // RecordData structure.\r
+    //\r
+    //\r
+    // Device path is only updated here as it was not taking that in static data\r
+    //\r
+    // Shanmu >> to fix the Device Path Issue...\r
+    //\r
+\r
+    /*\r
+    switch (((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortInternalConnectorDesignator) \r
+    {\r
+      case STR_MISC_PORT_INTERNAL_MOUSE:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = *((EFI_DEVICE_PATH_PROTOCOL*)&mPs2MouseDevicePath);          \r
+        }break;\r
+      case STR_MISC_PORT_INTERNAL_KEYBOARD:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = *((EFI_DEVICE_PATH_PROTOCOL*)&mPs2KeyboardDevicePath);          \r
+        }break;\r
+      case STR_MISC_PORT_INTERNAL_COM1:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = *((EFI_DEVICE_PATH_PROTOCOL*)&mCom1DevicePath);          \r
+        }break;\r
+      case STR_MISC_PORT_INTERNAL_COM2:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = *((EFI_DEVICE_PATH_PROTOCOL*)&mCom2DevicePath);          \r
+        }break;\r
+      case STR_MISC_PORT_INTERNAL_LPT1:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = *((EFI_DEVICE_PATH_PROTOCOL*)&mLpt1DevicePath);          \r
+        }break;\r
+      case STR_MISC_PORT_INTERNAL_USB1:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = *((EFI_DEVICE_PATH_PROTOCOL*)&mUsb0DevicePath);          \r
+        }break;\r
+      case STR_MISC_PORT_INTERNAL_USB2:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = *((EFI_DEVICE_PATH_PROTOCOL*)&mUsb1DevicePath);          \r
+        }break;\r
+      case STR_MISC_PORT_INTERNAL_USB3:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = *((EFI_DEVICE_PATH_PROTOCOL*)&mUsb2DevicePath);          \r
+        }break;\r
+      case STR_MISC_PORT_INTERNAL_NETWORK:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = *((EFI_DEVICE_PATH_PROTOCOL*)&mGbNicDevicePath);          \r
+        }break;\r
+      case STR_MISC_PORT_INTERNAL_FLOPPY:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = *((EFI_DEVICE_PATH_PROTOCOL*)&mFloopyADevicePath);          \r
+        }break;\r
+      case STR_MISC_PORT_INTERNAL_IDE1:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = *((EFI_DEVICE_PATH_PROTOCOL*)&mIdeDevicePath);          \r
+        }break;\r
+      case STR_MISC_PORT_INTERNAL_IDE2:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = *((EFI_DEVICE_PATH_PROTOCOL*)&mIdeDevicePath);          \r
+        }break;\r
+      default:\r
+        {\r
+          (EFI_DEVICE_PATH_PROTOCOL)((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *)RecordData)->PortPath = EndDevicePath;\r
+        }break;    \r
+    }\r
+    */\r
+    switch (((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *) RecordData)->PortInternalConnectorDesignator) {\r
+    case STR_MISC_PORT_INTERNAL_MOUSE:\r
+      {\r
+        CopyMem (\r
+          &((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *) RecordData)->PortPath,\r
+          &mPs2MouseDevicePath,\r
+          GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) &mPs2MouseDevicePath)\r
+          );\r
+        *RecordLen = *RecordLen - sizeof (EFI_MISC_PORT_DEVICE_PATH) + GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) &mPs2MouseDevicePath);\r
+      }\r
+      break;\r
+\r
+    case STR_MISC_PORT_INTERNAL_KEYBOARD:\r
+      {\r
+        CopyMem (\r
+          &((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *) RecordData)->PortPath,\r
+          &mPs2KeyboardDevicePath,\r
+          GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) &mPs2KeyboardDevicePath)\r
+          );\r
+        *RecordLen = *RecordLen - sizeof (EFI_MISC_PORT_DEVICE_PATH) + GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) &mPs2KeyboardDevicePath);\r
+      }\r
+      break;\r
+\r
+    case STR_MISC_PORT_INTERNAL_COM1:\r
+      {\r
+        CopyMem (\r
+          &((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *) RecordData)->PortPath,\r
+          &mCom1DevicePath,\r
+          GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) &mCom1DevicePath)\r
+          );\r
+        *RecordLen = *RecordLen - sizeof (EFI_MISC_PORT_DEVICE_PATH) + GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) &mCom1DevicePath);\r
+      }\r
+      break;\r
+\r
+    case STR_MISC_PORT_INTERNAL_COM2:\r
+      {\r
+        CopyMem (\r
+          &((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *) RecordData)->PortPath,\r
+          &mCom2DevicePath,\r
+          GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) &mCom2DevicePath)\r
+          );\r
+        *RecordLen = *RecordLen - sizeof (EFI_MISC_PORT_DEVICE_PATH) + GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) &mCom2DevicePath);\r
+      }\r
+      break;\r
+\r
+    case STR_MISC_PORT_INTERNAL_FLOPPY:\r
+      {\r
+        CopyMem (\r
+          &((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *) RecordData)->PortPath,\r
+          &mFloopyADevicePath,\r
+          GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) &mFloopyADevicePath)\r
+          );\r
+        *RecordLen = *RecordLen - sizeof (EFI_MISC_PORT_DEVICE_PATH) + GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) &mFloopyADevicePath);\r
+      }\r
+      break;\r
+\r
+    default:\r
+      {\r
+        CopyMem (\r
+          &((EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA *) RecordData)->PortPath,\r
+          &EndDevicePath,\r
+          GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) &EndDevicePath)\r
+          );\r
+        *RecordLen = *RecordLen - sizeof (EFI_MISC_PORT_DEVICE_PATH) + GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) &EndDevicePath);\r
+      }\r
+      break;\r
+    }\r
+    //\r
+    // End Shanmu\r
+    //\r
+    // Set Done flag to TRUE for next pass through this function.\r
+    // Set *LogRecordData to TRUE so data will get logged to Data Hub.\r
+    //\r
+    Done            = TRUE;\r
+    *LogRecordData  = TRUE;\r
+  } else {\r
+    //\r
+    // No, this is the second time.  Reset the state of the Done flag\r
+    // to FALSE and tell the data logger that there is no more data\r
+    // to be logged for this record type.  If any memory allocations\r
+    // were made by earlier passes, they must be released now.\r
+    //\r
+    Done            = FALSE;\r
+    *LogRecordData  = FALSE;\r
+  }\r
+\r
+  return EFI_SUCCESS;\r
+}\r
+\r
+/* eof - MiscSystemManufacturerFunction.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscResetCapabilitiesData.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscResetCapabilitiesData.c
new file mode 100644 (file)
index 0000000..65bd0b5
--- /dev/null
@@ -0,0 +1,47 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+  \r
+    MiscResetCapabilitiesData.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// Static (possibly build generated) Bios Vendor data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_RESET_CAPABILITIES, MiscResetCapabilities) = {\r
+  {     // ResetCapabilities\r
+    0,  // Status\r
+    0,  // BootOption\r
+    0,  // BootOptionOnLimit\r
+    0,  // WatchdogTimerPresent\r
+    0   // Reserved\r
+  },\r
+  0,    // ResetCount\r
+  0,    // ResetLimit\r
+  0,    // ResetTimerInterval\r
+  0     // ResetTimeout\r
+};\r
+\r
+/* eof - MiscResetCapabilities.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.dxs b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.dxs
new file mode 100644 (file)
index 0000000..c9592de
--- /dev/null
@@ -0,0 +1,31 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscSubclassDriver.dxs\r
+\r
+Abstract:\r
+\r
+  Dependency expression file for MiscSubclass Driver.\r
+  \r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include <DxeDepex.h>\r
+\r
+DEPENDENCY_START\r
+  EFI_DATA_HUB_PROTOCOL_GUID AND EFI_HII_PROTOCOL_GUID\r
+DEPENDENCY_END\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.h b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.h
new file mode 100644 (file)
index 0000000..c468b59
--- /dev/null
@@ -0,0 +1,109 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscSubclassDriver.h\r
+\r
+Abstract:\r
+\r
+  Header file for MiscSubclass Driver.\r
+\r
+--*/\r
+\r
+#ifndef _MISC_SUBCLASS_DRIVER_H\r
+#define _MISC_SUBCLASS_DRIVER_H\r
+\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include <MiscDevicePath.h>\r
+\r
+//\r
+// Autogen string file\r
+//\r
+#include <MiscSubclassStrDefs.h>\r
+\r
+//\r
+// Data table entry update function.\r
+//\r
+typedef \r
+EFI_STATUS \r
+(EFIAPI EFI_MISC_SUBCLASS_DATA_FUNCTION) (\r
+  IN UINT16                         RecordType,\r
+  IN UINT32                         *RecordLen,\r
+  IN OUT EFI_MISC_SUBCLASS_RECORDS  *RecordData,\r
+  OUT BOOLEAN                       *LogRecordData\r
+  );\r
+\r
+//\r
+// Data table entry definition.\r
+//\r
+typedef struct {\r
+  UINT16                          RecordType;\r
+  UINT32                          RecordLen;\r
+  VOID                            *RecordData;\r
+  EFI_MISC_SUBCLASS_DATA_FUNCTION *Function;\r
+} EFI_MISC_SUBCLASS_DATA_TABLE;\r
+\r
+//\r
+// Data Table extern definitions.\r
+//\r
+#define MISC_SUBCLASS_TABLE_EXTERNS(NAME1, NAME2) \\r
+  extern NAME1 NAME2 ## Data; \\r
+  extern EFI_MISC_SUBCLASS_DATA_FUNCTION NAME2 ## Function\r
+\r
+//\r
+// Data Table entries\r
+//\r
+#define MISC_SUBCLASS_TABLE_ENTRY_DATA_ONLY(NAME1, NAME2) { \\r
+         NAME1 ##  _RECORD_NUMBER, sizeof (NAME1 ## _DATA), &NAME2 ## Data, NULL \\r
+  }\r
+\r
+#define MISC_SUBCLASS_TABLE_ENTRY_FUNCTION_ONLY(NAME1, NAME2) \\r
+  { \\r
+    NAME1 ##  _RECORD_NUMBER, 0, NULL, &NAME2 ## Function \\r
+  }\r
+\r
+#define MISC_SUBCLASS_TABLE_ENTRY_DATA_AND_FUNCTION(NAME1, NAME2, NAME3) \\r
+  { \\r
+    NAME1 ##  _RECORD_NUMBER, sizeof (NAME1 ## _DATA), &NAME2 ## Data, &NAME3 ## Function \\r
+  }\r
+\r
+//\r
+// Global definition macros.\r
+//\r
+#define MISC_SUBCLASS_TABLE_DATA(NAME1, NAME2)  NAME1 NAME2 ## Data\r
+\r
+#define MISC_SUBCLASS_TABLE_FUNCTION(NAME2) \\r
+  EFI_STATUS EFIAPI NAME2 ## Function ( \\r
+  IN UINT16 RecordType, \\r
+  IN UINT32 *RecordLen, \\r
+  IN OUT EFI_MISC_SUBCLASS_RECORDS * RecordData, \\r
+  OUT BOOLEAN *LogRecordData \\r
+  )\r
+\r
+//\r
+// Data Table Array\r
+//\r
+extern EFI_MISC_SUBCLASS_DATA_TABLE mMiscSubclassDataTable[];\r
+\r
+//\r
+// Data Table Array Entries\r
+//\r
+extern UINTN  mMiscSubclassDataTableEntries;\r
+\r
+#endif /* _MISC_SUBCLASS_DRIVER_H */\r
+\r
+/* eof - MiscSubclassDriver.h */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.inf b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.inf
new file mode 100644 (file)
index 0000000..c9a43c2
--- /dev/null
@@ -0,0 +1,145 @@
+#/** @file\r
+# Misc Sub class driver\r
+#\r
+# Parses the MiscSubclassDataTable and reports any generated data to the DataHub.\r
+#  All .uni file who tagged with "ToolCode="DUMMY"" in following file list is included by\r
+#  MiscSubclassDriver.uni file, the StrGather tool will expand MiscSubclassDriver.uni file\r
+#  and parse all .uni file.\r
+# Copyright (c) 2006 - 2007, Intel Corporation\r
+#\r
+#  All rights reserved. This program and the accompanying materials\r
+#  are licensed and made available under the terms and conditions of the BSD License\r
+#  which accompanies this distribution. The full text of the license may be found at\r
+#  http://opensource.org/licenses/bsd-license.php\r
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+#\r
+#**/\r
+\r
+################################################################################\r
+#\r
+# Defines Section - statements that will be processed to create a Makefile.\r
+#\r
+################################################################################\r
+[Defines]\r
+  INF_VERSION                    = 0x00010005\r
+  BASE_NAME                      = MiscSubclass\r
+  FILE_GUID                      = 4A9B9DB8-EC62-4A92-818F-8AA0246D246E\r
+  MODULE_TYPE                    = DXE_DRIVER\r
+  VERSION_STRING                 = 1.0\r
+  EDK_RELEASE_VERSION            = 0x00020000\r
+  EFI_SPECIFICATION_VERSION      = 0x00020000\r
+\r
+  ENTRY_POINT                    = MiscSubclassDriverEntryPoint\r
+\r
+#\r
+# The following information is for reference only and not required by the build tools.\r
+#\r
+#  VALID_ARCHITECTURES           = IA32\r
+#\r
+\r
+################################################################################\r
+#\r
+# Sources Section - list of files that are required for the build to succeed.\r
+#\r
+################################################################################\r
+\r
+[Sources.common]\r
+  MiscSubclassDriver.dxs\r
+  MiscPortInternalConnectorDesignatorFunction.c\r
+  MiscSystemSlotDesignationData.c\r
+  MiscSystemOptionStringData.c\r
+  MiscSystemManufacturerFunction.c\r
+  MiscSystemManufacturerData.c\r
+  MiscSystemLanguageStringData.c\r
+  MiscResetCapabilitiesData.c\r
+  MiscPortInternalConnectorDesignatorData.c\r
+  MiscOemStringData.c\r
+  MiscNumberOfInstallableLanguagesData.c\r
+  MiscChassisManufacturerData.c\r
+  MiscBootInformationData.c\r
+  MiscBiosVendorData.c\r
+  MiscBaseBoardManufacturerData.c\r
+  MiscSubclassDriverDataTable.c\r
+  MiscSubclassDriverEntryPoint.c\r
+  MiscSubclassDriver.h\r
+  MiscDevicePath.h\r
+  MiscSubclassDriver.uni\r
+  MiscSystemSlotDesignation.uni\r
+  MiscSystemOptionString.uni\r
+  MiscSystemManufacturer.uni\r
+  MiscSystemLanguageString.uni\r
+  MiscPortInternalConnectorDesignator.uni\r
+  MiscOemString.uni\r
+  MiscChassisManufacturer.uni\r
+  MiscBiosVendor.uni\r
+  MiscBaseBoardManufacturer.uni\r
+  CommonHeader.h\r
+\r
+\r
+################################################################################\r
+#\r
+# Includes Section - list of Include locations that are required for\r
+#                    this module.\r
+#\r
+################################################################################\r
+\r
+[Includes]\r
+  $(WORKSPACE)/MdePkg/Include/Library\r
+\r
+################################################################################\r
+#\r
+# Package Dependency Section - list of Package files that are required for\r
+#                              this module.\r
+#\r
+################################################################################\r
+\r
+[Packages]\r
+  MdePkg/MdePkg.dec\r
+  #MdeModulePkg/MdeModulePkg.dec\r
+  IntelFrameworkPkg/IntelFrameworkPkg.dec\r
+  Nt32Pkg/Nt32Pkg.dec\r
+\r
+\r
+################################################################################\r
+#\r
+# Library Class Section - list of Library Classes that are required for\r
+#                         this module.\r
+#\r
+################################################################################\r
+\r
+[LibraryClasses]\r
+  DevicePathLib\r
+  UefiBootServicesTableLib\r
+  MemoryAllocationLib\r
+  BaseMemoryLib\r
+  UefiDriverEntryPoint\r
+  UefiLib\r
+  HiiLib\r
+  DebugLib\r
+  BaseLib\r
+\r
+\r
+################################################################################\r
+#\r
+# Guid C Name Section - list of Guids that this module uses or produces.\r
+#\r
+################################################################################\r
+\r
+[Guids]\r
+  gEfiWinNtMemoryGuid                           # SOMETIMES_CONSUMED\r
+\r
+\r
+################################################################################\r
+#\r
+# Protocol C Name Section - list of Protocol and Protocol Notify C Names\r
+#                           that this module uses or produces.\r
+#\r
+################################################################################\r
+\r
+[Protocols]\r
+  gEfiWinNtIoProtocolGuid                       # PROTOCOL_NOTIFY SOMETIMES_CONSUMED\r
+  gEfiHiiProtocolGuid                           # PROTOCOL ALWAYS_CONSUMED\r
+  gEfiDataHubProtocolGuid                       # PROTOCOL ALWAYS_CONSUMED\r
+\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.msa b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.msa
new file mode 100644 (file)
index 0000000..533ec7e
--- /dev/null
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0">\r
+  <MsaHeader>\r
+    <ModuleName>MiscSubclass</ModuleName>\r
+    <ModuleType>DXE_DRIVER</ModuleType>\r
+    <GuidValue>4A9B9DB8-EC62-4A92-818F-8AA0246D246E</GuidValue>\r
+    <Version>1.0</Version>\r
+    <Abstract>Misc Sub class driver</Abstract>\r
+    <Description>\r
+      Parses the MiscSubclassDataTable and reports any generated data to the DataHub.\r
+      All .uni file who tagged with "ToolCode="DUMMY"" in following file list is included by\r
+      MiscSubclassDriver.uni file, the StrGather tool will expand MiscSubclassDriver.uni file\r
+      and parse all .uni file.\r
+    </Description>\r
+    <Copyright>Copyright (c) 2006 - 2007, Intel Corporation</Copyright>\r
+    <License>All rights reserved. This program and the accompanying materials\r
+      are licensed and made available under the terms and conditions of the BSD License\r
+      which accompanies this distribution.  The full text of the license may be found at\r
+      http://opensource.org/licenses/bsd-license.php\r
+      THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+      WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>\r
+    <Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052</Specification>\r
+  </MsaHeader>\r
+  <ModuleDefinitions>\r
+    <SupportedArchitectures>IA32</SupportedArchitectures>\r
+    <BinaryModule>false</BinaryModule>\r
+    <OutputFileBasename>MiscSubclass</OutputFileBasename>\r
+  </ModuleDefinitions>\r
+  <LibraryClassDefinitions>\r
+    <LibraryClass Usage="ALWAYS_CONSUMED">\r
+      <Keyword>BaseLib</Keyword>\r
+    </LibraryClass>\r
+    <LibraryClass Usage="ALWAYS_CONSUMED">\r
+      <Keyword>DebugLib</Keyword>\r
+    </LibraryClass>\r
+    <LibraryClass Usage="ALWAYS_CONSUMED">\r
+      <Keyword>HiiLib</Keyword>\r
+    </LibraryClass>\r
+    <LibraryClass Usage="ALWAYS_CONSUMED">\r
+      <Keyword>UefiLib</Keyword>\r
+    </LibraryClass>\r
+    <LibraryClass Usage="ALWAYS_CONSUMED">\r
+      <Keyword>UefiDriverEntryPoint</Keyword>\r
+    </LibraryClass>\r
+    <LibraryClass Usage="ALWAYS_CONSUMED">\r
+      <Keyword>BaseMemoryLib</Keyword>\r
+    </LibraryClass>\r
+    <LibraryClass Usage="ALWAYS_CONSUMED">\r
+      <Keyword>MemoryAllocationLib</Keyword>\r
+    </LibraryClass>\r
+    <LibraryClass Usage="ALWAYS_CONSUMED">\r
+      <Keyword>UefiBootServicesTableLib</Keyword>\r
+    </LibraryClass>\r
+    <LibraryClass Usage="ALWAYS_CONSUMED">\r
+      <Keyword>DevicePathLib</Keyword>\r
+    </LibraryClass>\r
+  </LibraryClassDefinitions>\r
+  <SourceFiles>\r
+    <Filename ToolCode="DUMMY">MiscBaseBoardManufacturer.uni</Filename>\r
+    <Filename ToolCode="DUMMY">MiscBiosVendor.uni</Filename>\r
+    <Filename ToolCode="DUMMY">MiscChassisManufacturer.uni</Filename>\r
+    <Filename ToolCode="DUMMY">MiscOemString.uni</Filename>\r
+    <Filename ToolCode="DUMMY">MiscPortInternalConnectorDesignator.uni</Filename>\r
+    <Filename ToolCode="DUMMY">MiscSystemLanguageString.uni</Filename>\r
+    <Filename ToolCode="DUMMY">MiscSystemManufacturer.uni</Filename>\r
+    <Filename ToolCode="DUMMY">MiscSystemOptionString.uni</Filename>\r
+    <Filename ToolCode="DUMMY">MiscSystemSlotDesignation.uni</Filename>\r
+    <Filename>MiscSubclassDriver.uni</Filename>\r
+    <Filename>MiscDevicePath.h</Filename>\r
+    <Filename>MiscSubclassDriver.h</Filename>\r
+    <Filename>MiscSubclassDriverEntryPoint.c</Filename>\r
+    <Filename>MiscSubclassDriverDataTable.c</Filename>\r
+    <Filename>MiscBaseBoardManufacturerData.c</Filename>\r
+    <Filename>MiscBiosVendorData.c</Filename>\r
+    <Filename>MiscBootInformationData.c</Filename>\r
+    <Filename>MiscChassisManufacturerData.c</Filename>\r
+    <Filename>MiscNumberOfInstallableLanguagesData.c</Filename>\r
+    <Filename>MiscOemStringData.c</Filename>\r
+    <Filename>MiscPortInternalConnectorDesignatorData.c</Filename>\r
+    <Filename>MiscResetCapabilitiesData.c</Filename>\r
+    <Filename>MiscSystemLanguageStringData.c</Filename>\r
+    <Filename>MiscSystemManufacturerData.c</Filename>\r
+    <Filename>MiscSystemManufacturerFunction.c</Filename>\r
+    <Filename>MiscSystemOptionStringData.c</Filename>\r
+    <Filename>MiscSystemSlotDesignationData.c</Filename>\r
+    <Filename>MiscPortInternalConnectorDesignatorFunction.c</Filename>\r
+    <Filename>MiscSubclassDriver.dxs</Filename>\r
+  </SourceFiles>\r
+  <PackageDependencies>\r
+    <Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>\r
+    <Package PackageGuid="2759ded5-bb57-4b06-af4f-c398fa552719"/>\r
+  </PackageDependencies>\r
+  <Protocols>\r
+    <Protocol Usage="ALWAYS_CONSUMED">\r
+      <ProtocolCName>gEfiDataHubProtocolGuid</ProtocolCName>\r
+    </Protocol>\r
+    <Protocol Usage="ALWAYS_CONSUMED">\r
+      <ProtocolCName>gEfiHiiProtocolGuid</ProtocolCName>\r
+    </Protocol>\r
+    <ProtocolNotify Usage="SOMETIMES_CONSUMED">\r
+      <ProtocolNotifyCName>gEfiWinNtIoProtocolGuid</ProtocolNotifyCName>\r
+    </ProtocolNotify>\r
+  </Protocols>\r
+  <Guids>\r
+    <GuidCNames Usage="ALWAYS_CONSUMED">\r
+      <GuidCName>gEfiMiscSubClassGuid</GuidCName>\r
+    </GuidCNames>\r
+    <GuidCNames Usage="SOMETIMES_CONSUMED">\r
+      <GuidCName>gEfiProcessorSubClassGuid</GuidCName>\r
+    </GuidCNames>\r
+    <GuidCNames Usage="SOMETIMES_CONSUMED">\r
+      <GuidCName>gEfiMemoryProducerGuid</GuidCName>\r
+    </GuidCNames>\r
+    <GuidCNames Usage="SOMETIMES_CONSUMED">\r
+      <GuidCName>gEfiMemorySubClassGuid</GuidCName>\r
+    </GuidCNames>\r
+    <GuidCNames Usage="SOMETIMES_CONSUMED">\r
+      <GuidCName>gEfiWinNtMemoryGuid</GuidCName>\r
+    </GuidCNames>\r
+  </Guids>\r
+  <Externs>\r
+    <Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>\r
+    <Specification>EDK_RELEASE_VERSION 0x00020000</Specification>\r
+    <Extern>\r
+      <ModuleEntryPoint>MiscSubclassDriverEntryPoint</ModuleEntryPoint>\r
+    </Extern>\r
+  </Externs>\r
+</ModuleSurfaceArea>
\ No newline at end of file
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.uni
new file mode 100644 (file)
index 0000000..cc42640
Binary files /dev/null and b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.uni differ
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriverDataTable.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriverDataTable.c
new file mode 100644 (file)
index 0000000..77abb9c
--- /dev/null
@@ -0,0 +1,104 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscSubclassDriverDataTable.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// External definitions referenced by Data Table entries.\r
+//\r
+MISC_SUBCLASS_TABLE_EXTERNS (\r
+  EFI_MISC_CHASSIS_MANUFACTURER_DATA,\r
+  MiscChassisManufacturer\r
+  );\r
+MISC_SUBCLASS_TABLE_EXTERNS (\r
+  EFI_MISC_BIOS_VENDOR_DATA,\r
+  MiscBiosVendor\r
+  );\r
+MISC_SUBCLASS_TABLE_EXTERNS (\r
+  EFI_MISC_SYSTEM_MANUFACTURER_DATA,\r
+  MiscSystemManufacturer\r
+  );\r
+MISC_SUBCLASS_TABLE_EXTERNS (\r
+  EFI_MISC_BASE_BOARD_MANUFACTURER_DATA,\r
+  MiscBaseBoardManufacturer\r
+  );\r
+MISC_SUBCLASS_TABLE_EXTERNS (\r
+  EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA,\r
+  MiscPortInternalConnectorDesignator\r
+  );\r
+MISC_SUBCLASS_TABLE_EXTERNS (\r
+  EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA,\r
+  MiscPortKeyboard\r
+  );\r
+MISC_SUBCLASS_TABLE_EXTERNS (\r
+  EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA,\r
+  MiscPortMouse\r
+  );\r
+MISC_SUBCLASS_TABLE_EXTERNS (\r
+  EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA,\r
+  MiscPortCom1\r
+  );\r
+MISC_SUBCLASS_TABLE_EXTERNS (\r
+  EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR_DATA,\r
+  MiscPortCom2\r
+  );\r
+MISC_SUBCLASS_TABLE_EXTERNS (\r
+  EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA,\r
+  MiscSystemSlotDesignation\r
+  );\r
+MISC_SUBCLASS_TABLE_EXTERNS (\r
+  EFI_MISC_OEM_STRING_DATA,\r
+  OemString\r
+  );\r
+MISC_SUBCLASS_TABLE_EXTERNS (\r
+  EFI_MISC_SYSTEM_OPTION_STRING_DATA,\r
+  SystemOptionString\r
+  );\r
+\r
+//\r
+// Data Table.\r
+//\r
+EFI_MISC_SUBCLASS_DATA_TABLE  mMiscSubclassDataTable[] = {\r
+  MISC_SUBCLASS_TABLE_ENTRY_DATA_AND_FUNCTION(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR, MiscPortKeyboard, MiscPortInternalConnectorDesignator),\r
+  MISC_SUBCLASS_TABLE_ENTRY_DATA_AND_FUNCTION(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR, MiscPortMouse, MiscPortInternalConnectorDesignator),\r
+  MISC_SUBCLASS_TABLE_ENTRY_DATA_AND_FUNCTION(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR, MiscPortCom1, MiscPortInternalConnectorDesignator),\r
+  MISC_SUBCLASS_TABLE_ENTRY_DATA_AND_FUNCTION(EFI_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR, MiscPortCom2, MiscPortInternalConnectorDesignator),\r
+  MISC_SUBCLASS_TABLE_ENTRY_DATA_ONLY(EFI_MISC_BIOS_VENDOR, MiscBiosVendor),\r
+  MISC_SUBCLASS_TABLE_ENTRY_DATA_ONLY(EFI_MISC_SYSTEM_MANUFACTURER, MiscSystemManufacturer),\r
+  MISC_SUBCLASS_TABLE_ENTRY_DATA_ONLY(EFI_MISC_BASE_BOARD_MANUFACTURER, MiscBaseBoardManufacturer),\r
+  MISC_SUBCLASS_TABLE_ENTRY_DATA_ONLY(EFI_MISC_CHASSIS_MANUFACTURER, MiscChassisManufacturer),\r
+  MISC_SUBCLASS_TABLE_ENTRY_DATA_ONLY(EFI_MISC_SYSTEM_SLOT_DESIGNATION, MiscSystemSlotDesignation),\r
+  MISC_SUBCLASS_TABLE_ENTRY_DATA_ONLY(EFI_MISC_OEM_STRING, OemString),\r
+  MISC_SUBCLASS_TABLE_ENTRY_DATA_ONLY(EFI_MISC_SYSTEM_OPTION_STRING, SystemOptionString),\r
+};\r
+\r
+//\r
+// Number of Data Table entries.\r
+//\r
+UINTN mMiscSubclassDataTableEntries = (sizeof mMiscSubclassDataTable) / sizeof (EFI_MISC_SUBCLASS_DATA_TABLE);\r
+\r
+/* eof - MiscSubclassDriverDataTable.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriverEntryPoint.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriverEntryPoint.c
new file mode 100644 (file)
index 0000000..5eff1d9
--- /dev/null
@@ -0,0 +1,523 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  MiscSubclassDriverEntryPoint.c\r
+\r
+Abstract:\r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+\r
+extern UINT8  MiscSubclassStrings[];\r
+\r
+VOID\r
+EFIAPI\r
+WinNtIoProtocolNotifyFunction (\r
+  IN EFI_EVENT                Event,\r
+  IN VOID                     *Context\r
+  );\r
+\r
+//\r
+//\r
+//\r
+EFI_STATUS\r
+LogRecordDataToDataHub (\r
+  EFI_DATA_HUB_PROTOCOL *DataHub,\r
+  UINT32                RecordType,\r
+  UINT32                RecordLen,\r
+  VOID                  *RecordData\r
+  )\r
+/*++\r
+Description:\r
+\r
+Parameters:\r
+\r
+  DataHub\r
+    %%TBD\r
+\r
+  RecordType\r
+    %%TBD\r
+\r
+  RecordLen\r
+    %%TBD\r
+\r
+  RecordData\r
+    %%TBD\r
+\r
+Returns:\r
+\r
+  EFI_INVALID_PARAMETER\r
+\r
+  EFI_SUCCESS\r
+\r
+  Other Data Hub errors\r
+\r
+--*/\r
+{\r
+  EFI_MISC_SUBCLASS_DRIVER_DATA MiscSubclass;\r
+  EFI_STATUS                    EfiStatus;\r
+\r
+  //\r
+  // Do nothing if data parameters are not valid.\r
+  //\r
+  if (RecordLen == 0 || RecordData == NULL) {\r
+    DEBUG (\r
+      (EFI_D_ERROR,\r
+      "RecordLen == %d  RecordData == %xh\n",\r
+      RecordLen,\r
+      RecordData)\r
+      );\r
+\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+  //\r
+  // Assemble Data Hub record.\r
+  //\r
+  MiscSubclass.Header.Version     = EFI_MISC_SUBCLASS_VERSION;\r
+  MiscSubclass.Header.HeaderSize  = sizeof (EFI_SUBCLASS_TYPE1_HEADER);\r
+  MiscSubclass.Header.Instance    = 1;\r
+  MiscSubclass.Header.SubInstance = 1;\r
+  MiscSubclass.Header.RecordType  = RecordType;\r
+\r
+  CopyMem (\r
+    &MiscSubclass.Record,\r
+    RecordData,\r
+    RecordLen\r
+    );\r
+\r
+  //\r
+  // Log Data Hub record.\r
+  //\r
+  EfiStatus = DataHub->LogData (\r
+                        DataHub,\r
+                        &gEfiMiscSubClassGuid,\r
+                        &gEfiMiscSubClassGuid,\r
+                        EFI_DATA_RECORD_CLASS_DATA,\r
+                        &MiscSubclass,\r
+                        sizeof (EFI_SUBCLASS_TYPE1_HEADER) + RecordLen\r
+                        );\r
+\r
+  if (EFI_ERROR (EfiStatus)) {\r
+    DEBUG (\r
+      (EFI_D_ERROR,\r
+      "LogData(%d bytes) == %r\n",\r
+      sizeof (EFI_SUBCLASS_TYPE1_HEADER) + RecordLen,\r
+      EfiStatus)\r
+      );\r
+  }\r
+\r
+  return EfiStatus;\r
+}\r
+\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+MiscSubclassDriverEntryPoint (\r
+  IN EFI_HANDLE         ImageHandle,\r
+  IN EFI_SYSTEM_TABLE   *SystemTable\r
+  )\r
+/*++\r
+Description:\r
+\r
+  Standard EFI driver point.  This driver parses the mMiscSubclassDataTable\r
+  structure and reports any generated data to the DataHub.\r
+\r
+Arguments:\r
+\r
+  ImageHandle\r
+    Handle for the image of this driver\r
+\r
+  SystemTable\r
+    Pointer to the EFI System Table\r
+\r
+Returns:\r
+\r
+  EFI_SUCCESS\r
+    The data was successfully reported to the Data Hub.\r
+\r
+--*/\r
+{\r
+  EFI_MISC_SUBCLASS_DRIVER_DATA RecordData;\r
+  EFI_DATA_HUB_PROTOCOL         *DataHub;\r
+  EFI_HII_PROTOCOL              *Hii;\r
+  EFI_HII_PACKAGES              *PackageList;\r
+  EFI_HII_HANDLE                HiiHandle;\r
+  EFI_STATUS                    EfiStatus;\r
+  UINTN                         Index;\r
+  BOOLEAN                       LogRecordData;\r
+  EFI_EVENT                     Event;\r
+  VOID                          *Registration;\r
+\r
+\r
+  //\r
+  // Initialize constant portion of subclass header.\r
+  //\r
+  RecordData.Header.Version     = EFI_MISC_SUBCLASS_VERSION;\r
+  RecordData.Header.HeaderSize  = sizeof (EFI_SUBCLASS_TYPE1_HEADER);\r
+  RecordData.Header.Instance    = 1;\r
+  RecordData.Header.SubInstance = 1;\r
+\r
+  //\r
+  // Locate data hub protocol.\r
+  //\r
+  EfiStatus = gBS->LocateProtocol (&gEfiDataHubProtocolGuid, NULL, &DataHub);\r
+\r
+  if (EFI_ERROR (EfiStatus)) {\r
+    DEBUG ((EFI_D_ERROR, "Could not locate DataHub protocol.  %r\n", EfiStatus));\r
+    return EfiStatus;\r
+  } else if (DataHub == NULL) {\r
+    DEBUG ((EFI_D_ERROR, "LocateProtocol(DataHub) returned NULL pointer!\n"));\r
+    return EFI_DEVICE_ERROR;\r
+  }\r
+  //\r
+  // Locate hii protocol.\r
+  //\r
+  EfiStatus = gBS->LocateProtocol (&gEfiHiiProtocolGuid, NULL, &Hii);\r
+\r
+  if (EFI_ERROR (EfiStatus)) {\r
+    DEBUG ((EFI_D_ERROR, "Could not locate Hii protocol.  %r\n", EfiStatus));\r
+    return EfiStatus;\r
+  } else if (Hii == NULL) {\r
+    DEBUG ((EFI_D_ERROR, "LocateProtocol(Hii) returned NULL pointer!\n"));\r
+    return EFI_DEVICE_ERROR;\r
+  }\r
+  //\r
+  // Add our default strings to the HII database. They will be modified later.\r
+  //\r
+  PackageList = PreparePackages (1, &gEfiMiscSubClassGuid, MiscSubclassStrings);\r
+  EfiStatus   = Hii->NewPack (Hii, PackageList, &HiiHandle);\r
+  FreePool (PackageList);\r
+\r
+  if (EFI_ERROR (EfiStatus)) {\r
+    DEBUG ((EFI_D_ERROR, "Could not log default strings to Hii.  %r\n", EfiStatus));\r
+    return EfiStatus;\r
+  }\r
+  //\r
+  //\r
+  //\r
+  for (Index = 0; Index < mMiscSubclassDataTableEntries; ++Index) {\r
+    //\r
+    // Stupidity check!  Do nothing if RecordLen is zero.\r
+    // %%TBD - Should this be an error or a mechanism for ignoring\r
+    // records in the Data Table?\r
+    //\r
+    if (mMiscSubclassDataTable[Index].RecordLen == 0) {\r
+      DEBUG (\r
+        (EFI_D_ERROR,\r
+        "mMiscSubclassDataTable[%d].RecordLen == 0\n",\r
+        Index)\r
+        );\r
+\r
+      continue;\r
+    }\r
+    //\r
+    // Initialize per-record portion of subclass header and\r
+    // copy static data into data portion of subclass record.\r
+    //\r
+    RecordData.Header.RecordType = mMiscSubclassDataTable[Index].RecordType;\r
+\r
+    if (mMiscSubclassDataTable[Index].RecordData == NULL) {\r
+      ZeroMem (\r
+        &RecordData.Record,\r
+        mMiscSubclassDataTable[Index].RecordLen\r
+        );\r
+    } else {\r
+      CopyMem (\r
+        &RecordData.Record,\r
+        mMiscSubclassDataTable[Index].RecordData,\r
+        mMiscSubclassDataTable[Index].RecordLen\r
+        );\r
+    }\r
+    //\r
+    // If the entry does not have a function pointer, just log the data.\r
+    //\r
+    if (mMiscSubclassDataTable[Index].Function == NULL) {\r
+      //\r
+      // Log RecordData to Data Hub.\r
+      //\r
+      EfiStatus = DataHub->LogData (\r
+                            DataHub,\r
+                            &gEfiMiscSubClassGuid,\r
+                            &gEfiMiscSubClassGuid,\r
+                            EFI_DATA_RECORD_CLASS_DATA,\r
+                            &RecordData,\r
+                            sizeof (EFI_SUBCLASS_TYPE1_HEADER) + mMiscSubclassDataTable[Index].RecordLen\r
+                            );\r
+\r
+      if (EFI_ERROR (EfiStatus)) {\r
+        DEBUG (\r
+          (EFI_D_ERROR,\r
+          "LogData(%d bytes) == %r\n",\r
+          sizeof (EFI_SUBCLASS_TYPE1_HEADER) + mMiscSubclassDataTable[Index].RecordLen,\r
+          EfiStatus)\r
+          );\r
+      }\r
+\r
+      continue;\r
+    }\r
+    //\r
+    // The entry has a valid function pointer.\r
+    // Keep calling the function and logging data until there\r
+    // is no more data to log.\r
+    //\r
+    for (;;) {\r
+      //\r
+      //\r
+      //\r
+      EfiStatus = (*mMiscSubclassDataTable[Index].Function)\r
+        (\r
+          mMiscSubclassDataTable[Index].RecordType, &mMiscSubclassDataTable[Index].RecordLen, &RecordData.Record, &\r
+            LogRecordData\r
+        );\r
+\r
+      //\r
+      //\r
+      //\r
+      if (EFI_ERROR (EfiStatus)) {\r
+        break;\r
+      }\r
+\r
+      if (!LogRecordData) {\r
+        break;\r
+      }\r
+      //\r
+      //\r
+      //\r
+      EfiStatus = DataHub->LogData (\r
+                            DataHub,\r
+                            &gEfiMiscSubClassGuid,\r
+                            &gEfiMiscSubClassGuid,\r
+                            EFI_DATA_RECORD_CLASS_DATA,\r
+                            &RecordData,\r
+                            sizeof (EFI_SUBCLASS_TYPE1_HEADER) + mMiscSubclassDataTable[Index].RecordLen\r
+                            );\r
+\r
+      if (EFI_ERROR (EfiStatus)) {\r
+        DEBUG (\r
+          (EFI_D_ERROR,\r
+          "LogData(%d bytes) == %r\n",\r
+          sizeof (EFI_SUBCLASS_TYPE1_HEADER) + mMiscSubclassDataTable[Index].RecordLen,\r
+          EfiStatus)\r
+          );\r
+      }\r
+    }\r
+  }\r
+  //\r
+  // Install notify function to fetch memory data through WinNtIo protocol and store to data hub.\r
+  //\r
+  EfiStatus = gBS->CreateEvent (\r
+                    EVT_NOTIFY_SIGNAL,\r
+                    TPL_CALLBACK,\r
+                    WinNtIoProtocolNotifyFunction,\r
+                    ImageHandle,\r
+                    &Event\r
+                    );\r
+  ASSERT (!EFI_ERROR (EfiStatus));\r
+\r
+  EfiStatus = gBS->RegisterProtocolNotify (\r
+                    &gEfiWinNtIoProtocolGuid,\r
+                    Event,\r
+                    &Registration\r
+                    );\r
+  ASSERT (!EFI_ERROR (EfiStatus));\r
+\r
+  return EFI_SUCCESS;\r
+}\r
+\r
+UINTN\r
+Atoi (\r
+  CHAR16  *String\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+  Convert a unicode string to a UINTN\r
+\r
+Arguments:\r
+  String - Unicode string.\r
+\r
+Returns:\r
+  UINTN of the number represented by String.\r
+\r
+--*/\r
+{\r
+  UINTN   Number;\r
+  CHAR16  *Str;\r
+\r
+  //\r
+  // skip preceeding white space\r
+  //\r
+  Str = String;\r
+  while ((*Str) && (*Str == ' ' || *Str == '"')) {\r
+    Str++;\r
+  }\r
+  //\r
+  // Convert ot a Number\r
+  //\r
+  Number = 0;\r
+  while (*Str != '\0') {\r
+    if ((*Str >= '0') && (*Str <= '9')) {\r
+      Number = (Number * 10) +*Str - '0';\r
+    } else {\r
+      break;\r
+    }\r
+\r
+    Str++;\r
+  }\r
+\r
+  return Number;\r
+}\r
+\r
+VOID\r
+EFIAPI\r
+WinNtIoProtocolNotifyFunction (\r
+  IN EFI_EVENT                Event,\r
+  IN VOID                     *Context\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+  This function will log memory size data to data hub.\r
+\r
+Arguments:\r
+Event        - Event whose notification function is being invoked.\r
+Context      - Pointer to the notification function's context.\r
+\r
+Returns:\r
+    EFI_STATUS.\r
+\r
+--*/\r
+{\r
+  EFI_STATUS                      Status;\r
+  EFI_MEMORY_SUBCLASS_DRIVER_DATA MemorySubClassData;\r
+  EFI_DATA_RECORD_HEADER          *Record;\r
+  EFI_SUBCLASS_TYPE1_HEADER       *DataHeader;\r
+  UINTN                           HandleCount;\r
+  UINTN                           HandleIndex;\r
+  UINT64                          MonotonicCount;\r
+  BOOLEAN                         RecordFound;\r
+  EFI_HANDLE                      *HandleBuffer;\r
+  EFI_WIN_NT_IO_PROTOCOL          *WinNtIo;\r
+  EFI_DATA_HUB_PROTOCOL           *DataHub;\r
+  UINT64                          TotalMemorySize;\r
+\r
+  DataHub         = NULL;\r
+  MonotonicCount  = 0;\r
+  RecordFound     = FALSE;\r
+\r
+  //\r
+  // Retrieve the list of all handles from the handle database.\r
+  //\r
+  Status = gBS->LocateHandleBuffer (\r
+                  AllHandles,\r
+                  &gEfiWinNtIoProtocolGuid,\r
+                  NULL,\r
+                  &HandleCount,\r
+                  &HandleBuffer\r
+                  );\r
+  if (EFI_ERROR (Status)) {\r
+    return ;\r
+  }\r
+  //\r
+  // Locate DataHub protocol.\r
+  //\r
+  Status = gBS->LocateProtocol (&gEfiDataHubProtocolGuid, NULL, &DataHub);\r
+  if (EFI_ERROR (Status)) {\r
+    return ;\r
+  }\r
+  //\r
+  // Search the Handle array to find the meory size information.\r
+  //\r
+  for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) {\r
+    Status = gBS->OpenProtocol (\r
+                    HandleBuffer[HandleIndex],\r
+                    &gEfiWinNtIoProtocolGuid,\r
+                    &WinNtIo,\r
+                    Context,\r
+                    NULL,\r
+                    EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
+                    );\r
+    if (EFI_ERROR (Status)) {\r
+      continue;\r
+    }\r
+\r
+    if ((WinNtIo->WinNtThunk->Signature == EFI_WIN_NT_THUNK_PROTOCOL_SIGNATURE) &&\r
+        CompareGuid (WinNtIo->TypeGuid, &gEfiWinNtMemoryGuid)\r
+          ) {\r
+      //\r
+      // Check if this record has been stored in data hub.\r
+      //\r
+      do {\r
+        Status = DataHub->GetNextRecord (DataHub, &MonotonicCount, NULL, &Record);\r
+        if (Record->DataRecordClass == EFI_DATA_RECORD_CLASS_DATA) {\r
+          DataHeader = (EFI_SUBCLASS_TYPE1_HEADER *) (Record + 1);\r
+          if (CompareGuid (&Record->DataRecordGuid, &gEfiProcessorSubClassGuid) &&\r
+              (DataHeader->RecordType == EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER)\r
+              ) {\r
+            RecordFound = TRUE;\r
+          }\r
+        }\r
+      } while (MonotonicCount != 0);\r
+\r
+      if (RecordFound) {\r
+        RecordFound = FALSE;\r
+        continue;\r
+      }\r
+      //\r
+      // Initialize data record.\r
+      //\r
+      MemorySubClassData.Header.Instance    = 1;\r
+      MemorySubClassData.Header.SubInstance = EFI_SUBCLASS_INSTANCE_NON_APPLICABLE;\r
+      MemorySubClassData.Header.RecordType  = EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER;\r
+\r
+      TotalMemorySize                       = (UINT64) Atoi (WinNtIo->EnvString);\r
+\r
+      MemorySubClassData.Record.ArrayStartAddress.MemoryArrayStartAddress               = 0;\r
+      MemorySubClassData.Record.ArrayStartAddress.MemoryArrayEndAddress                 = LShiftU64 (TotalMemorySize, 20) - 1;\r
+      MemorySubClassData.Record.ArrayStartAddress.PhysicalMemoryArrayLink.ProducerName  = gEfiMemoryProducerGuid;\r
+      MemorySubClassData.Record.ArrayStartAddress.PhysicalMemoryArrayLink.Instance      = 1;\r
+      MemorySubClassData.Record.ArrayStartAddress.PhysicalMemoryArrayLink.SubInstance = EFI_SUBCLASS_INSTANCE_NON_APPLICABLE;\r
+      MemorySubClassData.Record.ArrayStartAddress.MemoryArrayPartitionWidth = 0;\r
+\r
+      //\r
+      // Store memory size data record to data hub.\r
+      //\r
+      Status = DataHub->LogData (\r
+                          DataHub,\r
+                          &gEfiMemorySubClassGuid,\r
+                          &gEfiMemoryProducerGuid,\r
+                          EFI_DATA_RECORD_CLASS_DATA,\r
+                          &MemorySubClassData,\r
+                          sizeof (EFI_SUBCLASS_TYPE1_HEADER) + sizeof (EFI_MEMORY_ARRAY_START_ADDRESS_DATA)\r
+                          );\r
+    }\r
+\r
+    gBS->CloseProtocol (\r
+          HandleBuffer[HandleIndex],\r
+          &gEfiWinNtIoProtocolGuid,\r
+          Context,\r
+          NULL\r
+          );\r
+  }\r
+}\r
+\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemLanguageString.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemLanguageString.uni
new file mode 100644 (file)
index 0000000..c48a8b7
Binary files /dev/null and b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemLanguageString.uni differ
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemLanguageStringData.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemLanguageStringData.c
new file mode 100644 (file)
index 0000000..080c540
--- /dev/null
@@ -0,0 +1,38 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscSystemLanguageStringData.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// Static (possibly build generated) Bios Vendor data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_SYSTEM_LANGUAGE_STRING_DATA, SystemLanguageString) = {\r
+  0,\r
+  STRING_TOKEN(STR_MISC_SYSTEM_LANGUAGE_STRING)\r
+};\r
+\r
+/* eof - MiscSystemLanguageStringData.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturer.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturer.uni
new file mode 100644 (file)
index 0000000..2933b8a
Binary files /dev/null and b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturer.uni differ
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturerData.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturerData.c
new file mode 100644 (file)
index 0000000..dde795e
--- /dev/null
@@ -0,0 +1,60 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscSystemManufacturerData.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// Static (possibly build generated) System Manufacturer data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_SYSTEM_MANUFACTURER_DATA, MiscSystemManufacturer)\r
+= {\r
+  STRING_TOKEN(STR_MISC_SYSTEM_MANUFACTURER),\r
+  // SystemManufactrurer\r
+  STRING_TOKEN(STR_MISC_SYSTEM_PRODUCT_NAME),\r
+  // SystemProductName\r
+  STRING_TOKEN(STR_MISC_SYSTEM_VERSION),\r
+  // SystemVersion\r
+  STRING_TOKEN(STR_MISC_SYSTEM_SERIAL_NUMBER),\r
+  // SystemSerialNumber\r
+  {\r
+    0xbadfaced,\r
+    0xdead,\r
+    0xbeef,\r
+    0x13,\r
+    0x13,\r
+    0x13,\r
+    0x13,\r
+    0x13,\r
+    0x13,\r
+    0x13,\r
+    0x13\r
+  },\r
+  // SystemUuid\r
+  EfiSystemWakeupTypePowerSwitch  // SystemWakeupType\r
+};\r
+\r
+/* eof - MiscSystemManufacturerData.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturerFunction.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemManufacturerFunction.c
new file mode 100644 (file)
index 0000000..aa428f1
--- /dev/null
@@ -0,0 +1,127 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscSystemManufacturerFunction.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+//\r
+//\r
+MISC_SUBCLASS_TABLE_FUNCTION (\r
+  MiscSystemManufacturer\r
+  )\r
+/*++\r
+Description:\r
+\r
+  This function makes boot time changes to the contents of the\r
+  MiscSystemManufacturer (Type 13).\r
+\r
+Parameters:\r
+\r
+  RecordType\r
+    Type of record to be processed from the Data Table.\r
+    mMiscSubclassDataTable[].RecordType\r
+\r
+  RecordLen\r
+    Size of static RecordData from the Data Table.\r
+    mMiscSubclassDataTable[].RecordLen\r
+\r
+  RecordData\r
+    Pointer to copy of RecordData from the Data Table.  Changes made\r
+    to this copy will be written to the Data Hub but will not alter\r
+    the contents of the static Data Table.\r
+\r
+  LogRecordData\r
+    Set *LogRecordData to TRUE to log RecordData to Data Hub.\r
+    Set *LogRecordData to FALSE when there is no more data to log.\r
+\r
+Returns:\r
+\r
+  EFI_SUCCESS\r
+    All parameters were valid and *RecordData and *LogRecordData have\r
+    been set.\r
+\r
+  EFI_UNSUPPORTED\r
+    Unexpected RecordType value.\r
+\r
+  EFI_INVALID_PARAMETER\r
+    One of the following parameter conditions was true:\r
+      RecordLen was zero.\r
+      RecordData was NULL.\r
+      LogRecordData was NULL.\r
+--*/\r
+{\r
+  STATIC BOOLEAN  Done = FALSE;\r
+\r
+  //\r
+  // First check for invalid parameters.\r
+  //\r
+  if (*RecordLen == 0 || RecordData == NULL || LogRecordData == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+  //\r
+  // Then check for unsupported RecordType.\r
+  //\r
+  if (RecordType != EFI_MISC_SYSTEM_MANUFACTURER_RECORD_NUMBER) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+  //\r
+  // Is this the first time through this function?\r
+  //\r
+  if (!Done) {\r
+    //\r
+    // Yes, this is the first time.  Inspect/Change the contents of the\r
+    // RecordData structure.\r
+    //\r
+    //\r
+    // Set system GUID.\r
+    //\r
+    // ((EFI_MISC_SYSTEM_MANUFACTURER_DATA *)RecordData)->SystemUuid = %%TBD\r
+    //\r
+    // Set power-on type.\r
+    //\r
+    // ((EFI_MISC_SYSTEM_MANUFACTURER_DATA *)RecordData)->SystemWakeupType = %%TBD\r
+    //\r
+    // Set Done flag to TRUE for next pass through this function.\r
+    // Set *LogRecordData to TRUE so data will get logged to Data Hub.\r
+    //\r
+    Done            = TRUE;\r
+    *LogRecordData  = TRUE;\r
+  } else {\r
+    //\r
+    // No, this is the second time.  Reset the state of the Done flag\r
+    // to FALSE and tell the data logger that there is no more data\r
+    // to be logged for this record type.  If any memory allocations\r
+    // were made by earlier passes, they must be released now.\r
+    //\r
+    Done            = FALSE;\r
+    *LogRecordData  = FALSE;\r
+  }\r
+\r
+  return EFI_SUCCESS;\r
+}\r
+\r
+/* eof - MiscSystemManufacturerFunction.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemOptionString.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemOptionString.uni
new file mode 100644 (file)
index 0000000..eec73f8
Binary files /dev/null and b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemOptionString.uni differ
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemOptionStringData.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemOptionStringData.c
new file mode 100644 (file)
index 0000000..20e55c3
--- /dev/null
@@ -0,0 +1,37 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  MiscSystemOptionStringData.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// Static (possibly build generated) Bios Vendor data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_SYSTEM_OPTION_STRING_DATA, SystemOptionString) = {\r
+  STRING_TOKEN(STR_MISC_SYSTEM_OPTION_STRING)\r
+};\r
+\r
+/* eof - MiscSystemOptionStringData.c */\r
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemSlotDesignation.uni b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemSlotDesignation.uni
new file mode 100644 (file)
index 0000000..ac37d53
Binary files /dev/null and b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemSlotDesignation.uni differ
diff --git a/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemSlotDesignationData.c b/Nt32Pkg/MiscSubClassPlatformDxe/MiscSystemSlotDesignationData.c
new file mode 100644 (file)
index 0000000..7610322
--- /dev/null
@@ -0,0 +1,57 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+  \r
+    MiscSystemSlotDesignationData.c\r
+  \r
+Abstract: \r
+\r
+  This driver parses the mMiscSubclassDataTable structure and reports\r
+  any generated data to the DataHub.\r
+\r
+--*/\r
+\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "CommonHeader.h"\r
+\r
+#include "MiscSubclassDriver.h"\r
+\r
+//\r
+// Static (possibly build generated) Bios Vendor data.\r
+//\r
+MISC_SUBCLASS_TABLE_DATA(EFI_MISC_SYSTEM_SLOT_DESIGNATION_DATA, MiscSystemSlotDesignation) = {\r
+  STRING_TOKEN(STR_MISC_SYSTEM_SLOT_DESIGNATION),   // SlotDesignation\r
+  EfiSlotTypeOther,         // SlotType\r
+  EfiSlotDataBusWidthOther, // SlotDataBusWidth\r
+  EfiSlotUsageOther,        // SlotUsage\r
+  EfiSlotLengthOther,       // SlotLength\r
+  0,                        // SlotId\r
+  {                         // SlotCharacteristics\r
+    0,                      // CharacteristicsUnknown  :1;\r
+    0,                      // Provides50Volts         :1;\r
+    0,                      // Provides33Volts         :1;\r
+    0,                      // SharedSlot              :1;\r
+    0,                      // PcCard16Supported       :1;\r
+    0,                      // CardBusSupported        :1;\r
+    0,                      // ZoomVideoSupported      :1;\r
+    0,                      // ModemRingResumeSupported:1;\r
+    0,                      // PmeSignalSupported      :1;\r
+    0,                      // HotPlugDevicesSupported :1;\r
+    0,                      // SmbusSignalSupported    :1;\r
+    0                       // Reserved                :21;\r
+  },\r
+  0                         // SlotDevicePath\r
+};\r
+\r
+/* eof - MiscSystemSlotsData.c */\r
index bd47ba6bbb807438479c53faeb80b935fafae65a..61b2d83713cdcc9499c99a93a1f59d432b8f2394 100644 (file)
   PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf\r
   DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf\r
   UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf\r
   PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf\r
   DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf\r
   UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf\r
-  HiiLib|$(WORKSPACE)\MdePkg\Library/HiiLib/HiiLib.inf\r
+  FrameworkHiiLib|$(WORKSPACE)\IntelFrameworkPkg\Library/HiiLib/FrameworkHiiLib.inf\r
   UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
   DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
   BaseMemoryLib|$(WORKSPACE)\MdePkg\Library/BaseMemoryLib/BaseMemoryLib.inf\r
   UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
   DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
   BaseMemoryLib|$(WORKSPACE)\MdePkg\Library/BaseMemoryLib/BaseMemoryLib.inf\r
   PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf\r
   EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf\r
   UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf\r
   PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf\r
   EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf\r
   UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf\r
-  HiiLib|$(WORKSPACE)\MdePkg\Library/HiiLib/HiiLib.inf\r
+  FrameworkHiiLib|$(WORKSPACE)\IntelFrameworkPkg\Library/HiiLib/FrameworkHiiLib.inf\r
   UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
   HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf\r
   DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
   UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
   HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf\r
   DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
   PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf\r
   DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf\r
   UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf\r
   PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf\r
   DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf\r
   UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf\r
-  HiiLib|$(WORKSPACE)\MdePkg\Library/HiiLib/HiiLib.inf\r
+  FrameworkHiiLib|$(WORKSPACE)\IntelFrameworkPkg\Library/HiiLib/FrameworkHiiLib.inf\r
   UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
   DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
   BaseMemoryLib|$(WORKSPACE)\MdePkg\Library/BaseMemoryLib/BaseMemoryLib.inf\r
   UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
   DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
   BaseMemoryLib|$(WORKSPACE)\MdePkg\Library/BaseMemoryLib/BaseMemoryLib.inf\r
   PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf\r
   DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf\r
   UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf\r
   PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf\r
   DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf\r
   UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf\r
-  HiiLib|$(WORKSPACE)\MdePkg\Library/HiiLib/HiiLib.inf\r
+  FrameworkHiiLib|$(WORKSPACE)\IntelFrameworkPkg\Library/HiiLib/FrameworkHiiLib.inf\r
   UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
   DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
   BaseMemoryLib|$(WORKSPACE)\MdePkg\Library/BaseMemoryLib/BaseMemoryLib.inf\r
   UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
   DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
   BaseMemoryLib|$(WORKSPACE)\MdePkg\Library/BaseMemoryLib/BaseMemoryLib.inf\r
   PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf\r
   DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf\r
   UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf\r
   PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf\r
   DxeServicesTableLib|$(WORKSPACE)\MdePkg\Library/DxeServicesTableLib/DxeServicesTableLib.inf\r
   UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf\r
-  HiiLib|$(WORKSPACE)\MdePkg\Library/HiiLib/HiiLib.inf\r
+  FrameworkHiiLib|$(WORKSPACE)\IntelFrameworkPkg\Library/HiiLib/FrameworkHiiLib.inf\r
   UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
   DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
   BaseMemoryLib|$(WORKSPACE)\MdePkg\Library/BaseMemoryLib/BaseMemoryLib.inf\r
   UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
   DevicePathLib|$(WORKSPACE)\MdePkg\Library/UefiDevicePathLib/UefiDevicePathLib.inf\r
   BaseMemoryLib|$(WORKSPACE)\MdePkg\Library/BaseMemoryLib/BaseMemoryLib.inf\r
   PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf\r
   EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf\r
   UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf\r
   PrintLib|$(WORKSPACE)\MdePkg\Library/BasePrintLib/BasePrintLib.inf\r
   EdkScsiLib|$(WORKSPACE)\MdeModulePkg\Library/EdkScsiLib/EdkScsiLib.inf\r
   UefiDecompressLib|$(WORKSPACE)\MdeModulePkg\Library/DxeCoreUefiDecompressLibFromHob/DxeCoreUefiDecompressLibFromHob.inf\r
-  HiiLib|$(WORKSPACE)\MdePkg\Library/HiiLib/HiiLib.inf\r
+  FrameworkHiiLib|$(WORKSPACE)\IntelFrameworkPkg\Library/HiiLib/FrameworkHiiLib.inf\r
   UefiApplicationEntryPoint|$(WORKSPACE)\MdePkg\Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf\r
   UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
   HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf\r
   UefiApplicationEntryPoint|$(WORKSPACE)\MdePkg\Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf\r
   UefiBootServicesTableLib|$(WORKSPACE)\MdePkg\Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf\r
   HobLib|$(WORKSPACE)\MdePkg\Library/DxeHobLib/DxeHobLib.inf\r
 ################################################################################\r
 \r
 [Components.IA32]\r
 ################################################################################\r
 \r
 [Components.IA32]\r
+  ${WORKSPACE}/Nt32Pkg/BootModePei/BootMode.inf\r
+  $(WORKSPACE)\Nt32Pkg\WinNtThunkDxe\WinNtThunk.inf\r
+  ${WORKSPACE}/Nt32Pkg/MiscSubClassPlatformDxe/MiscSubclassDriver.inf\r
   $(WORKSPACE)\Nt32Pkg\WinNtThunkDxe\WinNtThunk.inf\r
   $(WORKSPACE)\Nt32Pkg\WinNtThunkPPIToProtocolPeim\WinNtThunkPPIToProtocolPeim.inf\r
   $(WORKSPACE)\Nt32Pkg\WinNtAutoScanPeim\WinNtAutoScan.inf\r
   $(WORKSPACE)\Nt32Pkg\WinNtBlockIoDxe\WinNtBlockIo.inf\r
   $(WORKSPACE)\Nt32Pkg\WinNtBusDriverDxe\WinNtBusDriver.inf\r
   $(WORKSPACE)\Nt32Pkg\WinNtConsoleDxe\WinNtConsole.inf\r
   $(WORKSPACE)\Nt32Pkg\WinNtThunkDxe\WinNtThunk.inf\r
   $(WORKSPACE)\Nt32Pkg\WinNtThunkPPIToProtocolPeim\WinNtThunkPPIToProtocolPeim.inf\r
   $(WORKSPACE)\Nt32Pkg\WinNtAutoScanPeim\WinNtAutoScan.inf\r
   $(WORKSPACE)\Nt32Pkg\WinNtBlockIoDxe\WinNtBlockIo.inf\r
   $(WORKSPACE)\Nt32Pkg\WinNtBusDriverDxe\WinNtBusDriver.inf\r
   $(WORKSPACE)\Nt32Pkg\WinNtConsoleDxe\WinNtConsole.inf\r
-  $(WORKSPACE)\Nt32Pkg\WinNtSimpleFileSystemDxe\WinNtSimpleFileSystem.inf
\ No newline at end of file
+  $(WORKSPACE)\Nt32Pkg\WinNtSimpleFileSystemDxe\WinNtSimpleFileSystem.inf\r