//\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
//\r
#pragma warning(default : 4115)\r
#pragma warning(default : 4201)\r
-#pragma warning(default : 4214)\r
\r
\r
#endif\r
--- /dev/null
+/**@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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+#/** @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
--- /dev/null
+<?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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
--- /dev/null
+/*++\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
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
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
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
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
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
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
################################################################################\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\WinNtSimpleFileSystemDxe\WinNtSimpleFileSystem.inf
\ No newline at end of file
+ $(WORKSPACE)\Nt32Pkg\WinNtSimpleFileSystemDxe\WinNtSimpleFileSystem.inf\r