/** @file\r
- Copyright (c) 2006 - 2008, Intel Corporation \r
- All rights reserved. This program and the accompanying materials \r
- are licensed and made available under the terms and conditions of the BSD License \r
- which accompanies this distribution. The full text of the license may be found at \r
- http://opensource.org/licenses/bsd-license.php \r
+ Implementation of UEFI driver Dialnostics protocol which to perform diagnostic on the IDE\r
+ Bus controller.\r
\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+ This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
**/\r
\r
/**\r
Runs diagnostics on a controller.\r
\r
- @param This A pointer to the EFI_DRIVER_DIAGNOSTICS_PROTOCOL\r
- instance.\r
+ @param This A pointer to the EFI_DRIVER_DIAGNOSTICS_PROTOCOLinstance.\r
@param ControllerHandle The handle of the controller to run diagnostics on.\r
- @param ChildHandle The handle of the child controller to run diagnostics on\r
- This is an optional parameter that may be NULL. It will\r
- be NULL for device drivers. It will also be NULL for a\r
- bus drivers that wish to run diagnostics on the bus\r
- controller. It will not be NULL for a bus driver that\r
- wishes to run diagnostics on one of its child\r
- controllers.\r
- @param DiagnosticType Indicates type of diagnostics to perform on the\r
- controller specified by ControllerHandle and ChildHandle.\r
- See "Related Definitions" for the list of supported\r
- types.\r
- @param Language A pointer to a three character ISO 639-2 language\r
- identifier. This is the language in which the optional\r
- error message should be returned in Buffer, and it must\r
- match one of the languages specified in\r
- SupportedLanguages. The number of languages supported by\r
- a driver is up to the driver writer.\r
- @param ErrorType A GUID that defines the format of the data returned in\r
- Buffer.\r
- @param BufferSize The size, in bytes, of the data returned in Buffer.\r
- @param Buffer A buffer that contains a Null-terminated Unicode string\r
- plus some additional data whose format is defined by\r
- ErrorType. Buffer is allocated by this function with\r
- AllocatePool(), and it is the caller's responsibility\r
- to free it with a call to FreePool().\r
-\r
- @retval EFI_SUCCESS The controller specified by ControllerHandle and\r
- ChildHandle passed the diagnostic.\r
- @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
- @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
- EFI_HANDLE.\r
+ @param ChildHandle The handle of the child controller to run diagnostics on\r
+ This is an optional parameter that may be NULL. It will\r
+ be NULL for device drivers. It will also be NULL for a\r
+ bus drivers that wish to run diagnostics on the bus controller.\r
+ It will not be NULL for a bus driver that wishes to run\r
+ diagnostics on one of its child controllers.\r
+ @param DiagnosticType Indicates type of diagnostics to perform on the controller\r
+ specified by ControllerHandle and ChildHandle.\r
+ @param Language A pointer to a three character ISO 639-2 language identifier.\r
+ This is the language in which the optional error message should\r
+ be returned in Buffer, and it must match one of the languages\r
+ specified in SupportedLanguages. The number of languages supported by\r
+ a driver is up to the driver writer.\r
+ @param ErrorType A GUID that defines the format of the data returned in Buffer.\r
+ @param BufferSize The size, in bytes, of the data returned in Buffer.\r
+ @param Buffer A buffer that contains a Null-terminated Unicode string\r
+ plus some additional data whose format is defined by ErrorType.\r
+ Buffer is allocated by this function with AllocatePool(), and\r
+ it is the caller's responsibility to free it with a call to FreePool().\r
+\r
+ @retval EFI_SUCCESS The controller specified by ControllerHandle and ChildHandle passed\r
+ the diagnostic.\r
+ @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.\r
+ @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid EFI_HANDLE.\r
@retval EFI_INVALID_PARAMETER Language is NULL.\r
@retval EFI_INVALID_PARAMETER ErrorType is NULL.\r
@retval EFI_INVALID_PARAMETER BufferType is NULL.\r
@retval EFI_INVALID_PARAMETER Buffer is NULL.\r
- @retval EFI_UNSUPPORTED The driver specified by This does not support\r
- running diagnostics for the controller specified\r
- by ControllerHandle and ChildHandle.\r
- @retval EFI_UNSUPPORTED The driver specified by This does not support the\r
- type of diagnostic specified by DiagnosticType.\r
- @retval EFI_UNSUPPORTED The driver specified by This does not support the\r
- language specified by Language.\r
- @retval EFI_OUT_OF_RESOURCES There are not enough resources available to complete\r
- the diagnostics.\r
- @retval EFI_OUT_OF_RESOURCES There are not enough resources available to return\r
- the status information in ErrorType, BufferSize,\r
- and Buffer.\r
- @retval EFI_DEVICE_ERROR The controller specified by ControllerHandle and\r
- ChildHandle did not pass the diagnostic.\r
-\r
+ @retval EFI_UNSUPPORTED The driver specified by This does not support running\r
+ diagnostics for the controller specified by ControllerHandle\r
+ and ChildHandle.\r
+ @retval EFI_UNSUPPORTED The driver specified by This does not support the\r
+ type of diagnostic specified by DiagnosticType.\r
+ @retval EFI_UNSUPPORTED The driver specified by This does not support the language\r
+ specified by Language.\r
+ @retval EFI_OUT_OF_RESOURCES There are not enough resources available to complete the\r
+ diagnostics.\r
+ @retval EFI_OUT_OF_RESOURCES There are not enough resources available to return the\r
+ status information in ErrorType, BufferSize,and Buffer.\r
+ @retval EFI_DEVICE_ERROR The controller specified by ControllerHandle and ChildHandle\r
+ did not pass the diagnostic.\r
**/\r
EFI_STATUS\r
+EFIAPI\r
IDEBusDriverDiagnosticsRunDiagnostics (\r
IN EFI_DRIVER_DIAGNOSTICS_PROTOCOL *This,\r
IN EFI_HANDLE ControllerHandle,\r