diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /EDK/Foundation/Efi/Protocol/DriverDiagnostics2 | |
download | zprj-b7c51c9cf4864df6aabb99a1ae843becd577237c.tar.xz |
Diffstat (limited to 'EDK/Foundation/Efi/Protocol/DriverDiagnostics2')
-rw-r--r-- | EDK/Foundation/Efi/Protocol/DriverDiagnostics2/DriverDiagnostics2.c | 30 | ||||
-rw-r--r-- | EDK/Foundation/Efi/Protocol/DriverDiagnostics2/DriverDiagnostics2.h | 135 |
2 files changed, 165 insertions, 0 deletions
diff --git a/EDK/Foundation/Efi/Protocol/DriverDiagnostics2/DriverDiagnostics2.c b/EDK/Foundation/Efi/Protocol/DriverDiagnostics2/DriverDiagnostics2.c new file mode 100644 index 0000000..5290af2 --- /dev/null +++ b/EDK/Foundation/Efi/Protocol/DriverDiagnostics2/DriverDiagnostics2.c @@ -0,0 +1,30 @@ +/*++ + +Copyright (c) 2008, 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: + + DriverDiagnostics2.c + +Abstract: + + EFI Driver Diagnostics2 Protocol + +Revision History + +--*/ + +#include "EfiSpec.h" +#include EFI_PROTOCOL_DEFINITION (DriverDiagnostics2) + +EFI_GUID gEfiDriverDiagnostics2ProtocolGuid = EFI_DRIVER_DIAGNOSTICS2_PROTOCOL_GUID; + +EFI_GUID_STRING + (&gEfiDriverDiagnostics2ProtocolGuid, "Driver Diagnostics Protocol", "UEFI 2.0 Driver Diagnostics2 Protocol"); diff --git a/EDK/Foundation/Efi/Protocol/DriverDiagnostics2/DriverDiagnostics2.h b/EDK/Foundation/Efi/Protocol/DriverDiagnostics2/DriverDiagnostics2.h new file mode 100644 index 0000000..3ae7ba2 --- /dev/null +++ b/EDK/Foundation/Efi/Protocol/DriverDiagnostics2/DriverDiagnostics2.h @@ -0,0 +1,135 @@ +/*++ + +Copyright (c) 2008, 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: + + DriverDiagnostics2.h + +Abstract: + + EFI Driver Diagnostics2 Protocol + +Revision History + +--*/ + +#ifndef _EFI_DRIVER_DIAGNOSTICS2_H_ +#define _EFI_DRIVER_DIAGNOSTICS2_H_ + +#include EFI_PROTOCOL_DEFINITION (DriverDiagnostics) + +// +// Global ID for the Driver Diagnostics Protocol +// +#define EFI_DRIVER_DIAGNOSTICS2_PROTOCOL_GUID \ + { \ + 0x4d330321, 0x025f, 0x4aac, 0x90, 0xd8, 0x5e, 0xd9, 0x0, 0x17, 0x3b, 0x63 \ + } + +EFI_FORWARD_DECLARATION (EFI_DRIVER_DIAGNOSTICS2_PROTOCOL); + +typedef +EFI_STATUS +(EFIAPI *EFI_DRIVER_DIAGNOSTICS2_RUN_DIAGNOSTICS) ( + IN EFI_DRIVER_DIAGNOSTICS2_PROTOCOL * This, + IN EFI_HANDLE ControllerHandle, + IN EFI_HANDLE ChildHandle OPTIONAL, + IN EFI_DRIVER_DIAGNOSTIC_TYPE DiagnosticType, + IN CHAR8 *Language, + OUT EFI_GUID **ErrorType, + OUT UINTN *BufferSize, + OUT CHAR16 **Buffer + ); + +/*++ + + Routine Description: + Runs diagnostics on a controller. + + Arguments: + This - A pointer to the EFI_DRIVER_DIAGNOSTICS2_PROTOCOL instance. + ControllerHandle - The handle of the controller to run diagnostics on. + ChildHandle - The handle of the child controller to run diagnostics on + 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 run diagnostics on the bus + controller. It will not be NULL for a bus driver that + wishes to run diagnostics on one of its child controllers. + DiagnosticType - Indicates type of diagnostics to perform on the controller + specified by ControllerHandle and ChildHandle. See + "Related Definitions" for the list of supported types. + Language - A pointer to a NULL-terminated ASCII string array indicating + the language. This is the language in which the optional + error message should be returned in Buffer, 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 3066 + language code format. + ErrorType - A GUID that defines the format of the data returned in + Buffer. + BufferSize - The size, in bytes, of the data returned in Buffer. + Buffer - A buffer that contains a Null-terminated Unicode string + plus some additional data whose format is defined by + ErrorType. Buffer is allocated by this function with + AllocatePool(), and it is the caller's responsibility + to free it with a call to FreePool(). + + Returns: + EFI_SUCCESS - The controller specified by ControllerHandle and + ChildHandle passed the diagnostic. + EFI_INVALID_PARAMETER - ControllerHandle is not a valid EFI_HANDLE. + EFI_INVALID_PARAMETER - ChildHandle is not NULL and it is not a valid + EFI_HANDLE. + EFI_INVALID_PARAMETER - Language is NULL. + EFI_INVALID_PARAMETER - ErrorType is NULL. + EFI_INVALID_PARAMETER - BufferType is NULL. + EFI_INVALID_PARAMETER - Buffer is NULL. + EFI_UNSUPPORTED - The driver specified by This does not support + running diagnostics for the controller specified + by ControllerHandle and ChildHandle. + EFI_UNSUPPORTED - The driver specified by This does not support the + type of diagnostic specified by DiagnosticType. + EFI_UNSUPPORTED - The driver specified by This does not support the + language specified by Language. + EFI_OUT_OF_RESOURCES - There are not enough resources available to complete + the diagnostics. + EFI_OUT_OF_RESOURCES - There are not enough resources available to return + the status information in ErrorType, BufferSize, + and Buffer. + EFI_DEVICE_ERROR - The controller specified by ControllerHandle and + ChildHandle did not pass the diagnostic. + +--*/ + +// +// Interface structure for the Driver Diagnostics Protocol +// +typedef struct _EFI_DRIVER_DIAGNOSTICS2_PROTOCOL { + EFI_DRIVER_DIAGNOSTICS2_RUN_DIAGNOSTICS RunDiagnostics; + CHAR8 *SupportedLanguages; +} EFI_DRIVER_DIAGNOSTICS2_PROTOCOL; + +/*++ + + Protocol Description: + Used to perform diagnostics on a controller that an EFI Driver is managing. + + Parameters: + RunDiagnostics - Runs diagnostics on a controller. + SupportedLanguages - A Null-terminated ASCII string that contains one or more + RFC 3066 language codes. This is the list of language + codes that this protocol supports. + +--*/ + +extern EFI_GUID gEfiDriverDiagnostics2ProtocolGuid; + +#endif |