From dc9624aa5585b52abb5cd3456c3f6bdf55f45836 Mon Sep 17 00:00:00 2001 From: gikidy Date: Mon, 14 Dec 2009 01:51:42 +0000 Subject: [PATCH] Remove Driver Health sample driver from OptionRomPkg. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9558 6f19259b-4bc3-4df7-8a09-765794883524 --- OptionRomPkg/DriverHealthDxe/ComponentName.c | 269 --- .../DriverHealthDxe/DriverHealthDxe.c | 1961 ----------------- .../DriverHealthDxe/DriverHealthDxe.h | 643 ------ .../DriverHealthDxe/DriverHealthDxe.inf | 72 - .../DriverHealthDxe/DriverHealthStrings.uni | Bin 7424 -> 0 bytes .../DriverHealthDxe/DriverHealthVfr.Vfr | 60 - OptionRomPkg/DriverHealthDxe/NVDataStruc.h | 35 - OptionRomPkg/OptionRomPkg.dsc | 3 - 8 files changed, 3043 deletions(-) delete mode 100644 OptionRomPkg/DriverHealthDxe/ComponentName.c delete mode 100644 OptionRomPkg/DriverHealthDxe/DriverHealthDxe.c delete mode 100644 OptionRomPkg/DriverHealthDxe/DriverHealthDxe.h delete mode 100644 OptionRomPkg/DriverHealthDxe/DriverHealthDxe.inf delete mode 100644 OptionRomPkg/DriverHealthDxe/DriverHealthStrings.uni delete mode 100644 OptionRomPkg/DriverHealthDxe/DriverHealthVfr.Vfr delete mode 100644 OptionRomPkg/DriverHealthDxe/NVDataStruc.h diff --git a/OptionRomPkg/DriverHealthDxe/ComponentName.c b/OptionRomPkg/DriverHealthDxe/ComponentName.c deleted file mode 100644 index 546f1e6462..0000000000 --- a/OptionRomPkg/DriverHealthDxe/ComponentName.c +++ /dev/null @@ -1,269 +0,0 @@ -/** @file - UEFI Component Name(2) protocol implementation for DiskIo driver. - -Copyright (c) 2006 - 2009, Intel Corporation.
-All rights reserved. This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#include "DriverHealthDxe.h" - -#define DISK_IO_CONTRORLLER_NAME "Disk Io Controller # " - -// -// EFI Component Name Protocol -// -GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gDiskIoComponentName = { - DiskIoComponentNameGetDriverName, - DiskIoComponentNameGetControllerName, - "eng" -}; - -// -// EFI Component Name 2 Protocol -// -GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gDiskIoComponentName2 = { - (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) DiskIoComponentNameGetDriverName, - (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) DiskIoComponentNameGetControllerName, - "en" -}; - -// -// Driver name table for DiskIo module. -// It is shared by the implementation of ComponentName & ComponentName2 Protocol. -// -GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mDiskIoDriverNameTable[] = { - { - "eng;en", - (CHAR16 *)L"Generic Disk I/O Driver" - }, - { - NULL, - NULL - } -}; - - - -/** - Retrieves a Unicode string that is the user readable name of the driver. - - This function retrieves the user readable name of a driver in the form of a - Unicode string. If the driver specified by This has a user readable name in - the language specified by Language, then a pointer to the driver name is - returned in DriverName, and EFI_SUCCESS is returned. If the driver specified - by This does not support the language specified by Language, - then EFI_UNSUPPORTED is returned. - - @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or - EFI_COMPONENT_NAME_PROTOCOL instance. - - @param Language[in] A pointer to a Null-terminated ASCII string - array indicating the language. This is the - language of the driver name that the caller is - requesting, and it must match one of the - languages specified in SupportedLanguages. The - number of languages supported by a driver is up - to the driver writer. Language is specified - in RFC 4646 or ISO 639-2 language code format. - - @param DriverName[out] A pointer to the Unicode string to return. - This Unicode string is the name of the - driver specified by This in the language - specified by Language. - - @retval EFI_SUCCESS The Unicode string for the Driver specified by - This and the language specified by Language was - returned in DriverName. - - @retval EFI_INVALID_PARAMETER Language is NULL. - - @retval EFI_INVALID_PARAMETER DriverName is NULL. - - @retval EFI_UNSUPPORTED The driver specified by This does not support - the language specified by Language. - -**/ -EFI_STATUS -EFIAPI -DiskIoComponentNameGetDriverName ( - IN EFI_COMPONENT_NAME_PROTOCOL *This, - IN CHAR8 *Language, - OUT CHAR16 **DriverName - ) -{ - return LookupUnicodeString2 ( - Language, - This->SupportedLanguages, - mDiskIoDriverNameTable, - DriverName, - (BOOLEAN)(This == &gDiskIoComponentName) - ); -} - - - -/** - Retrieves a Unicode string that is the user readable name of the controller - that is being managed by a driver. - - This function retrieves the user readable name of the controller specified by - ControllerHandle and ChildHandle in the form of a Unicode string. If the - driver specified by This has a user readable name in the language specified by - Language, then a pointer to the controller name is returned in ControllerName, - and EFI_SUCCESS is returned. If the driver specified by This is not currently - managing the controller specified by ControllerHandle and ChildHandle, - then EFI_UNSUPPORTED is returned. If the driver specified by This does not - support the language specified by Language, then EFI_UNSUPPORTED is returned. - - @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or - EFI_COMPONENT_NAME_PROTOCOL instance. - - @param ControllerHandle[in] The handle of a controller that the driver - specified by This is managing. This handle - specifies the controller whose name is to be - returned. - - @param ChildHandle[in] The handle of the child controller to retrieve - the name of. This is an optional parameter that - may be NULL. It will be NULL for device - drivers. It will also be NULL for a bus drivers - that wish to retrieve the name of the bus - controller. It will not be NULL for a bus - driver that wishes to retrieve the name of a - child controller. - - @param Language[in] A pointer to a Null-terminated ASCII string - array indicating the language. This is the - language of the driver name that the caller is - requesting, and it must match one of the - languages specified in SupportedLanguages. The - number of languages supported by a driver is up - to the driver writer. Language is specified in - RFC 4646 or ISO 639-2 language code format. - - @param ControllerName[out] A pointer to the Unicode string to return. - This Unicode string is the name of the - controller specified by ControllerHandle and - ChildHandle in the language specified by - Language from the point of view of the driver - specified by This. - - @retval EFI_SUCCESS The Unicode string for the user readable name in - the language specified by Language for the - driver specified by This was returned in - DriverName. - - @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE. - - @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid - EFI_HANDLE. - - @retval EFI_INVALID_PARAMETER Language is NULL. - - @retval EFI_INVALID_PARAMETER ControllerName is NULL. - - @retval EFI_UNSUPPORTED The driver specified by This is not currently - managing the controller specified by - ControllerHandle and ChildHandle. - - @retval EFI_UNSUPPORTED The driver specified by This does not support - the language specified by Language. - -**/ -EFI_STATUS -EFIAPI -DiskIoComponentNameGetControllerName ( - IN EFI_COMPONENT_NAME_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle, - IN EFI_HANDLE ChildHandle OPTIONAL, - IN CHAR8 *Language, - OUT CHAR16 **ControllerName - ) -{ - EFI_STATUS Status; - EFI_DISK_IO_PROTOCOL *DiskIo; - DISK_IO_PRIVATE_DATA *Private; - - // - // This is a device driver, so ChildHandle must be NULL. - // - if (ChildHandle != NULL) { - return EFI_UNSUPPORTED; - } - // - // Make sure this driver is currently managing ControllerHandle - // - Status = EfiTestManagedDevice ( - ControllerHandle, - gDiskIoDriverBinding.DriverBindingHandle, - &gEfiBlockIoProtocolGuid - ); - if (EFI_ERROR (Status)) { - return Status; - } - // - // Get the Block I/O Protocol on Controller - // - Status = gBS->OpenProtocol ( - ControllerHandle, - &gEfiDiskIoProtocolGuid, - (VOID **) &DiskIo, - gDiskIoDriverBinding.DriverBindingHandle, - ControllerHandle, - EFI_OPEN_PROTOCOL_GET_PROTOCOL - ); - if (EFI_ERROR (Status)) { - return Status; - } - // - // Get the Serial Controller's Device structure - // - Private = DISK_IO_PRIVATE_DATA_FROM_THIS (DiskIo); - - return LookupUnicodeString2 ( - Language, - This->SupportedLanguages, - Private->ControllerNameTable, - ControllerName, - (BOOLEAN)(This == &gDiskIoComponentName) - ); -} - -/** - Add the ISO639-2 and RFC4646 component name both for the Disk IO device - - @param DiskIoDevice A pointer to the DISK_IO_PRIVATE_DATA instance. - -**/ -VOID -AddName ( - IN DISK_IO_PRIVATE_DATA *DiskIoDevice - ) -{ - CHAR16 DiskIoControllerName[sizeof (DISK_IO_CONTRORLLER_NAME)]; - - StrCpy (DiskIoControllerName, L"Disk Io Controller # "); - DiskIoControllerName[sizeof (DISK_IO_CONTRORLLER_NAME) - 2] = (CHAR16) (L'0' + DiskIoDevice->ControllerIndex); - AddUnicodeString2 ( - "eng", - gDiskIoComponentName.SupportedLanguages, - &DiskIoDevice->ControllerNameTable, - (CHAR16 *) DiskIoControllerName, - TRUE - ); - AddUnicodeString2 ( - "en", - gDiskIoComponentName2.SupportedLanguages, - &DiskIoDevice->ControllerNameTable, - (CHAR16 *) DiskIoControllerName, - FALSE - ); - -} diff --git a/OptionRomPkg/DriverHealthDxe/DriverHealthDxe.c b/OptionRomPkg/DriverHealthDxe/DriverHealthDxe.c deleted file mode 100644 index 5f56cfb0c8..0000000000 --- a/OptionRomPkg/DriverHealthDxe/DriverHealthDxe.c +++ /dev/null @@ -1,1961 +0,0 @@ -/** @file - DiskIo driver that lays on every BlockIo protocol in the system. - DiskIo converts a block oriented device to a byte oriented device. - - Disk access may have to handle unaligned request about sector boundaries. - There are three cases: - UnderRun - The first byte is not on a sector boundary or the read request is - less than a sector in length. - Aligned - A read of N contiguous sectors. - OverRun - The last byte is not on a sector boundary. - -Copyright (c) 2006 - 2009, Intel Corporation.
- All rights reserved. This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#include "DriverHealthDxe.h" - -#undef STRING_TOKEN -#define STRING_TOKEN(x) 0 - -extern EFI_GUID gEfiCallerIdGuid; - -CHAR16 VariableName[] = L"Config"; -UINTN mNumNotHealthy = 0; -UINT8 ControllerIndex = 0; - -// -// Link used to store the controller health status -// -LIST_ENTRY mControllerList = {NULL, NULL}; - -// -// 0 - Healthy -> {0} -// 1 - Health with warning messages -> {1} -// 2 - Failed -> {2} -// 3 - Failed with error messages -> {3} -// 4 - RebootRequired -> {4} -// 5 - RebootRequired with messages -> {5} -// 6 - ReconnectRequired -> {6} -// 7 - ReconnectRequired with messages -> {7} -// 100..103 - RepairRequired -> {0..3} -// 104..107 - RepairRequired with error messages -> {0..3} -// 108..111 - RepairRequired with progress notifications -> {0..3} -// 112..115 - RepairRequired with error messages and progress notifications -> {0..3} -// 132..163 - RepairRequired -> {300..331} -// 164..195 - RepairRequired with error messages -> {300..331} -// 196..227 - RepairRequired with progress notifications -> {300..331} -// 228..259 - RepairRequired with error messages and progress notifications -> {300..331} -// 300..307 - ConfigRequired -> {0..7} -// 308..315 - ConfigRequired with error messages -> {0..7} -// 316..323 - ConfigRequired with forms -> {0..7} -// 324..331 - ConfigRequired with forms and error messages -> {0..7} -// 332..347 - ConfigRequired -> {100..115} -// 348..363 - ConfigRequired with error messages -> {100..115} -// 364..379 - ConfigRequired with forms -> {100.115} -// 380..395 - ConfigRequired with forms and error messages -> {100..115} - -DEVICE_STATE mDeviceState[] = { - { TRUE, 308, 000, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 309, 001, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 310, 002, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 311, 003, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 312, 004, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 313, 005, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 314, 006, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 315, 007, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - - { TRUE, 000, 000, 0, FALSE, EfiDriverHealthStatusHealthy }, - { TRUE, 001, 001, STRING_TOKEN (STR_HEALTHY_WARNING), FALSE, EfiDriverHealthStatusHealthy }, - - { TRUE, 002, 002, 0, FALSE, EfiDriverHealthStatusFailed }, - { TRUE, 003, 003, STRING_TOKEN (STR_FAILED_ERROR), FALSE, EfiDriverHealthStatusFailed }, - - { FALSE, 004, 004, 0, FALSE, EfiDriverHealthStatusRebootRequired }, - { FALSE, 005, 005, STRING_TOKEN (STR_REBOOT_REQUIRED), FALSE, EfiDriverHealthStatusRebootRequired }, - - { FALSE, 006, 006, 0, FALSE, EfiDriverHealthStatusReconnectRequired }, - { FALSE, 007, 007, STRING_TOKEN (STR_RECONNECT_REQUIRED), FALSE, EfiDriverHealthStatusReconnectRequired }, - - { TRUE, 100, 000, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 101, 001, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 102, 002, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 103, 003, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - - { TRUE, 104, 000, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 105, 001, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 106, 002, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 107, 003, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - - { TRUE, 108, 000, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 109, 001, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 110, 002, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 111, 003, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - - { TRUE, 112, 000, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 113, 001, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 114, 002, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 115, 003, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - - { TRUE, 132, 300, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 133, 301, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 134, 302, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 135, 303, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 136, 304, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 137, 305, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 138, 306, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 139, 307, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 140, 308, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 141, 309, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 142, 310, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 143, 311, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 144, 312, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 145, 313, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 146, 314, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 147, 315, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 148, 316, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 149, 317, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 150, 318, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 151, 319, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 152, 320, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 153, 321, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 154, 322, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 155, 323, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 156, 324, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 157, 325, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 158, 326, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 159, 327, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 160, 328, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 161, 329, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 162, 330, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 163, 331, 0, FALSE, EfiDriverHealthStatusRepairRequired }, - - { TRUE, 164, 300, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 165, 301, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 166, 302, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 167, 303, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 168, 304, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 169, 305, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 170, 306, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 171, 307, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 172, 308, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 173, 309, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 174, 310, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 175, 311, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 176, 312, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 177, 313, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 178, 314, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 179, 315, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 180, 316, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 181, 317, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 182, 318, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 183, 319, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 184, 320, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 185, 321, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 186, 322, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 187, 323, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 188, 324, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 189, 325, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 190, 326, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 191, 327, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 192, 328, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 193, 329, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 194, 330, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 195, 331, STRING_TOKEN (STR_REPAIR_REQUIRED), FALSE, EfiDriverHealthStatusRepairRequired }, - - { TRUE, 196, 300, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 197, 301, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 198, 302, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 199, 303, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 200, 304, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 201, 305, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 202, 306, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 203, 307, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 204, 308, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 205, 309, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 206, 310, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 207, 311, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 208, 312, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 209, 313, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 210, 314, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 211, 315, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 212, 316, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 213, 317, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 214, 318, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 215, 319, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 216, 320, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 217, 321, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 218, 322, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 219, 323, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 220, 324, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 221, 325, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 222, 326, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 223, 327, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 224, 328, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 225, 329, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 226, 330, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 227, 331, 0, TRUE, EfiDriverHealthStatusRepairRequired }, - - { TRUE, 228, 300, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 229, 301, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 230, 302, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 231, 303, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 232, 304, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 233, 305, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 234, 306, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 235, 307, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 236, 308, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 237, 309, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 238, 310, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 239, 311, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 240, 312, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 241, 313, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 242, 314, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 243, 315, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 244, 316, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 245, 317, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 246, 318, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 247, 319, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 248, 320, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 249, 321, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 250, 322, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 251, 323, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 252, 324, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 253, 325, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 254, 326, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 255, 327, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 256, 328, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 257, 329, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 258, 330, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - { TRUE, 259, 331, STRING_TOKEN (STR_REPAIR_REQUIRED), TRUE, EfiDriverHealthStatusRepairRequired }, - - { TRUE, 300, 000, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 301, 001, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 302, 002, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 303, 003, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 304, 004, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 305, 005, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 306, 006, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 307, 007, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - - { TRUE, 308, 000, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 309, 001, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 310, 002, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 311, 003, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 312, 004, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 313, 005, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 314, 006, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 315, 007, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - - { TRUE, 316, 000, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 317, 001, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 318, 002, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 319, 003, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 320, 004, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 321, 005, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 322, 006, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 323, 007, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - - { TRUE, 324, 000, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 325, 001, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 326, 002, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 327, 003, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 328, 004, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 329, 005, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 330, 006, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 331, 007, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - - { TRUE, 332, 100, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 333, 101, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 334, 102, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 335, 103, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 336, 104, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 337, 105, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 338, 106, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 339, 107, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 340, 108, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 341, 109, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 342, 110, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 343, 111, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 344, 112, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 345, 113, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 346, 114, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 347, 115, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - - { TRUE, 348, 100, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 349, 101, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 350, 102, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 351, 103, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 352, 104, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 353, 105, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 354, 106, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 355, 107, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 356, 108, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 357, 109, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 358, 110, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 359, 111, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 360, 112, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 361, 113, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 362, 114, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 363, 115, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - - { TRUE, 364, 100, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 365, 101, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 366, 102, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 367, 103, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 368, 104, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 369, 105, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 370, 106, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 371, 107, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 372, 108, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 373, 109, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 374, 110, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 375, 111, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 376, 112, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 377, 113, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 378, 114, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 379, 115, 0, FALSE, EfiDriverHealthStatusConfigurationRequired }, - - { TRUE, 380, 100, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 381, 101, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 382, 102, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 383, 103, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 384, 104, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 385, 105, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 386, 106, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 387, 107, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 388, 108, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 389, 109, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 390, 110, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 391, 111, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 392, 112, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 393, 113, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 394, 114, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - { TRUE, 395, 115, STRING_TOKEN (STR_CONFIG_WARNING), FALSE, EfiDriverHealthStatusConfigurationRequired }, - - { TRUE, 999, 999, 0, FALSE } -}; - -HII_VENDOR_DEVICE_PATH mHiiVendorDevicePathDiskIoDummy = { - { - { - HARDWARE_DEVICE_PATH, - HW_VENDOR_DP, - { - (UINT8) (sizeof (VENDOR_DEVICE_PATH)), - (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8) - } - }, - // - // {C153B68E-EBFC-488e-B110-662867745BBE} - // - { 0xc153b68e, 0xebfc, 0x488e, { 0xb1, 0x10, 0x66, 0x28, 0x67, 0x74, 0x5b, 0xbe} } - }, - { - END_DEVICE_PATH_TYPE, - END_ENTIRE_DEVICE_PATH_SUBTYPE, - { - (UINT8) (END_DEVICE_PATH_LENGTH), - (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8) - } - } -}; - -EFI_HII_HANDLE mHiiHandle = NULL; - -EFI_DRIVER_BINDING_PROTOCOL gDiskIoDriverBinding = { - DiskIoDriverBindingSupported, - DiskIoDriverBindingStart, - DiskIoDriverBindingStop, - 0xaa, - NULL, - NULL -}; - -EFI_DRIVER_HEALTH_PROTOCOL gDiskIoDriverHealth = { - DiskIoDriverHealthGetHealthStatus, - DiskIoDriverHealthRepair -}; -// -// Template for DiskIo private data structure. -// The pointer to BlockIo protocol interface is assigned dynamically. -// -DISK_IO_PRIVATE_DATA gDiskIoPrivateDataTemplate = { - DISK_IO_PRIVATE_DATA_SIGNATURE, - { - EFI_DISK_IO_PROTOCOL_REVISION, - DiskIoReadDisk, - DiskIoWriteDisk - }, - NULL, - NULL, // Handle - NULL, // Consumed Protocol - NULL, - // - // Produced Protocol - // - { - DummyExtractConfig, - DummyRouteConfig, - DummyDriverCallback - }, - // - // NVdata - // - { 0x0 }, - // - // Controller Name - // - NULL, - // - // Controller Index - // - 0 -}; - -DEVICE_STATE * -GetDeviceState ( - UINTN DeviceStateNumber - ) -{ - UINTN Index; - - for (Index = 0; mDeviceState[Index].CurrentState != 999 && mDeviceState[Index].CurrentState != DeviceStateNumber; Index++); - ASSERT (mDeviceState[Index].CurrentState != 999); - - return &mDeviceState[Index]; -} - - -/** - Test to see if this driver supports ControllerHandle. - - @param This Protocol instance pointer. - @param ControllerHandle Handle of device to test - @param RemainingDevicePath Optional parameter use to pick a specific child - device to start. - - @retval EFI_SUCCESS This driver supports this device - @retval EFI_ALREADY_STARTED This driver is already running on this device - @retval other This driver does not support this device - -**/ -EFI_STATUS -EFIAPI -DiskIoDriverBindingSupported ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle, - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL - ) -{ - EFI_STATUS Status; - EFI_BLOCK_IO_PROTOCOL *BlockIo; - - // - // Open the IO Abstraction(s) needed to perform the supported test. - // - Status = gBS->OpenProtocol ( - ControllerHandle, - &gEfiBlockIoProtocolGuid, - (VOID **) &BlockIo, - This->DriverBindingHandle, - ControllerHandle, - EFI_OPEN_PROTOCOL_BY_DRIVER - ); - if (EFI_ERROR (Status)) { - return Status; - } - - // - // Close the I/O Abstraction(s) used to perform the supported test. - // - gBS->CloseProtocol ( - ControllerHandle, - &gEfiBlockIoProtocolGuid, - This->DriverBindingHandle, - ControllerHandle - ); - return EFI_SUCCESS; -} - - -/** - Start this driver on ControllerHandle by opening a Block IO protocol and - installing a Disk IO protocol on ControllerHandle. - - @param This Protocol instance pointer. - @param ControllerHandle Handle of device to bind driver to - @param RemainingDevicePath Optional parameter use to pick a specific child - device to start. - - @retval EFI_SUCCESS This driver is added to ControllerHandle - @retval EFI_ALREADY_STARTED This driver is already running on ControllerHandle - @retval other This driver does not support this device - -**/ -EFI_STATUS -EFIAPI -DiskIoDriverBindingStart ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle, - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL - ) -{ - EFI_STATUS Status; - DISK_IO_PRIVATE_DATA *Private; - DEVICE_STATE *DeviceState; - UINTN DataSize; - UINT32 StartCount; - CONTROLLER_STATE *ControllerState; - - Private = NULL; - ControllerState = NULL; - - // - // Connect to the Block IO interface on ControllerHandle. - // - Status = gBS->OpenProtocol ( - ControllerHandle, - &gEfiBlockIoProtocolGuid, - (VOID **) &gDiskIoPrivateDataTemplate.BlockIo, - This->DriverBindingHandle, - ControllerHandle, - EFI_OPEN_PROTOCOL_BY_DRIVER - ); - if (EFI_ERROR (Status)) { - return Status; - } - - // - // Initialize the Disk IO device instance. - // - Private = AllocateCopyPool (sizeof (DISK_IO_PRIVATE_DATA), &gDiskIoPrivateDataTemplate); - if (Private == NULL) { - Status = EFI_OUT_OF_RESOURCES; - goto ErrorExit; - } - - // - // Begin Driver Health Protocol Support - // - DataSize = sizeof (StartCount); - Status = gRT->GetVariable ( - L"StartCount", - &gEfiCallerIdGuid, - NULL, - &DataSize, - &StartCount - ); - if (EFI_ERROR (Status)) { - // - // If the configuration can not be read, then set the default config value of 0 - // - StartCount = 0; - } - - ControllerIndex++; - - DeviceState = GetDeviceState (mDeviceState[StartCount].CurrentState); - ASSERT (DeviceState != NULL); - - ControllerState = AllocateZeroPool (sizeof (CONTROLLER_STATE)); - if (ControllerState == NULL) { - return EFI_OUT_OF_RESOURCES; - } - - ControllerState->ControllerHandle = ControllerHandle; - ControllerState->Signature = DISK_IO_CONTROLLER_STATE_SIGNATURE; - ControllerState->DeviceStateNum = DeviceState->CurrentState; - ControllerState->ChildHandle = NULL; - ControllerState->ControllerIndex = ControllerIndex; - - InsertTailList (&mControllerList, &ControllerState->Link); - - if (DeviceState->HealthStatus != EfiDriverHealthStatusHealthy || DeviceState->StringId != 0) { - mNumNotHealthy++; - } - - StartCount++; - while (!mDeviceState[StartCount].StartState) { - if (mDeviceState[StartCount].CurrentState == 999) { - StartCount = 0; - } else { - StartCount++; - } - } - if (mDeviceState[StartCount].CurrentState == 999) { - StartCount = 0; - } - - Status = gRT->SetVariable ( - L"StartCount", - &gEfiCallerIdGuid, - EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS, - sizeof (StartCount), - &StartCount - ); - ASSERT_EFI_ERROR (Status); - - if (DeviceState->HealthStatus == EfiDriverHealthStatusConfigurationRequired) { - Private->NVdata.ConfigGood = 0; - } else { - Private->NVdata.ConfigGood = 1; - } - Status = gRT->SetVariable ( - L"Config", - &gEfiCallerIdGuid, - EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS, - sizeof (Private->NVdata.ConfigGood), - &Private->NVdata.ConfigGood - ); - ASSERT_EFI_ERROR (Status); - - // - // End Driver Health Protocol Support - // - - // - // Install protocol interfaces for the Disk IO device. - // - Status = gBS->InstallProtocolInterface ( - &ControllerHandle, - &gEfiDiskIoProtocolGuid, - EFI_NATIVE_INTERFACE, - &Private->DiskIo - ); - - Private->ControllerIndex = ControllerIndex; - AddName (Private); - -ErrorExit: - if (EFI_ERROR (Status)) { - - if (Private != NULL) { - FreeUnicodeStringTable (Private->ControllerNameTable); - FreePool (Private); - } - - gBS->CloseProtocol ( - ControllerHandle, - &gEfiBlockIoProtocolGuid, - This->DriverBindingHandle, - ControllerHandle - ); - } - - return Status; -} - - -/** - Stop this driver on ControllerHandle by removing Disk IO protocol and closing - the Block IO protocol on ControllerHandle. - - @param This Protocol instance pointer. - @param ControllerHandle Handle of device to stop driver on - @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of - children is zero stop the entire bus driver. - @param ChildHandleBuffer List of Child Handles to Stop. - - @retval EFI_SUCCESS This driver is removed ControllerHandle - @retval other This driver was not removed from this device - -**/ -EFI_STATUS -EFIAPI -DiskIoDriverBindingStop ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle, - IN UINTN NumberOfChildren, - IN EFI_HANDLE *ChildHandleBuffer - ) -{ - EFI_STATUS Status; - EFI_DISK_IO_PROTOCOL *DiskIo; - DISK_IO_PRIVATE_DATA *Private; - DEVICE_STATE *DeviceState; - CONTROLLER_STATE *ControllerState; - LIST_ENTRY *Link; - - ControllerState = NULL; - DeviceState = NULL; - - // - // Get our context back. - // - Status = gBS->OpenProtocol ( - ControllerHandle, - &gEfiDiskIoProtocolGuid, - (VOID **) &DiskIo, - This->DriverBindingHandle, - ControllerHandle, - EFI_OPEN_PROTOCOL_GET_PROTOCOL - ); - if (EFI_ERROR (Status)) { - return EFI_UNSUPPORTED; - } - - Private = DISK_IO_PRIVATE_DATA_FROM_THIS (DiskIo); - - Status = gBS->UninstallProtocolInterface ( - ControllerHandle, - &gEfiDiskIoProtocolGuid, - &Private->DiskIo - ); - if (!EFI_ERROR (Status)) { - - Status = gBS->CloseProtocol ( - ControllerHandle, - &gEfiBlockIoProtocolGuid, - This->DriverBindingHandle, - ControllerHandle - ); - // - // Get the Controller State from global list - // - Link = GetFirstNode (&mControllerList); - - while (!IsNull (&mControllerList, Link)) { - ControllerState = DISK_IO_CONTROLLER_STATE_FROM_LINK (Link); - - if (ControllerState->ControllerHandle == ControllerHandle) { - DeviceState = GetDeviceState (ControllerState->DeviceStateNum); - break; - } - Link = GetNextNode (&mControllerList, Link); - } - - ASSERT (DeviceState != NULL); - - if (DeviceState->HealthStatus != EfiDriverHealthStatusHealthy || DeviceState->StringId != 0) { - mNumNotHealthy--; - } - - RemoveEntryList (Link); - - if (ControllerState != NULL) { - FreePool (ControllerState); - } - } - - if (!EFI_ERROR (Status)) { - FreeUnicodeStringTable (Private->ControllerNameTable); - FreePool (Private); - } - - ControllerIndex = 0; - return Status; -} - - - -/** - Read BufferSize bytes from Offset into Buffer. - Reads may support reads that are not aligned on - sector boundaries. There are three cases: - UnderRun - The first byte is not on a sector boundary or the read request is - less than a sector in length. - Aligned - A read of N contiguous sectors. - OverRun - The last byte is not on a sector boundary. - - @param This Protocol instance pointer. - @param MediaId Id of the media, changes every time the media is replaced. - @param Offset The starting byte offset to read from - @param BufferSize Size of Buffer - @param Buffer Buffer containing read data - - @retval EFI_SUCCESS The data was read correctly from the device. - @retval EFI_DEVICE_ERROR The device reported an error while performing the read. - @retval EFI_NO_MEDIA There is no media in the device. - @retval EFI_MEDIA_CHNAGED The MediaId does not matched the current device. - @retval EFI_INVALID_PARAMETER The read request contains device addresses that are not - valid for the device. - -**/ -EFI_STATUS -EFIAPI -DiskIoReadDisk ( - IN EFI_DISK_IO_PROTOCOL *This, - IN UINT32 MediaId, - IN UINT64 Offset, - IN UINTN BufferSize, - OUT VOID *Buffer - ) -{ - EFI_STATUS Status; - DISK_IO_PRIVATE_DATA *Private; - EFI_BLOCK_IO_PROTOCOL *BlockIo; - EFI_BLOCK_IO_MEDIA *Media; - UINT32 BlockSize; - UINT64 Lba; - UINT64 OverRunLba; - UINT32 UnderRun; - UINT32 OverRun; - BOOLEAN TransactionComplete; - UINTN WorkingBufferSize; - UINT8 *WorkingBuffer; - UINTN Length; - UINT8 *Data; - UINT8 *PreData; - UINTN IsBufferAligned; - UINTN DataBufferSize; - BOOLEAN LastRead; - - Private = DISK_IO_PRIVATE_DATA_FROM_THIS (This); - - BlockIo = Private->BlockIo; - Media = BlockIo->Media; - BlockSize = Media->BlockSize; - - if (Media->MediaId != MediaId) { - return EFI_MEDIA_CHANGED; - } - - WorkingBuffer = Buffer; - WorkingBufferSize = BufferSize; - - // - // Allocate a temporary buffer for operation - // - DataBufferSize = BlockSize * DATA_BUFFER_BLOCK_NUM; - - if (Media->IoAlign > 1) { - PreData = AllocatePool (DataBufferSize + Media->IoAlign); - Data = PreData - ((UINTN) PreData & (Media->IoAlign - 1)) + Media->IoAlign; - } else { - PreData = AllocatePool (DataBufferSize); - Data = PreData; - } - - if (PreData == NULL) { - return EFI_OUT_OF_RESOURCES; - } - - Lba = DivU64x32Remainder (Offset, BlockSize, &UnderRun); - - Length = BlockSize - UnderRun; - TransactionComplete = FALSE; - - Status = EFI_SUCCESS; - if (UnderRun != 0) { - // - // Offset starts in the middle of an Lba, so read the entire block. - // - Status = BlockIo->ReadBlocks ( - BlockIo, - MediaId, - Lba, - BlockSize, - Data - ); - - if (EFI_ERROR (Status)) { - goto Done; - } - - if (Length > BufferSize) { - Length = BufferSize; - TransactionComplete = TRUE; - } - - CopyMem (WorkingBuffer, Data + UnderRun, Length); - - WorkingBuffer += Length; - - WorkingBufferSize -= Length; - if (WorkingBufferSize == 0) { - goto Done; - } - - Lba += 1; - } - - OverRunLba = Lba + DivU64x32Remainder (WorkingBufferSize, BlockSize, &OverRun); - - if (!TransactionComplete && WorkingBufferSize >= BlockSize) { - // - // If the DiskIo maps directly to a BlockIo device do the read. - // - if (OverRun != 0) { - WorkingBufferSize -= OverRun; - } - // - // Check buffer alignment - // - IsBufferAligned = (UINTN) WorkingBuffer & (UINTN) (Media->IoAlign - 1); - - if (Media->IoAlign <= 1 || IsBufferAligned == 0) { - // - // Alignment is satisfied, so read them together - // - Status = BlockIo->ReadBlocks ( - BlockIo, - MediaId, - Lba, - WorkingBufferSize, - WorkingBuffer - ); - - if (EFI_ERROR (Status)) { - goto Done; - } - - WorkingBuffer += WorkingBufferSize; - - } else { - // - // Use the allocated buffer instead of the original buffer - // to avoid alignment issue. - // Here, the allocated buffer (8-byte align) can satisfy the alignment - // - LastRead = FALSE; - do { - if (WorkingBufferSize <= DataBufferSize) { - // - // It is the last calling to readblocks in this loop - // - DataBufferSize = WorkingBufferSize; - LastRead = TRUE; - } - - Status = BlockIo->ReadBlocks ( - BlockIo, - MediaId, - Lba, - DataBufferSize, - Data - ); - if (EFI_ERROR (Status)) { - goto Done; - } - - CopyMem (WorkingBuffer, Data, DataBufferSize); - WorkingBufferSize -= DataBufferSize; - WorkingBuffer += DataBufferSize; - Lba += DATA_BUFFER_BLOCK_NUM; - } while (!LastRead); - } - } - - if (!TransactionComplete && OverRun != 0) { - // - // Last read is not a complete block. - // - Status = BlockIo->ReadBlocks ( - BlockIo, - MediaId, - OverRunLba, - BlockSize, - Data - ); - - if (EFI_ERROR (Status)) { - goto Done; - } - - CopyMem (WorkingBuffer, Data, OverRun); - } - -Done: - if (PreData != NULL) { - FreePool (PreData); - } - - return Status; -} - - -/** - Writes BufferSize bytes from Buffer into Offset. - Writes may require a read modify write to support writes that are not - aligned on sector boundaries. There are three cases: - UnderRun - The first byte is not on a sector boundary or the write request - is less than a sector in length. Read modify write is required. - Aligned - A write of N contiguous sectors. - OverRun - The last byte is not on a sector boundary. Read modified write - required. - - @param This Protocol instance pointer. - @param MediaId Id of the media, changes every time the media is replaced. - @param Offset The starting byte offset to read from - @param BufferSize Size of Buffer - @param Buffer Buffer containing read data - - @retval EFI_SUCCESS The data was written correctly to the device. - @retval EFI_WRITE_PROTECTED The device can not be written to. - @retval EFI_DEVICE_ERROR The device reported an error while performing the write. - @retval EFI_NO_MEDIA There is no media in the device. - @retval EFI_MEDIA_CHNAGED The MediaId does not matched the current device. - @retval EFI_INVALID_PARAMETER The write request contains device addresses that are not - valid for the device. - -**/ -EFI_STATUS -EFIAPI -DiskIoWriteDisk ( - IN EFI_DISK_IO_PROTOCOL *This, - IN UINT32 MediaId, - IN UINT64 Offset, - IN UINTN BufferSize, - IN VOID *Buffer - ) -{ - EFI_STATUS Status; - DISK_IO_PRIVATE_DATA *Private; - EFI_BLOCK_IO_PROTOCOL *BlockIo; - EFI_BLOCK_IO_MEDIA *Media; - UINT32 BlockSize; - UINT64 Lba; - UINT64 OverRunLba; - UINT32 UnderRun; - UINT32 OverRun; - BOOLEAN TransactionComplete; - UINTN WorkingBufferSize; - UINT8 *WorkingBuffer; - UINTN Length; - UINT8 *Data; - UINT8 *PreData; - UINTN IsBufferAligned; - UINTN DataBufferSize; - BOOLEAN LastWrite; - - Private = DISK_IO_PRIVATE_DATA_FROM_THIS (This); - - BlockIo = Private->BlockIo; - Media = BlockIo->Media; - BlockSize = Media->BlockSize; - - if (Media->ReadOnly) { - return EFI_WRITE_PROTECTED; - } - - if (Media->MediaId != MediaId) { - return EFI_MEDIA_CHANGED; - } - - DataBufferSize = BlockSize * DATA_BUFFER_BLOCK_NUM; - - if (Media->IoAlign > 1) { - PreData = AllocatePool (DataBufferSize + Media->IoAlign); - Data = PreData - ((UINTN) PreData & (Media->IoAlign - 1)) + Media->IoAlign; - } else { - PreData = AllocatePool (DataBufferSize); - Data = PreData; - } - - if (PreData == NULL) { - return EFI_OUT_OF_RESOURCES; - } - - WorkingBuffer = Buffer; - WorkingBufferSize = BufferSize; - - Lba = DivU64x32Remainder (Offset, BlockSize, &UnderRun); - - Length = BlockSize - UnderRun; - TransactionComplete = FALSE; - - Status = EFI_SUCCESS; - if (UnderRun != 0) { - // - // Offset starts in the middle of an Lba, so do read modify write. - // - Status = BlockIo->ReadBlocks ( - BlockIo, - MediaId, - Lba, - BlockSize, - Data - ); - - if (EFI_ERROR (Status)) { - goto Done; - } - - if (Length > BufferSize) { - Length = BufferSize; - TransactionComplete = TRUE; - } - - CopyMem (Data + UnderRun, WorkingBuffer, Length); - - Status = BlockIo->WriteBlocks ( - BlockIo, - MediaId, - Lba, - BlockSize, - Data - ); - if (EFI_ERROR (Status)) { - goto Done; - } - - WorkingBuffer += Length; - WorkingBufferSize -= Length; - if (WorkingBufferSize == 0) { - goto Done; - } - - Lba += 1; - } - - OverRunLba = Lba + DivU64x32Remainder (WorkingBufferSize, BlockSize, &OverRun); - - if (!TransactionComplete && WorkingBufferSize >= BlockSize) { - // - // If the DiskIo maps directly to a BlockIo device do the write. - // - if (OverRun != 0) { - WorkingBufferSize -= OverRun; - } - // - // Check buffer alignment - // - IsBufferAligned = (UINTN) WorkingBuffer & (UINTN) (Media->IoAlign - 1); - - if (Media->IoAlign <= 1 || IsBufferAligned == 0) { - // - // Alignment is satisfied, so write them together - // - Status = BlockIo->WriteBlocks ( - BlockIo, - MediaId, - Lba, - WorkingBufferSize, - WorkingBuffer - ); - - if (EFI_ERROR (Status)) { - goto Done; - } - - WorkingBuffer += WorkingBufferSize; - - } else { - // - // The buffer parameter is not aligned with the request - // So use the allocated instead. - // It can fit almost all the cases. - // - LastWrite = FALSE; - do { - if (WorkingBufferSize <= DataBufferSize) { - // - // It is the last calling to writeblocks in this loop - // - DataBufferSize = WorkingBufferSize; - LastWrite = TRUE; - } - - CopyMem (Data, WorkingBuffer, DataBufferSize); - Status = BlockIo->WriteBlocks ( - BlockIo, - MediaId, - Lba, - DataBufferSize, - Data - ); - if (EFI_ERROR (Status)) { - goto Done; - } - - WorkingBufferSize -= DataBufferSize; - WorkingBuffer += DataBufferSize; - Lba += DATA_BUFFER_BLOCK_NUM; - } while (!LastWrite); - } - } - - if (!TransactionComplete && OverRun != 0) { - // - // Last bit is not a complete block, so do a read modify write. - // - Status = BlockIo->ReadBlocks ( - BlockIo, - MediaId, - OverRunLba, - BlockSize, - Data - ); - - if (EFI_ERROR (Status)) { - goto Done; - } - - CopyMem (Data, WorkingBuffer, OverRun); - - Status = BlockIo->WriteBlocks ( - BlockIo, - MediaId, - OverRunLba, - BlockSize, - Data - ); - if (EFI_ERROR (Status)) { - goto Done; - } - } - -Done: - if (PreData != NULL) { - FreePool (PreData); - } - - return Status; -} - - -/** - Retrieves the health status of a controller in the platform. This function can also - optionally return warning messages, error messages, and a set of HII Forms that may - be repair a controller that is not proper configured. - - @param This A pointer to the EFI_DRIVER_HEALTH_PROTOCOL instance. - - @param ControllerHandle The handle of the controller to retrieve the health status - on. This is an optional parameter that may be NULL. If - this parameter is NULL, then the value of ChildHandle is - ignored, and the combined health status of all the devices - that the driver is managing is returned. - - @param ChildHandle The handle of the child controller to retrieve the health - status on. This is an optional parameter that may be NULL. - This parameter is ignored of ControllerHandle is NULL. It - will be NULL for device drivers. It will also be NULL for - bus drivers when an attempt is made to collect the health - status of the bus controller. If will not be NULL when an - attempt is made to collect the health status for a child - controller produced by the driver. - - @param HealthStatus A pointer to the health status that is returned by this - function. This is an optional parameter that may be NULL. - This parameter is ignored of ControllerHandle is NULL. - The health status for the controller specified by - ControllerHandle and ChildHandle is returned. - - @param MessageList A pointer to an array of warning or error messages associated - with the controller specified by ControllerHandle and - ChildHandle. This is an optional parameter that may be NULL. - MessageList is allocated by this function with the EFI Boot - Service AllocatePool(), and it is the caller's responsibility - to free MessageList with the EFI Boot Service FreePool(). - Each message is specified by tuple of an EFI_HII_HANDLE and - an EFI_STRING_ID. The array of messages is terminated by tuple - containing a EFI_HII_HANDLE with a value of NULL. The - EFI_HII_STRING_PROTOCOL.GetString() function can be used to - retrieve the warning or error message as a Null-terminated - Unicode string in a specific language. Messages may be - returned for any of the HealthStatus values except - EfiDriverHealthStatusReconnectRequired and - EfiDriverHealthStatusRebootRequired. - - @param FormHiiHandle A pointer to the HII handle for an HII form associated with the - controller specified by ControllerHandle and ChildHandle. - This is an optional parameter that may be NULL. An HII form - is specified by a combination of an EFI_HII_HANDLE and an - EFI_GUID that identifies the Form Set GUID. The - EFI_FORM_BROWSER2_PROTOCOL.SendForm() function can be used - to display and allow the user to make configuration changes - to the HII Form. An HII form may only be returned with a - HealthStatus value of EfiDriverHealthStatusConfigurationRequired. - - @retval EFI_SUCCESS ControllerHandle is NULL, and all the controllers - managed by this driver specified by This have a health - status of EfiDriverHealthStatusHealthy with no warning - messages to be returned. The ChildHandle, HealthStatus, - MessageList, and FormList parameters are ignored. - - @retval EFI_DEVICE_ERROR ControllerHandle is NULL, and one or more of the - controllers managed by this driver specified by This - do not have a health status of EfiDriverHealthStatusHealthy. - The ChildHandle, HealthStatus, MessageList, and - FormList parameters are ignored. - - @retval EFI_DEVICE_ERROR ControllerHandle is NULL, and one or more of the - controllers managed by this driver specified by This - have one or more warning and/or error messages. - The ChildHandle, HealthStatus, MessageList, and - FormList parameters are ignored. - - @retval EFI_SUCCESS ControllerHandle is not NULL and the health status - of the controller specified by ControllerHandle and - ChildHandle was returned in HealthStatus. A list - of warning and error messages may be optionally - returned in MessageList, and a list of HII Forms - may be optionally returned in FormList. - - @retval EFI_UNSUPPORTED ControllerHandle is not NULL, and the controller - specified by ControllerHandle and ChildHandle is not - currently being managed by the driver specified by This. - - @retval EFI_INVALID_PARAMETER HealthStatus is NULL. - - @retval EFI_OUT_OF_RESOURCES MessageList is not NULL, and there are not enough - resource available to allocate memory for MessageList. - -**/ -EFI_STATUS -DiskIoDriverHealthGetHealthStatus ( - IN EFI_DRIVER_HEALTH_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle OPTIONAL, - IN EFI_HANDLE ChildHandle OPTIONAL, - OUT EFI_DRIVER_HEALTH_STATUS *HealthStatus, - OUT EFI_DRIVER_HEALTH_HII_MESSAGE **MessageList OPTIONAL, - OUT EFI_HII_HANDLE *FormHiiHandle OPTIONAL - ) -{ - EFI_STATUS Status; - EFI_DISK_IO_PROTOCOL *DiskIo; - DISK_IO_PRIVATE_DATA *Private; - DEVICE_STATE *DeviceState; - CONTROLLER_STATE *ControllerState; - LIST_ENTRY *Link; - UINTN BufferSize; - - ControllerState = NULL; - DeviceState = NULL; - - if (HealthStatus == NULL) { - return EFI_INVALID_PARAMETER; - } - - if (ControllerHandle == NULL) { - *HealthStatus = EfiDriverHealthStatusHealthy; - if (mNumNotHealthy != 0) { - *HealthStatus = EfiDriverHealthStatusFailed; - } - return EFI_SUCCESS; - } - - // - // This is a device driver, so ChildHandle must be NULL. - // - if (ChildHandle != NULL) { - return EFI_UNSUPPORTED; - } - // - // Make sure this driver is currently managing ControllerHandle - // - Status = EfiTestManagedDevice ( - ControllerHandle, - gDiskIoDriverBinding.DriverBindingHandle, - &gEfiBlockIoProtocolGuid - ); - if (EFI_ERROR (Status)) { - return Status; - } - - if (HealthStatus == NULL) { - return EFI_INVALID_PARAMETER; - } - Status = gBS->HandleProtocol (ControllerHandle, &gEfiDiskIoProtocolGuid, (VOID **) &DiskIo); - if (EFI_ERROR (Status)) { - return EFI_UNSUPPORTED; - } - - if (HealthStatus == NULL) { - return EFI_INVALID_PARAMETER; - } - - Private = DISK_IO_PRIVATE_DATA_FROM_THIS (DiskIo); - - - // - // Get the Controller State from global list - // - Link = GetFirstNode (&mControllerList); - - while (!IsNull (&mControllerList, Link)) { - ControllerState = DISK_IO_CONTROLLER_STATE_FROM_LINK (Link); - - if (ControllerState->ControllerHandle == ControllerHandle) { - DeviceState = GetDeviceState (ControllerState->DeviceStateNum); - break; - } - Link = GetNextNode (&mControllerList, Link); - } - - ASSERT (DeviceState != NULL); - - if (DeviceState->HealthStatus == EfiDriverHealthStatusConfigurationRequired) { - - // - // Read the configuration for this device - // - BufferSize = sizeof (Private->NVdata.ConfigGood); - Status = gRT->GetVariable ( - L"Config", - &gEfiCallerIdGuid, - NULL, - &BufferSize, - &Private->NVdata.ConfigGood - ); - ASSERT_EFI_ERROR (Status); - - // - // If the config value is 1, then the configuration is valid and the state machine can move to the next state - // Otherwise, the state machine returns ConfigurationRequired again - // - if (Private->NVdata.ConfigGood == ControllerState->ControllerIndex) { - if (DeviceState->HealthStatus != EfiDriverHealthStatusHealthy || DeviceState->StringId != 0) { - mNumNotHealthy--; - } - - ControllerState->DeviceStateNum = DeviceState->NextState; - - DeviceState = GetDeviceState (ControllerState->DeviceStateNum); - ASSERT (DeviceState != NULL); - - if (DeviceState->HealthStatus != EfiDriverHealthStatusHealthy) { - mNumNotHealthy++; - } - } - } - - *HealthStatus = DeviceState->HealthStatus; - - if (MessageList != NULL) { - *MessageList = NULL; - if (DeviceState->StringId != 0) { - *MessageList = AllocateZeroPool (sizeof(EFI_DRIVER_HEALTH_HII_MESSAGE) * 2); - if (*MessageList == NULL) { - return EFI_UNSUPPORTED; - } - (*MessageList)[0].HiiHandle = mHiiHandle; - (*MessageList)[0].StringId = DeviceState->StringId; - } else { - *MessageList = AllocateZeroPool (sizeof(EFI_DRIVER_HEALTH_HII_MESSAGE) * 1); - if (*MessageList == NULL) { - return EFI_UNSUPPORTED; - } - } - } - if (FormHiiHandle != NULL) { - *FormHiiHandle = mHiiHandle; - } - - if (DeviceState->HealthStatus == EfiDriverHealthStatusConfigurationRequired) { - Private->NVdata.ConfigGood = 0; - Status = gRT->SetVariable ( - L"Config", - &gEfiCallerIdGuid, - EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS, - sizeof (Private->NVdata.ConfigGood), - &Private->NVdata.ConfigGood - ); - ASSERT_EFI_ERROR (Status); - } - - return EFI_SUCCESS; -} - -/** - Performs a repair operation on a controller in the platform. This function can - optionally report repair progress information back to the platform. - - @param This A pointer to the EFI_DRIVER_HEALTH_PROTOCOL instance. - @param ControllerHandle The handle of the controller to repair. - @param ChildHandle The handle of the child controller to repair. This is - an optional parameter that may be NULL. It will be NULL - for device drivers. It will also be NULL for bus - drivers when an attempt is made to repair a bus controller. - If will not be NULL when an attempt is made to repair a - child controller produced by the driver. - @param RepairNotify A notification function that may be used by a driver to - report the progress of the repair operation. This is - an optional parameter that may be NULL. - - - @retval EFI_SUCCESS An attempt to repair the controller specified by - ControllerHandle and ChildHandle was performed. - The result of the repair operation can be - determined by calling GetHealthStatus(). - @retval EFI_UNSUPPORTED The driver specified by This is not currently - managing the controller specified by ControllerHandle - and ChildHandle. - @retval EFI_OUT_OF_RESOURCES There are not enough resources to perform the - repair operation. - -*/ -EFI_STATUS -DiskIoDriverHealthRepair ( - IN EFI_DRIVER_HEALTH_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle, - IN EFI_HANDLE ChildHandle OPTIONAL, - IN EFI_DRIVER_HEALTH_REPAIR_PROGRESS_NOTIFY RepairNotify OPTIONAL - ) -{ - EFI_STATUS Status; - UINTN Index; - DEVICE_STATE *DeviceState; - CONTROLLER_STATE *ControllerState; - LIST_ENTRY *Link; - EFI_DISK_IO_PROTOCOL *DiskIo; - DISK_IO_PRIVATE_DATA *Private; - - Index = 0; - ControllerState = NULL; - DeviceState = NULL; - // - // This is a device driver, so ChildHandle must be NULL. - // - if (ChildHandle != NULL) { - return EFI_UNSUPPORTED; - } - // - // Make sure this driver is currently managing ControllerHandle - // - Status = EfiTestManagedDevice ( - ControllerHandle, - gDiskIoDriverBinding.DriverBindingHandle, - &gEfiBlockIoProtocolGuid - ); - if (EFI_ERROR (Status)) { - return Status; - } - - Status = gBS->HandleProtocol (ControllerHandle, &gEfiDiskIoProtocolGuid, (VOID **) &DiskIo); - if (EFI_ERROR (Status)) { - return EFI_UNSUPPORTED; - } - - Private = DISK_IO_PRIVATE_DATA_FROM_THIS (DiskIo); - - Link = GetFirstNode (&mControllerList); - - while (!IsNull (&mControllerList, Link)) { - ControllerState = DISK_IO_CONTROLLER_STATE_FROM_LINK (Link); - - if (ControllerState->ControllerHandle == ControllerHandle) { - DeviceState = GetDeviceState (ControllerState->DeviceStateNum); - break; - } - Link = GetNextNode (&mControllerList, Link); - } - - ASSERT (DeviceState != NULL); - // - // Check to see if the controller has already been repaired - // - if (DeviceState->HealthStatus != EfiDriverHealthStatusRepairRequired) { - return EFI_SUCCESS; - } - - if (DeviceState->RepairNotify) { - do { - RepairNotify(Index, 10); - Index++; - } while ((gBS->Stall(100000) == EFI_SUCCESS) && (Index < 10)); - } - - if (DeviceState->HealthStatus != EfiDriverHealthStatusHealthy || DeviceState->StringId != 0) { - mNumNotHealthy--; - } - - // - // Repair success, go to next state - // - ControllerState->DeviceStateNum = DeviceState->NextState; - - DeviceState = GetDeviceState (ControllerState->DeviceStateNum); - ASSERT (DeviceState != NULL); - - if (DeviceState->HealthStatus != EfiDriverHealthStatusHealthy || DeviceState->StringId != 0) { - mNumNotHealthy++; - } - - if (DeviceState->HealthStatus == EfiDriverHealthStatusConfigurationRequired) { - Private->NVdata.ConfigGood = 0; - Status = gRT->SetVariable ( - L"Config", - &gEfiCallerIdGuid, - EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS, - sizeof (Private->NVdata.ConfigGood), - &Private->NVdata.ConfigGood - ); - ASSERT_EFI_ERROR (Status); - } - - return EFI_SUCCESS; -} - -/** - The user Entry Point for module DiskIo. The user code starts with this function. - - @param[in] ImageHandle The firmware allocated handle for the EFI image. - @param[in] SystemTable A pointer to the EFI System Table. - - @retval EFI_SUCCESS The entry point is executed successfully. - @retval other Some error occurs when executing this entry point. - -**/ -EFI_STATUS -EFIAPI -InitializeDiskIo ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable - ) -{ - EFI_STATUS Status; - // - // Install driver model protocol(s). - // - Status = EfiLibInstallDriverBindingComponentName2 ( - ImageHandle, - SystemTable, - &gDiskIoDriverBinding, - ImageHandle, - &gDiskIoComponentName, - &gDiskIoComponentName2 - ); - - ASSERT_EFI_ERROR (Status); - - Status = gBS->InstallProtocolInterface ( - &ImageHandle, - &gEfiDriverHealthProtocolGuid, - EFI_NATIVE_INTERFACE, - &gDiskIoDriverHealth - ); - ASSERT_EFI_ERROR (Status); - - InitializeListHead (&mControllerList); - - gDiskIoPrivateDataTemplate.Handle = ImageHandle; - Status = DiskIoConfigFormInit (); - - ASSERT_EFI_ERROR (Status); - - return Status; -} - -/** - Initialize the serial configuration form. - - @retval EFI_SUCCESS The serial configuration form is initialized. - @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. - @retval Others Other errors as indicated. -**/ -EFI_STATUS -DiskIoConfigFormInit ( - VOID - ) -{ - EFI_STATUS Status; - - // - // Locate Hii Database protocol - // - Status = gBS->LocateProtocol (&gEfiHiiDatabaseProtocolGuid, NULL, (VOID **)&gDiskIoPrivateDataTemplate.HiiDatabase); - if (EFI_ERROR (Status)) { - return Status; - } - - Status = gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID **)&gDiskIoPrivateDataTemplate.HiiConfigRouting); - if (EFI_ERROR (Status)) { - return Status; - } - - // - // Install Device Path Protocol and Config Access protocol to driver handle - // - Status = gBS->InstallMultipleProtocolInterfaces ( - &gDiskIoPrivateDataTemplate.Handle, - &gEfiDevicePathProtocolGuid, &mHiiVendorDevicePathDiskIoDummy, - &gEfiHiiConfigAccessProtocolGuid, &gDiskIoPrivateDataTemplate.ConfigAccess, - NULL - ); - if (EFI_ERROR (Status)) { - return Status; - } - - // - // Publish our HII data - // - mHiiHandle = HiiAddPackages ( - &gEfiCallerIdGuid, - gDiskIoPrivateDataTemplate.Handle, - DriverHealthDxeStrings, - DriverHealthVfrBin, - NULL - ); - if (mHiiHandle == NULL) { - return EFI_OUT_OF_RESOURCES; - } - - return EFI_SUCCESS; -} -/** - This function processes the results of changes in configuration. - - @param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. - @param Action Specifies the type of action taken by the browser. - @param QuestionId A unique value which is sent to the original - exporting driver so that it can identify the type - of data to expect. - @param Type The type of value for the question. - @param Value A pointer to the data being sent to the original - exporting driver. - @param ActionRequest On return, points to the action requested by the - callback function. - - @retval EFI_SUCCESS The callback successfully handled the action. - @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the - variable and its data. - @retval EFI_DEVICE_ERROR The variable could not be saved. - @retval EFI_UNSUPPORTED The specified Action is not supported by the - callback. - -**/ -EFI_STATUS -EFIAPI -DummyDriverCallback ( - IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, - IN EFI_BROWSER_ACTION Action, - IN EFI_QUESTION_ID QuestionId, - IN UINT8 Type, - IN EFI_IFR_TYPE_VALUE *Value, - OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest - ) -{ - - DISK_IO_NV_DATA *IfrNvData; - - // - // Retrieve uncommitted data from Browser - // - - IfrNvData = AllocateZeroPool (sizeof (DISK_IO_NV_DATA)); - ASSERT (IfrNvData != NULL); - - if (!HiiGetBrowserData (&gEfiCallerIdGuid, VariableName, sizeof (DISK_IO_NV_DATA), (UINT8 *) IfrNvData)) { - FreePool (IfrNvData); - return EFI_NOT_FOUND; - } - - if ((Value == NULL) || (ActionRequest == NULL)) { - return EFI_INVALID_PARAMETER; - } - - *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT; - - - return EFI_SUCCESS; -} - -/** - This function allows a caller to extract the current configuration for one - or more named elements from the target driver. - - @param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. - @param Request A null-terminated Unicode string in - format. - @param Progress On return, points to a character in the Request - string. Points to the string's null terminator if - request was successful. Points to the most recent - '&' before the first failing name/value pair (or - the beginning of the string if the failure is in - the first name/value pair) if the request was not - successful. - @param Results A null-terminated Unicode string in - format which has all values filled - in for the names in the Request string. String to - be allocated by the called function. - - @retval EFI_SUCCESS The Results is filled with the requested values. - @retval EFI_OUT_OF_RESOURCES Not enough memory to store the results. - @retval EFI_INVALID_PARAMETER Request is NULL, illegal syntax, or unknown name. - @retval EFI_NOT_FOUND Routing data doesn't match any storage in this - driver. - -**/ -EFI_STATUS -EFIAPI -DummyExtractConfig ( - IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, - IN CONST EFI_STRING Request, - OUT EFI_STRING *Progress, - OUT EFI_STRING *Results - ) -{ - EFI_STATUS Status; - UINTN BufferSize; - DISK_IO_PRIVATE_DATA *PrivateData; - EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting; - EFI_STRING ConfigRequest; - EFI_STRING ConfigRequestHdr; - UINTN Size; - - if (Progress == NULL || Results == NULL || Request == NULL) { - return EFI_INVALID_PARAMETER; - } - // - // Initialize the local variables. - // - ConfigRequestHdr = NULL; - ConfigRequest = NULL; - Size = 0; - *Progress = Request; - - PrivateData = DISK_IO_PRIVATE_DATA_FROM_CONFIG_ACCESS(This); - HiiConfigRouting = PrivateData->HiiConfigRouting; - - // - // Get Buffer Storage data from EFI variable. - // Try to get the current setting from variable. - // - BufferSize = sizeof (DISK_IO_NV_DATA); - Status = gRT->GetVariable ( - VariableName, - &gEfiCallerIdGuid, - NULL, - &BufferSize, - &PrivateData->NVdata - ); - if (EFI_ERROR (Status)) { - return EFI_NOT_FOUND; - } - - if (Request == NULL) { - // - // Request is set to NULL, construct full request string. - // - - // - // Allocate and fill a buffer large enough to hold the template - // followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator - // - ConfigRequestHdr = HiiConstructConfigHdr (&gEfiCallerIdGuid, VariableName, PrivateData->Handle); - Size = (StrLen (ConfigRequest) + 32 + 1) * sizeof (CHAR16); - ConfigRequest = AllocateZeroPool (Size); - UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", ConfigRequestHdr, (UINT64)BufferSize); - FreePool (ConfigRequestHdr); - } else { - // - // Check routing data in . - // Note: if only one Storage is used, then this checking could be skipped. - // - if (!HiiIsConfigHdrMatch (Request, &gEfiCallerIdGuid, VariableName)) { - return EFI_NOT_FOUND; - } - ConfigRequest = Request; - } - - // - // Convert buffer data to by helper function BlockToConfig() - // - Status = HiiConfigRouting->BlockToConfig ( - HiiConfigRouting, - ConfigRequest, - (UINT8 *) &PrivateData->NVdata, - BufferSize, - Results, - Progress - ); - - if (Request == NULL) { - FreePool (ConfigRequest); - *Progress = NULL; - } - - return Status; -} - -/** - This function processes the results of changes in configuration. - - @param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. - @param Configuration A null-terminated Unicode string in - format. - @param Progress A pointer to a string filled in with the offset of - the most recent '&' before the first failing - name/value pair (or the beginning of the string if - the failure is in the first name/value pair) or - the terminating NULL if all was successful. - - @retval EFI_SUCCESS The Results is processed successfully. - @retval EFI_INVALID_PARAMETER Configuration is NULL. - @retval EFI_NOT_FOUND Routing data doesn't match any storage in this - driver. - -**/ -EFI_STATUS -EFIAPI -DummyRouteConfig ( - IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, - IN CONST EFI_STRING Configuration, - OUT EFI_STRING *Progress - ) -{ - EFI_STATUS Status; - UINTN BufferSize; - DISK_IO_PRIVATE_DATA *PrivateData; - EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting; - - if (Configuration == NULL || Progress == NULL) { - return EFI_INVALID_PARAMETER; - } - - - PrivateData = DISK_IO_PRIVATE_DATA_FROM_CONFIG_ACCESS (This); - HiiConfigRouting = PrivateData->HiiConfigRouting; - *Progress = Configuration; - - // - // Check routing data in . - // Note: if only one Storage is used, then this checking could be skipped. - // - if (!HiiIsConfigHdrMatch (Configuration, &gEfiCallerIdGuid, VariableName)) { - return EFI_NOT_FOUND; - } - - // - // Get Buffer Storage data from EFI variable - // - BufferSize = sizeof (DISK_IO_NV_DATA); - Status = gRT->GetVariable ( - VariableName, - &gEfiCallerIdGuid, - NULL, - &BufferSize, - &PrivateData->NVdata - ); - if (EFI_ERROR (Status)) { - return Status; - } - - // - // Convert to buffer data by helper function ConfigToBlock() - // - BufferSize = sizeof (DISK_IO_NV_DATA); - Status = HiiConfigRouting->ConfigToBlock ( - HiiConfigRouting, - Configuration, - (UINT8 *) &PrivateData->NVdata, - &BufferSize, - Progress - ); - if (EFI_ERROR (Status)) { - return Status; - } - - // - // Store Buffer Storage back to EFI variable - // - Status = gRT->SetVariable( - VariableName, - &gEfiCallerIdGuid, - EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS, - sizeof (DISK_IO_NV_DATA), - &PrivateData->NVdata - ); - - return Status; -} diff --git a/OptionRomPkg/DriverHealthDxe/DriverHealthDxe.h b/OptionRomPkg/DriverHealthDxe/DriverHealthDxe.h deleted file mode 100644 index 646ae14123..0000000000 --- a/OptionRomPkg/DriverHealthDxe/DriverHealthDxe.h +++ /dev/null @@ -1,643 +0,0 @@ -/** @file - DiskIo driver that layers it's self on every Block IO protocol in the system. - DiskIo converts a block oriented device to a byte oriented device. - - Copyright (c) 2006 - 2009, Intel Corporation - All rights reserved. This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#ifndef _DISK_IO_H -#define _DISK_IO_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "NVDataStruc.h" - -#define DISK_IO_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('d', 's', 'k', 'I') - -#define DISK_IO_CONTROLLER_STATE_SIGNATURE SIGNATURE_32 ('c', 't', 's', 'S') - -#define DATA_BUFFER_BLOCK_NUM (64) - -typedef struct { - VENDOR_DEVICE_PATH VendorDevicePath; - EFI_DEVICE_PATH_PROTOCOL End; -} HII_VENDOR_DEVICE_PATH; - -typedef struct { - UINTN Signature; - EFI_DISK_IO_PROTOCOL DiskIo; - EFI_BLOCK_IO_PROTOCOL *BlockIo; - EFI_HANDLE Handle; - // - // Consumed protocol - // - EFI_HII_DATABASE_PROTOCOL *HiiDatabase; - EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting; - - // - // Produced protocol - // - EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess; - - DISK_IO_NV_DATA NVdata; - EFI_UNICODE_STRING_TABLE *ControllerNameTable; - UINT8 ControllerIndex; -} DISK_IO_PRIVATE_DATA; - -typedef struct { - BOOLEAN StartState; - UINTN CurrentState; - UINTN NextState; - EFI_STRING_ID StringId; - BOOLEAN RepairNotify; - EFI_DRIVER_HEALTH_STATUS HealthStatus; -} DEVICE_STATE; - -typedef struct { - UINTN Signature; - LIST_ENTRY Link; - - EFI_HANDLE ControllerHandle; - UINTN ControllerIndex; - EFI_HANDLE ChildHandle; - UINTN DeviceStateNum; -} CONTROLLER_STATE; - -#define DISK_IO_PRIVATE_DATA_FROM_THIS(a) CR (a, DISK_IO_PRIVATE_DATA, DiskIo, DISK_IO_PRIVATE_DATA_SIGNATURE) -#define DISK_IO_PRIVATE_DATA_FROM_CONFIG_ACCESS(a) CR (a, DISK_IO_PRIVATE_DATA, ConfigAccess, DISK_IO_PRIVATE_DATA_SIGNATURE) - -#define DISK_IO_CONTROLLER_STATE_FROM_HANDLE(a) CR (a, CONTROLLER_STATE, ControllerHandle, DISK_IO_CONTROLLER_STATE_SIGNATURE) -#define DISK_IO_CONTROLLER_STATE_FROM_LINK(a) CR (a, CONTROLLER_STATE, Link, DISK_IO_CONTROLLER_STATE_SIGNATURE) -// -// Global Variables -// -extern EFI_DRIVER_BINDING_PROTOCOL gDiskIoDriverBinding; -extern EFI_COMPONENT_NAME_PROTOCOL gDiskIoComponentName; -extern EFI_COMPONENT_NAME2_PROTOCOL gDiskIoComponentName2; -extern EFI_DRIVER_HEALTH_PROTOCOL gDiskIoDriverHealth; - -// -// This is the generated String package data for all .UNI files. -// This data array is ready to be used as input of HiiAddPackages() to -// create a packagelist (which contains Form packages, String packages, etc). -// -extern UINT8 DriverHealthDxeStrings[]; -extern UINT8 DriverHealthVfrBin[]; - - -// -// Prototypes -// Driver model protocol interface -// -/** - Test to see if this driver supports ControllerHandle. - - @param This Protocol instance pointer. - @param ControllerHandle Handle of device to test - @param RemainingDevicePath Optional parameter use to pick a specific child - device to start. - - @retval EFI_SUCCESS This driver supports this device - @retval EFI_ALREADY_STARTED This driver is already running on this device - @retval other This driver does not support this device - -**/ -EFI_STATUS -EFIAPI -DiskIoDriverBindingSupported ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle, - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL - ); - -/** - Start this driver on ControllerHandle by opening a Block IO protocol and - installing a Disk IO protocol on ControllerHandle. - - @param This Protocol instance pointer. - @param ControllerHandle Handle of device to bind driver to - @param RemainingDevicePath Optional parameter use to pick a specific child - device to start. - - @retval EFI_SUCCESS This driver is added to ControllerHandle - @retval EFI_ALREADY_STARTED This driver is already running on ControllerHandle - @retval other This driver does not support this device - -**/ -EFI_STATUS -EFIAPI -DiskIoDriverBindingStart ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle, - IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL - ); - -/** - Stop this driver on ControllerHandle by removing Disk IO protocol and closing - the Block IO protocol on ControllerHandle. - - @param This Protocol instance pointer. - @param ControllerHandle Handle of device to stop driver on - @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of - children is zero stop the entire bus driver. - @param ChildHandleBuffer List of Child Handles to Stop. - - @retval EFI_SUCCESS This driver is removed ControllerHandle - @retval other This driver was not removed from this device - -**/ -EFI_STATUS -EFIAPI -DiskIoDriverBindingStop ( - IN EFI_DRIVER_BINDING_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle, - IN UINTN NumberOfChildren, - IN EFI_HANDLE *ChildHandleBuffer - ); - -// -// Disk I/O Protocol Interface -// -/** - Read BufferSize bytes from Offset into Buffer. - Reads may support reads that are not aligned on - sector boundaries. There are three cases: - UnderRun - The first byte is not on a sector boundary or the read request is - less than a sector in length. - Aligned - A read of N contiguous sectors. - OverRun - The last byte is not on a sector boundary. - - @param This Protocol instance pointer. - @param MediaId Id of the media, changes every time the media is replaced. - @param Offset The starting byte offset to read from - @param BufferSize Size of Buffer - @param Buffer Buffer containing read data - - @retval EFI_SUCCESS The data was read correctly from the device. - @retval EFI_DEVICE_ERROR The device reported an error while performing the read. - @retval EFI_NO_MEDIA There is no media in the device. - @retval EFI_MEDIA_CHNAGED The MediaId does not matched the current device. - @retval EFI_INVALID_PARAMETER The read request contains device addresses that are not - valid for the device. - -**/ -EFI_STATUS -EFIAPI -DiskIoReadDisk ( - IN EFI_DISK_IO_PROTOCOL *This, - IN UINT32 MediaId, - IN UINT64 Offset, - IN UINTN BufferSize, - OUT VOID *Buffer - ); - -/** - Writes BufferSize bytes from Buffer into Offset. - Writes may require a read modify write to support writes that are not - aligned on sector boundaries. There are three cases: - UnderRun - The first byte is not on a sector boundary or the write request - is less than a sector in length. Read modify write is required. - Aligned - A write of N contiguous sectors. - OverRun - The last byte is not on a sector boundary. Read modified write - required. - - @param This Protocol instance pointer. - @param MediaId Id of the media, changes every time the media is replaced. - @param Offset The starting byte offset to read from - @param BufferSize Size of Buffer - @param Buffer Buffer containing read data - - @retval EFI_SUCCESS The data was written correctly to the device. - @retval EFI_WRITE_PROTECTED The device can not be written to. - @retval EFI_DEVICE_ERROR The device reported an error while performing the write. - @retval EFI_NO_MEDIA There is no media in the device. - @retval EFI_MEDIA_CHNAGED The MediaId does not matched the current device. - @retval EFI_INVALID_PARAMETER The write request contains device addresses that are not - valid for the device. - -**/ -EFI_STATUS -EFIAPI -DiskIoWriteDisk ( - IN EFI_DISK_IO_PROTOCOL *This, - IN UINT32 MediaId, - IN UINT64 Offset, - IN UINTN BufferSize, - IN VOID *Buffer - ); - -// -// EFI Component Name Functions -// -/** - Retrieves a Unicode string that is the user readable name of the driver. - - This function retrieves the user readable name of a driver in the form of a - Unicode string. If the driver specified by This has a user readable name in - the language specified by Language, then a pointer to the driver name is - returned in DriverName, and EFI_SUCCESS is returned. If the driver specified - by This does not support the language specified by Language, - then EFI_UNSUPPORTED is returned. - - @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or - EFI_COMPONENT_NAME_PROTOCOL instance. - - @param Language[in] A pointer to a Null-terminated ASCII string - array indicating the language. This is the - language of the driver name that the caller is - requesting, and it must match one of the - languages specified in SupportedLanguages. The - number of languages supported by a driver is up - to the driver writer. Language is specified - in RFC 4646 or ISO 639-2 language code format. - - @param DriverName[out] A pointer to the Unicode string to return. - This Unicode string is the name of the - driver specified by This in the language - specified by Language. - - @retval EFI_SUCCESS The Unicode string for the Driver specified by - This and the language specified by Language was - returned in DriverName. - - @retval EFI_INVALID_PARAMETER Language is NULL. - - @retval EFI_INVALID_PARAMETER DriverName is NULL. - - @retval EFI_UNSUPPORTED The driver specified by This does not support - the language specified by Language. - -**/ -EFI_STATUS -EFIAPI -DiskIoComponentNameGetDriverName ( - IN EFI_COMPONENT_NAME_PROTOCOL *This, - IN CHAR8 *Language, - OUT CHAR16 **DriverName - ); - -/** - Retrieves a Unicode string that is the user readable name of the controller - that is being managed by a driver. - - This function retrieves the user readable name of the controller specified by - ControllerHandle and ChildHandle in the form of a Unicode string. If the - driver specified by This has a user readable name in the language specified by - Language, then a pointer to the controller name is returned in ControllerName, - and EFI_SUCCESS is returned. If the driver specified by This is not currently - managing the controller specified by ControllerHandle and ChildHandle, - then EFI_UNSUPPORTED is returned. If the driver specified by This does not - support the language specified by Language, then EFI_UNSUPPORTED is returned. - - @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or - EFI_COMPONENT_NAME_PROTOCOL instance. - - @param ControllerHandle[in] The handle of a controller that the driver - specified by This is managing. This handle - specifies the controller whose name is to be - returned. - - @param ChildHandle[in] The handle of the child controller to retrieve - the name of. This is an optional parameter that - may be NULL. It will be NULL for device - drivers. It will also be NULL for a bus drivers - that wish to retrieve the name of the bus - controller. It will not be NULL for a bus - driver that wishes to retrieve the name of a - child controller. - - @param Language[in] A pointer to a Null-terminated ASCII string - array indicating the language. This is the - language of the driver name that the caller is - requesting, and it must match one of the - languages specified in SupportedLanguages. The - number of languages supported by a driver is up - to the driver writer. Language is specified in - RFC 4646 or ISO 639-2 language code format. - - @param ControllerName[out] A pointer to the Unicode string to return. - This Unicode string is the name of the - controller specified by ControllerHandle and - ChildHandle in the language specified by - Language from the point of view of the driver - specified by This. - - @retval EFI_SUCCESS The Unicode string for the user readable name in - the language specified by Language for the - driver specified by This was returned in - DriverName. - - @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE. - - @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid - EFI_HANDLE. - - @retval EFI_INVALID_PARAMETER Language is NULL. - - @retval EFI_INVALID_PARAMETER ControllerName is NULL. - - @retval EFI_UNSUPPORTED The driver specified by This is not currently - managing the controller specified by - ControllerHandle and ChildHandle. - - @retval EFI_UNSUPPORTED The driver specified by This does not support - the language specified by Language. - -**/ -EFI_STATUS -EFIAPI -DiskIoComponentNameGetControllerName ( - IN EFI_COMPONENT_NAME_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle, - IN EFI_HANDLE ChildHandle OPTIONAL, - IN CHAR8 *Language, - OUT CHAR16 **ControllerName - ); - -// -// EFI Driver Health Functions -// -/** - Retrieves the health status of a controller in the platform. This function can also - optionally return warning messages, error messages, and a set of HII Forms that may - be repair a controller that is not proper configured. - - @param This A pointer to the EFI_DRIVER_HEALTH_PROTOCOL instance. - - @param ControllerHandle The handle of the controller to retrieve the health status - on. This is an optional parameter that may be NULL. If - this parameter is NULL, then the value of ChildHandle is - ignored, and the combined health status of all the devices - that the driver is managing is returned. - - @param ChildHandle The handle of the child controller to retrieve the health - status on. This is an optional parameter that may be NULL. - This parameter is ignored of ControllerHandle is NULL. It - will be NULL for device drivers. It will also be NULL for - bus drivers when an attempt is made to collect the health - status of the bus controller. If will not be NULL when an - attempt is made to collect the health status for a child - controller produced by the driver. - - @param HealthStatus A pointer to the health status that is returned by this - function. This is an optional parameter that may be NULL. - This parameter is ignored of ControllerHandle is NULL. - The health status for the controller specified by - ControllerHandle and ChildHandle is returned. - - @param MessageList A pointer to an array of warning or error messages associated - with the controller specified by ControllerHandle and - ChildHandle. This is an optional parameter that may be NULL. - MessageList is allocated by this function with the EFI Boot - Service AllocatePool(), and it is the caller's responsibility - to free MessageList with the EFI Boot Service FreePool(). - Each message is specified by tuple of an EFI_HII_HANDLE and - an EFI_STRING_ID. The array of messages is terminated by tuple - containing a EFI_HII_HANDLE with a value of NULL. The - EFI_HII_STRING_PROTOCOL.GetString() function can be used to - retrieve the warning or error message as a Null-terminated - Unicode string in a specific language. Messages may be - returned for any of the HealthStatus values except - EfiDriverHealthStatusReconnectRequired and - EfiDriverHealthStatusRebootRequired. - - @param FormHiiHandle A pointer to the HII handle for an HII form associated with the - controller specified by ControllerHandle and ChildHandle. - This is an optional parameter that may be NULL. An HII form - is specified by a combination of an EFI_HII_HANDLE and an - EFI_GUID that identifies the Form Set GUID. The - EFI_FORM_BROWSER2_PROTOCOL.SendForm() function can be used - to display and allow the user to make configuration changes - to the HII Form. An HII form may only be returned with a - HealthStatus value of EfiDriverHealthStatusConfigurationRequired. - - @retval EFI_SUCCESS ControllerHandle is NULL, and all the controllers - managed by this driver specified by This have a health - status of EfiDriverHealthStatusHealthy with no warning - messages to be returned. The ChildHandle, HealthStatus, - MessageList, and FormList parameters are ignored. - - @retval EFI_DEVICE_ERROR ControllerHandle is NULL, and one or more of the - controllers managed by this driver specified by This - do not have a health status of EfiDriverHealthStatusHealthy. - The ChildHandle, HealthStatus, MessageList, and - FormList parameters are ignored. - - @retval EFI_DEVICE_ERROR ControllerHandle is NULL, and one or more of the - controllers managed by this driver specified by This - have one or more warning and/or error messages. - The ChildHandle, HealthStatus, MessageList, and - FormList parameters are ignored. - - @retval EFI_SUCCESS ControllerHandle is not NULL and the health status - of the controller specified by ControllerHandle and - ChildHandle was returned in HealthStatus. A list - of warning and error messages may be optionally - returned in MessageList, and a list of HII Forms - may be optionally returned in FormList. - - @retval EFI_UNSUPPORTED ControllerHandle is not NULL, and the controller - specified by ControllerHandle and ChildHandle is not - currently being managed by the driver specified by This. - - @retval EFI_INVALID_PARAMETER HealthStatus is NULL. - - @retval EFI_OUT_OF_RESOURCES MessageList is not NULL, and there are not enough - resource available to allocate memory for MessageList. - -**/ -EFI_STATUS -DiskIoDriverHealthGetHealthStatus ( - IN EFI_DRIVER_HEALTH_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle OPTIONAL, - IN EFI_HANDLE ChildHandle OPTIONAL, - OUT EFI_DRIVER_HEALTH_STATUS *HealthStatus, - OUT EFI_DRIVER_HEALTH_HII_MESSAGE **MessageList OPTIONAL, - OUT EFI_HII_HANDLE *FormHiiHandle OPTIONAL - ); - -/** - Performs a repair operation on a controller in the platform. This function can - optionally report repair progress information back to the platform. - - @param This A pointer to the EFI_DRIVER_HEALTH_PROTOCOL instance. - @param ControllerHandle The handle of the controller to repair. - @param ChildHandle The handle of the child controller to repair. This is - an optional parameter that may be NULL. It will be NULL - for device drivers. It will also be NULL for bus - drivers when an attempt is made to repair a bus controller. - If will not be NULL when an attempt is made to repair a - child controller produced by the driver. - @param RepairNotify A notification function that may be used by a driver to - report the progress of the repair operation. This is - an optional parameter that may be NULL. - - - @retval EFI_SUCCESS An attempt to repair the controller specified by - ControllerHandle and ChildHandle was performed. - The result of the repair operation can be - determined by calling GetHealthStatus(). - @retval EFI_UNSUPPORTED The driver specified by This is not currently - managing the controller specified by ControllerHandle - and ChildHandle. - @retval EFI_OUT_OF_RESOURCES There are not enough resources to perform the - repair operation. - -*/ -EFI_STATUS -DiskIoDriverHealthRepair ( - IN EFI_DRIVER_HEALTH_PROTOCOL *This, - IN EFI_HANDLE ControllerHandle, - IN EFI_HANDLE ChildHandle OPTIONAL, - IN EFI_DRIVER_HEALTH_REPAIR_PROGRESS_NOTIFY RepairNotify OPTIONAL - ); - -/** - Initialize the serial configuration form. - - @retval EFI_SUCCESS The serial configuration form is initialized. - @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. - @retval Others Other errors as indicated. -**/ -EFI_STATUS -DiskIoConfigFormInit ( - VOID - ); - -/** - This function allows a caller to extract the current configuration for one - or more named elements from the target driver. - - @param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. - @param Request A null-terminated Unicode string in - format. - @param Progress On return, points to a character in the Request - string. Points to the string's null terminator if - request was successful. Points to the most recent - '&' before the first failing name/value pair (or - the beginning of the string if the failure is in - the first name/value pair) if the request was not - successful. - @param Results A null-terminated Unicode string in - format which has all values filled - in for the names in the Request string. String to - be allocated by the called function. - - @retval EFI_SUCCESS The Results is filled with the requested values. - @retval EFI_OUT_OF_RESOURCES Not enough memory to store the results. - @retval EFI_INVALID_PARAMETER Request is NULL, illegal syntax, or unknown name. - @retval EFI_NOT_FOUND Routing data doesn't match any storage in this - driver. - -**/ -EFI_STATUS -EFIAPI -DummyExtractConfig ( - IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, - IN CONST EFI_STRING Request, - OUT EFI_STRING *Progress, - OUT EFI_STRING *Results - ); - -/** - This function processes the results of changes in configuration. - - @param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. - @param Configuration A null-terminated Unicode string in - format. - @param Progress A pointer to a string filled in with the offset of - the most recent '&' before the first failing - name/value pair (or the beginning of the string if - the failure is in the first name/value pair) or - the terminating NULL if all was successful. - - @retval EFI_SUCCESS The Results is processed successfully. - @retval EFI_INVALID_PARAMETER Configuration is NULL. - @retval EFI_NOT_FOUND Routing data doesn't match any storage in this - driver. - -**/ -EFI_STATUS -EFIAPI -DummyRouteConfig ( - IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, - IN CONST EFI_STRING Configuration, - OUT EFI_STRING *Progress - ); - -/** - This function processes the results of changes in configuration. - - @param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. - @param Action Specifies the type of action taken by the browser. - @param QuestionId A unique value which is sent to the original - exporting driver so that it can identify the type - of data to expect. - @param Type The type of value for the question. - @param Value A pointer to the data being sent to the original - exporting driver. - @param ActionRequest On return, points to the action requested by the - callback function. - - @retval EFI_SUCCESS The callback successfully handled the action. - @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the - variable and its data. - @retval EFI_DEVICE_ERROR The variable could not be saved. - @retval EFI_UNSUPPORTED The specified Action is not supported by the - callback. - -**/ -EFI_STATUS -EFIAPI -DummyDriverCallback ( - IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, - IN EFI_BROWSER_ACTION Action, - IN EFI_QUESTION_ID QuestionId, - IN UINT8 Type, - IN EFI_IFR_TYPE_VALUE *Value, - OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest - ); - -/** - Add the ISO639-2 and RFC4646 component name both for the Disk IO device - - @param DiskIoDevice A pointer to the DISK_IO_PRIVATE_DATA instance. - -**/ -VOID -AddName ( - IN DISK_IO_PRIVATE_DATA *DiskIoDevice - ); - -#endif diff --git a/OptionRomPkg/DriverHealthDxe/DriverHealthDxe.inf b/OptionRomPkg/DriverHealthDxe/DriverHealthDxe.inf deleted file mode 100644 index a524628d7b..0000000000 --- a/OptionRomPkg/DriverHealthDxe/DriverHealthDxe.inf +++ /dev/null @@ -1,72 +0,0 @@ -#/** @file -# This is a sample driver produces Driver Health Protocol. -# -# It demos how to use Driver Health Protocol. The protocol is produced optional and make -# the driver easier to be managed. -# -# Copyright (c) 2009, Intel Corporation -# All rights reserved. This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -# -#**/ - -################################################################################ -# -# Defines Section - statements that will be processed to create a Makefile. -# -################################################################################ -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = DriverHealthDxe - FILE_GUID = D1D9694C-90B4-46a7-8753-60413CEFE0A1 - MODULE_TYPE = UEFI_DRIVER - VERSION_STRING = 1.0 - ENTRY_POINT = InitializeDiskIo - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 IPF EBC -# -# DRIVER_BINDING = gDiskIoDriverBinding -# COMPONENT_NAME = gDiskIoComponentName -# - - -[Sources.common] - ComponentName.c - DriverHealthDxe.h - DriverHealthDxe.c - DriverHealthStrings.uni - NVDataStruc.h - DriverHealthVfr.Vfr - -[Packages] - MdePkg/MdePkg.dec - IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec - MdeModulePkg/MdeModulePkg.dec - -[LibraryClasses] - UefiBootServicesTableLib - UefiRuntimeServicesTableLib - MemoryAllocationLib - BaseMemoryLib - BaseLib - UefiLib - UefiDriverEntryPoint - DebugLib - HiiLib - -[Protocols] - gEfiDiskIoProtocolGuid ## PROTOCOL BY_START - gEfiBlockIoProtocolGuid ## PROTOCOL TO_START - gEfiDriverHealthProtocolGuid ## PROTOCOL PRODUCES - gEfiHiiConfigRoutingProtocolGuid ## PROTOCOL CONSUMES - gEfiHiiDatabaseProtocolGuid ## PROTOCOL CONSUMES - gEfiHiiConfigAccessProtocolGuid ## PROTOCOL CONSUMES \ No newline at end of file diff --git a/OptionRomPkg/DriverHealthDxe/DriverHealthStrings.uni b/OptionRomPkg/DriverHealthDxe/DriverHealthStrings.uni deleted file mode 100644 index 70374b451d0a0171e3a573ebc49069b6a54008d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7424 zcmeI0%T6Ol6o$_>k@5~Lvq>faN7)4_3%~}f%-Do6n#>A;jlqg-Ms5#;mrwG4r)a8e zx;@QsF^j0xm#VHh^`HBx`uCr@)h)3%_M@)v>|6Ur?Ye)3KRb45pX|n_HnelQu$e}G zZ$0}#?_ca^UBB8-`fk}o|ITcrZ{|!ji|2`Yhx(eR|D`YZ30!Om7sw(PskhE773Qg3 z>Djjp^>xMLP`!!pPlfy3c^IpGA|CpB&otu9+dawQ(#9IezZ=b)Xndj`xQ6afUn8gX zaNZ;O6H#Ktk?8gGHF4Bn$uO~E{}$DizK0rnVyAjC@3SKZPedQ^jU8J?1#aMRc&9Vu zaA||wyls1L4Yl9SVY$y;M1SoP?db{Ld6^A`k2R2KkUFcUY9qT-AD&6kpAAvD&^^EA)3qY{r=$6Dlp^}B?ORh)IezE!;<`VXSS z`W?rX*ay)&bROF3Z)ts2>p0FswcwII&~-JIG2jcMb~P59ANBrSf8Y^Z&D&K1zfJq| zj!vZBlGG05v8>tfC|AZ!L?6H2$-evUZ+Ko?{xX&iY~JOFI1;K2_gv!XRJ@;Q^ho}5 zAufVX6CqP!!25=GG?LucmU|7Oi59cmO8HT&m8Y3_{2PcSbhD_DY81XssnoWs*m_F8_a{SOA^uuG??6cGp_dip1da zTOJavGtsOg*L_V|;~x<%l_YCE@BW;DFs$3I+fz+%8q|^QkU4L@L>- z;+N>b^|dhEIEFl3B=K2zsEnZua!&53*@L`UIj$6>`y3TC{#N8`(RLY86S{22iY@Tf7MmacUY0F(<*SD}1v^$gXnO6<=~~w_McK+l7QDFsZMgrAJ?><& zn7r{ias#oY3|m^q;W^SY~|HBN9x%CD=j=jU6USi$`t^uy$E diff --git a/OptionRomPkg/DriverHealthDxe/DriverHealthVfr.Vfr b/OptionRomPkg/DriverHealthDxe/DriverHealthVfr.Vfr deleted file mode 100644 index 2d7d4db9d8..0000000000 --- a/OptionRomPkg/DriverHealthDxe/DriverHealthVfr.Vfr +++ /dev/null @@ -1,60 +0,0 @@ -// *++ -// -// Copyright (c) 2009, Intel Corporation -// All rights reserved. This program and the accompanying materials -// are licensed and made available under the terms and conditions of the BSD License -// which accompanies this distribution. The full text of the license may be found at -// http://opensource.org/licenses/bsd-license.php -// -// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -// -// Module Name: -// -// Vfr.vfr -// -// Abstract: -// -// Sample Setup formset -// -// Revision History: -// -// --*/ - - - -#include "NVDataStruc.h" -#include - -formset - guid = EFI_CALLER_ID_GUID, - title = STRING_TOKEN(STR_FORM_SET_TITLE), - help = STRING_TOKEN(STR_FORM_SET_TITLE_HELP), - classguid = EFI_HII_DRIVER_HEALTH_FORMSET_GUID, - - // - // Define a Buffer Storage (EFI_IFR_VARSTORE) - // - varstore DISK_IO_NV_DATA, // This is the data structure type - varid = 0x1234, // Optional VarStore ID - name = Config, // Define referenced name in vfr - guid = EFI_CALLER_ID_GUID; // GUID of this buffer storage - - form formid = 1, - - title = STRING_TOKEN(STR_TITLE); - // - // Define a numeric - // - numeric varid = Config.ConfigGood, - prompt = STRING_TOKEN(STR_CONFIG_CONTROLLER_LIST), - help = STRING_TOKEN(STR_CONFIG_CONTROLLER_LIST_HELP), - flags = DISPLAY_UINT_DEC, - key = 0x1236, - minimum = 0, - maximum = 0xff, - default = 0, - endnumeric; - endform; - -endformset; diff --git a/OptionRomPkg/DriverHealthDxe/NVDataStruc.h b/OptionRomPkg/DriverHealthDxe/NVDataStruc.h deleted file mode 100644 index 439fd68de5..0000000000 --- a/OptionRomPkg/DriverHealthDxe/NVDataStruc.h +++ /dev/null @@ -1,35 +0,0 @@ -/*++ - -Copyright (c) 2006 - 2009, Intel Corporation -All rights reserved. This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -Module Name: - - NVDataStruc.h - -Abstract: - - NVData structure used by the sample driver - -Revision History: - ---*/ - -#ifndef _NVDATASTRUC_H -#define _NVDATASTRUC_H - -#define EFI_CALLER_ID_GUID {0xD1D9694C, 0x90B4, 0x46a7, {0x87, 0x53, 0x60, 0x41, 0x3C, 0xEF, 0xE0, 0xA1}} - -#pragma pack(1) -typedef struct { - UINT8 ConfigGood; -} DISK_IO_NV_DATA; -#pragma pack() - -#endif diff --git a/OptionRomPkg/OptionRomPkg.dsc b/OptionRomPkg/OptionRomPkg.dsc index b3ce7a7b63..df5f83ecff 100644 --- a/OptionRomPkg/OptionRomPkg.dsc +++ b/OptionRomPkg/OptionRomPkg.dsc @@ -56,8 +56,6 @@ MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf - UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf - HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf ################################################################################ # @@ -105,5 +103,4 @@ OptionRomPkg/AtapiPassThruDxe/AtapiPassThruDxe.inf OptionRomPkg/CirrusLogic5430Dxe/CirrusLogic5430Dxe.inf OptionRomPkg/UndiRuntimeDxe/UndiRuntimeDxe.inf - OptionRomPkg/DriverHealthDxe/DriverHealthDxe.inf -- 2.39.2