]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Bus/Pci/IdeBus/Dxe/DriverDiagnostics.c
Adjust directory structures.
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Pci / IdeBus / Dxe / DriverDiagnostics.c
diff --git a/IntelFrameworkModulePkg/Bus/Pci/IdeBus/Dxe/DriverDiagnostics.c b/IntelFrameworkModulePkg/Bus/Pci/IdeBus/Dxe/DriverDiagnostics.c
deleted file mode 100644 (file)
index 8aa6d05..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/** @file\r
-  Copyright (c) 2006, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
-\r
-**/\r
-\r
-\r
-#include "idebus.h"\r
-\r
-#define IDE_BUS_DIAGNOSTIC_ERROR  L"PCI IDE/ATAPI Driver Diagnostics Failed"\r
-\r
-//\r
-// EFI Driver Diagnostics Protocol\r
-//\r
-EFI_DRIVER_DIAGNOSTICS_PROTOCOL gIDEBusDriverDiagnostics = {\r
-  IDEBusDriverDiagnosticsRunDiagnostics,\r
-  "eng"\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  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
-  @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
-**/\r
-EFI_STATUS\r
-IDEBusDriverDiagnosticsRunDiagnostics (\r
-  IN  EFI_DRIVER_DIAGNOSTICS_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
-  EFI_STATUS            Status;\r
-  EFI_PCI_IO_PROTOCOL   *PciIo;\r
-  EFI_BLOCK_IO_PROTOCOL *BlkIo;\r
-  IDE_BLK_IO_DEV        *IdeBlkIoDevice;\r
-  UINT32                VendorDeviceId;\r
-  VOID                  *BlockBuffer;\r
-\r
-  *ErrorType  = NULL;\r
-  *BufferSize = 0;\r
-\r
-  if (ChildHandle == NULL) {\r
-    Status = gBS->OpenProtocol (\r
-                    ControllerHandle,\r
-                    &gEfiCallerIdGuid,\r
-                    NULL,\r
-                    gIDEBusDriverBinding.DriverBindingHandle,\r
-                    ControllerHandle,\r
-                    EFI_OPEN_PROTOCOL_TEST_PROTOCOL\r
-                    );\r
-    if (EFI_ERROR (Status)) {\r
-      return EFI_UNSUPPORTED;\r
-    }\r
-\r
-    Status = gBS->OpenProtocol (\r
-                    ControllerHandle,\r
-                    &gEfiPciIoProtocolGuid,\r
-                    (VOID **) &PciIo,\r
-                    gIDEBusDriverBinding.DriverBindingHandle,\r
-                    ControllerHandle,\r
-                    EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
-                    );\r
-    if (EFI_ERROR (Status)) {\r
-      return EFI_DEVICE_ERROR;\r
-    }\r
-\r
-    //\r
-    // Use services of PCI I/O Protocol to test the PCI IDE/ATAPI Controller\r
-    // The following test simply reads the Device ID and Vendor ID.\r
-    // It should never fail.  A real test would perform more advanced\r
-    // diagnostics.\r
-    //\r
-\r
-    Status = PciIo->Pci.Read (PciIo, EfiPciIoWidthUint32, 0, 1, &VendorDeviceId);\r
-    if (EFI_ERROR (Status) || VendorDeviceId == 0xffffffff) {\r
-      return EFI_DEVICE_ERROR;\r
-    }\r
-\r
-    return EFI_SUCCESS;\r
-  }\r
-\r
-  Status = gBS->OpenProtocol (\r
-                  ChildHandle,\r
-                  &gEfiBlockIoProtocolGuid,\r
-                  (VOID **) &BlkIo,\r
-                  gIDEBusDriverBinding.DriverBindingHandle,\r
-                  ChildHandle,\r
-                  EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
-                  );\r
-  if (EFI_ERROR (Status)) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
-\r
-  IdeBlkIoDevice = IDE_BLOCK_IO_DEV_FROM_THIS (BlkIo);\r
-\r
-  //\r
-  // Use services available from IdeBlkIoDevice to test the IDE/ATAPI device\r
-  //\r
-  Status = gBS->AllocatePool (\r
-                  EfiBootServicesData,\r
-                  IdeBlkIoDevice->BlkMedia.BlockSize,\r
-                  (VOID **) &BlockBuffer\r
-                  );\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
-\r
-  Status = IdeBlkIoDevice->BlkIo.ReadBlocks (\r
-                                  &IdeBlkIoDevice->BlkIo,\r
-                                  IdeBlkIoDevice->BlkMedia.MediaId,\r
-                                  0,\r
-                                  IdeBlkIoDevice->BlkMedia.BlockSize,\r
-                                  BlockBuffer\r
-                                  );\r
-\r
-  if (EFI_ERROR (Status)) {\r
-    *ErrorType  = &gEfiCallerIdGuid;\r
-    *BufferSize = sizeof (IDE_BUS_DIAGNOSTIC_ERROR);\r
-\r
-    Status = gBS->AllocatePool (\r
-                    EfiBootServicesData,\r
-                    (UINTN) (*BufferSize),\r
-                    (VOID **) Buffer\r
-                    );\r
-    if (EFI_ERROR (Status)) {\r
-      return Status;\r
-    }\r
-\r
-    CopyMem (*Buffer, IDE_BUS_DIAGNOSTIC_ERROR, *BufferSize);\r
-\r
-    Status = EFI_DEVICE_ERROR;\r
-  }\r
-\r
-  gBS->FreePool (BlockBuffer);\r
-\r
-  return Status;\r
-}\r