+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2008, 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
-Module Name:\r
-\r
- DriverDiagnostics2.h\r
-\r
-Abstract:\r
-\r
- EFI Driver Diagnostics2 Protocol\r
-\r
-Revision History\r
-\r
---*/\r
-\r
-#ifndef _EFI_DRIVER_DIAGNOSTICS2_H_\r
-#define _EFI_DRIVER_DIAGNOSTICS2_H_\r
-\r
-#include EFI_PROTOCOL_DEFINITION (DriverDiagnostics)\r
-\r
-//\r
-// Global ID for the Driver Diagnostics Protocol\r
-//\r
-#define EFI_DRIVER_DIAGNOSTICS2_PROTOCOL_GUID \\r
- { \\r
- 0x4d330321, 0x025f, 0x4aac, {0x90, 0xd8, 0x5e, 0xd9, 0x0, 0x17, 0x3b, 0x63} \\r
- }\r
-\r
-EFI_FORWARD_DECLARATION (EFI_DRIVER_DIAGNOSTICS2_PROTOCOL);\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_DRIVER_DIAGNOSTICS2_RUN_DIAGNOSTICS) (\r
- IN EFI_DRIVER_DIAGNOSTICS2_PROTOCOL * This,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_HANDLE ChildHandle OPTIONAL,\r
- IN EFI_DRIVER_DIAGNOSTIC_TYPE DiagnosticType,\r
- IN CHAR8 *Language,\r
- OUT EFI_GUID **ErrorType,\r
- OUT UINTN *BufferSize,\r
- OUT CHAR16 **Buffer\r
- );\r
-\r
-/*++\r
-\r
- Routine Description:\r
- Runs diagnostics on a controller.\r
-\r
- Arguments:\r
- This - A pointer to the EFI_DRIVER_DIAGNOSTICS2_PROTOCOL instance.\r
- ControllerHandle - The handle of the controller to run diagnostics on.\r
- 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 controllers.\r
- DiagnosticType - Indicates type of diagnostics to perform on the controller\r
- specified by ControllerHandle and ChildHandle. See\r
- "Related Definitions" for the list of supported types.\r
- Language - A pointer to a NULL-terminated ASCII string array indicating\r
- the language. 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 SupportedLanguages.\r
- The number of languages supported by a driver is up to\r
- the driver writer. Language is specified in RFC 3066\r
- language code format.\r
- ErrorType - A GUID that defines the format of the data returned in\r
- Buffer.\r
- BufferSize - The size, in bytes, of the data returned in Buffer.\r
- 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
- Returns:\r
- EFI_SUCCESS - The controller specified by ControllerHandle and\r
- ChildHandle passed the diagnostic.\r
- EFI_INVALID_PARAMETER - ControllerHandle is not a valid EFI_HANDLE.\r
- EFI_INVALID_PARAMETER - ChildHandle is not NULL and it is not a valid\r
- EFI_HANDLE.\r
- EFI_INVALID_PARAMETER - Language is NULL.\r
- EFI_INVALID_PARAMETER - ErrorType is NULL.\r
- EFI_INVALID_PARAMETER - BufferType is NULL.\r
- EFI_INVALID_PARAMETER - Buffer is NULL.\r
- EFI_UNSUPPORTED - The driver specified by This does not support\r
- running diagnostics for the controller specified\r
- by ControllerHandle and ChildHandle.\r
- EFI_UNSUPPORTED - The driver specified by This does not support the\r
- type of diagnostic specified by DiagnosticType.\r
- EFI_UNSUPPORTED - The driver specified by This does not support the\r
- language specified by Language.\r
- EFI_OUT_OF_RESOURCES - There are not enough resources available to complete\r
- the diagnostics.\r
- EFI_OUT_OF_RESOURCES - There are not enough resources available to return\r
- the status information in ErrorType, BufferSize,\r
- and Buffer.\r
- EFI_DEVICE_ERROR - The controller specified by ControllerHandle and\r
- ChildHandle did not pass the diagnostic.\r
-\r
---*/\r
-\r
-//\r
-// Interface structure for the Driver Diagnostics Protocol\r
-//\r
-struct _EFI_DRIVER_DIAGNOSTICS2_PROTOCOL {\r
- EFI_DRIVER_DIAGNOSTICS2_RUN_DIAGNOSTICS RunDiagnostics;\r
- CHAR8 *SupportedLanguages;\r
-};\r
-\r
-/*++\r
-\r
- Protocol Description:\r
- Used to perform diagnostics on a controller that an EFI Driver is managing.\r
-\r
- Parameters:\r
- RunDiagnostics - Runs diagnostics on a controller.\r
- SupportedLanguages - A Null-terminated ASCII string that contains one or more\r
- RFC 3066 language codes. This is the list of language\r
- codes that this protocol supports.\r
-\r
---*/\r
-\r
-extern EFI_GUID gEfiDriverDiagnostics2ProtocolGuid;\r
-\r
-#endif\r