Revision: 17506
          http://sourceforge.net/p/edk2/code/17506
Author:   niruiyu
Date:     2015-05-26 03:25:19 +0000 (Tue, 26 May 2015)
Log Message:
-----------
MdeModulePkg: Move IsaBusDxe driver to MdeModulePkg.

A previous incorrect check-in adds the IsaBusDxe driver to <Root>/Bus directory.
The patch fixes it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <[email protected]>

Added Paths:
-----------
    trunk/edk2/MdeModulePkg/Bus/Isa/
    trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/
    trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/ComponentName.c
    trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/ComponentName.h
    trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.c
    trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.h
    trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf

Removed Paths:
-------------
    trunk/edk2/Bus/Isa/IsaBusDxe/ComponentName.c
    trunk/edk2/Bus/Isa/IsaBusDxe/ComponentName.h
    trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.c
    trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.h
    trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.inf

Deleted: trunk/edk2/Bus/Isa/IsaBusDxe/ComponentName.c
===================================================================
--- trunk/edk2/Bus/Isa/IsaBusDxe/ComponentName.c        2015-05-26 03:24:20 UTC 
(rev 17505)
+++ trunk/edk2/Bus/Isa/IsaBusDxe/ComponentName.c        2015-05-26 03:25:19 UTC 
(rev 17506)
@@ -1,180 +0,0 @@
-/** @file
-  UEFI Component Name(2) protocol implementation for IsaBusDxe driver.
-  
-  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
-  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 "ComponentName.h"
-#include <Library/UefiLib.h>
-
-//
-// Driver name table 
-//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE     
mIsaBusDriverNameTable[] = {
-  { "eng;en", L"PI ISA BUS Driver" },
-  { NULL , NULL }
-};
-
-//
-// EFI Component Name Protocol
-//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL  
gIsaBusComponentName = {
-  IsaBusComponentNameGetDriverName,
-  IsaBusComponentNameGetControllerName,
-  "eng"
-};
-
-//
-// EFI Component Name 2 Protocol
-//
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL 
gIsaBusComponentName2 = {
-  (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) IsaBusComponentNameGetDriverName,
-  (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) 
IsaBusComponentNameGetControllerName,
-  "en"
-};
-
-/**
-  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
-IsaBusComponentNameGetDriverName (
-  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
-  IN  CHAR8                        *Language,
-  OUT CHAR16                       **DriverName
-  )
-{
-  return LookupUnicodeString2 (
-           Language,
-           This->SupportedLanguages,
-           mIsaBusDriverNameTable,
-           DriverName,
-           (BOOLEAN)(This == &gIsaBusComponentName)
-           );
-}
-
-
-/**
-  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 NULL.
-
-  @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
-IsaBusComponentNameGetControllerName (
-  IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,
-  IN  EFI_HANDLE                                      ControllerHandle,
-  IN  EFI_HANDLE                                      ChildHandle        
OPTIONAL,
-  IN  CHAR8                                           *Language,
-  OUT CHAR16                                          **ControllerName
-  )
-{
-  return EFI_UNSUPPORTED;
-}

Deleted: trunk/edk2/Bus/Isa/IsaBusDxe/ComponentName.h
===================================================================
--- trunk/edk2/Bus/Isa/IsaBusDxe/ComponentName.h        2015-05-26 03:24:20 UTC 
(rev 17505)
+++ trunk/edk2/Bus/Isa/IsaBusDxe/ComponentName.h        2015-05-26 03:25:19 UTC 
(rev 17506)
@@ -1,151 +0,0 @@
-/** @file
-  UEFI Component Name(2) protocol implementation for IsaBusDxe driver.
-  
-  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
-  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 _ISA_BUS_COMPONENT_NAME_H_
-#define _ISA_BUS_COMPONENT_NAME_H_
-
-#include <Uefi.h>
-#include <Protocol/ComponentName.h>
-#include <Protocol/ComponentName2.h>
-
-extern EFI_COMPONENT_NAME_PROTOCOL  gIsaBusComponentName;
-extern EFI_COMPONENT_NAME2_PROTOCOL gIsaBusComponentName2;
-
-/**
-  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
-IsaBusComponentNameGetDriverName (
-  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 NULL.
-
-  @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
-IsaBusComponentNameGetControllerName (
-  IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,
-  IN  EFI_HANDLE                                      ControllerHandle,
-  IN  EFI_HANDLE                                      ChildHandle        
OPTIONAL,
-  IN  CHAR8                                           *Language,
-  OUT CHAR16                                          **ControllerName
-  );
-
-#endif

Deleted: trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.c
===================================================================
--- trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.c    2015-05-26 03:24:20 UTC (rev 
17505)
+++ trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.c    2015-05-26 03:25:19 UTC (rev 
17506)
@@ -1,461 +0,0 @@
-/** @file
-  This file consumes the ISA Host Controller protocol produced by the ISA Host
-  Controller and installs the ISA Host Controller Service Binding protocol
-  on the ISA Host Controller's handle.
-
-  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
-  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 "IsaBusDxe.h"
-#include "ComponentName.h"
-
-/**
-  Tests to see if this driver supports a given controller. If a child device 
is provided, 
-  it further tests to see if this driver supports creating a handle for the 
specified child device.
-
-  @param[in]  This                 A pointer to the 
EFI_DRIVER_BINDING_PROTOCOL instance.
-  @param[in]  ControllerHandle     The handle of the controller to test. This 
handle 
-                                   must support a protocol interface that 
supplies 
-                                   an I/O abstraction to the driver.
-  @param[in]  RemainingDevicePath  A pointer to the remaining portion of a 
device path.  This 
-                                   parameter is ignored by device drivers, and 
is optional for bus 
-                                   drivers. For bus drivers, if this parameter 
is not NULL, then 
-                                   the bus driver must determine if the bus 
controller specified 
-                                   by ControllerHandle and the child 
controller specified 
-                                   by RemainingDevicePath are both supported 
by this 
-                                   bus driver.
-
-  @retval EFI_SUCCESS              The device specified by ControllerHandle and
-                                   RemainingDevicePath is supported by the 
driver specified by This.
-  @retval EFI_ALREADY_STARTED      The device specified by ControllerHandle and
-                                   RemainingDevicePath is already being 
managed by the driver
-                                   specified by This.
-  @retval EFI_ACCESS_DENIED        The device specified by ControllerHandle and
-                                   RemainingDevicePath is already being 
managed by a different
-                                   driver or an application that requires 
exclusive access.
-                                   Currently not implemented.
-  @retval EFI_UNSUPPORTED          The device specified by ControllerHandle and
-                                   RemainingDevicePath is not supported by the 
driver specified by This.
-**/
-EFI_STATUS
-EFIAPI
-IsaBusDriverBindingSupported (
-  IN EFI_DRIVER_BINDING_PROTOCOL    *This,
-  IN EFI_HANDLE                     Controller,
-  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath
-  )
-{
-  EFI_STATUS                        Status;
-  VOID                              *Instance;
-
-  Status = gBS->OpenProtocol (
-                  Controller,
-                  &gEfiIsaHcProtocolGuid,
-                  &Instance,
-                  This->DriverBindingHandle,
-                  Controller,
-                  EFI_OPEN_PROTOCOL_BY_DRIVER
-                  );
-  if (!EFI_ERROR (Status)) {
-    gBS->CloseProtocol (
-      Controller,
-      &gEfiIsaHcProtocolGuid,
-      This->DriverBindingHandle,
-      Controller
-      );
-  }
-
-  if (EFI_ERROR (Status)) {
-    return Status;
-  }
-
-  Status = gBS->OpenProtocol (
-                  Controller,
-                  &gEfiDevicePathProtocolGuid,
-                  &Instance,
-                  This->DriverBindingHandle,
-                  Controller,
-                  EFI_OPEN_PROTOCOL_BY_DRIVER
-                  );
-  if (!EFI_ERROR (Status)) {
-    gBS->CloseProtocol (
-      Controller,
-      &gEfiDevicePathProtocolGuid,
-      This->DriverBindingHandle,
-      Controller
-      );
-  }
-
-  return Status;
-}
-
-ISA_BUS_CHILD_PRIVATE_DATA mIsaBusChildPrivateTemplate = {
-  ISA_BUS_CHILD_PRIVATE_DATA_SIGNATURE,
-  FALSE
-};
-
-/**
-  Creates a child handle and installs a protocol.
-  
-  The CreateChild() function installs a protocol on ChildHandle. 
-  If ChildHandle is a pointer to NULL, then a new handle is created and 
returned in ChildHandle. 
-  If ChildHandle is not a pointer to NULL, then the protocol installs on the 
existing ChildHandle.
-
-  @param  This        Pointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
-  @param  ChildHandle Pointer to the handle of the child to create. If it is 
NULL,
-                      then a new handle is created. If it is a pointer to an 
existing UEFI handle, 
-                      then the protocol is added to the existing UEFI handle.
-
-  @retval EFI_SUCCES            The protocol was added to ChildHandle.
-  @retval EFI_INVALID_PARAMETER ChildHandle is NULL.
-  @retval EFI_OUT_OF_RESOURCES  There are not enough resources availabe to 
create
-                                the child
-  @retval other                 The child handle was not created
-
-**/
-EFI_STATUS
-EFIAPI
-IsaBusCreateChild (
-  IN     EFI_SERVICE_BINDING_PROTOCOL  *This,
-  IN OUT EFI_HANDLE                    *ChildHandle
-  )
-{
-  EFI_STATUS                           Status;
-  ISA_BUS_PRIVATE_DATA                 *Private;
-  EFI_ISA_HC_PROTOCOL                  *IsaHc;
-  ISA_BUS_CHILD_PRIVATE_DATA           *Child;
-
-  Private = ISA_BUS_PRIVATE_DATA_FROM_THIS (This);
-
-  Child = AllocateCopyPool (sizeof (mIsaBusChildPrivateTemplate), 
&mIsaBusChildPrivateTemplate);
-  if (Child == NULL) {
-    return EFI_OUT_OF_RESOURCES;
-  }
-
-  Status = gBS->InstallMultipleProtocolInterfaces (
-                  ChildHandle,
-                  &gEfiIsaHcProtocolGuid, Private->IsaHc,
-                  &gEfiCallerIdGuid,      Child,
-                  NULL
-                  );
-  if (EFI_ERROR (Status)) {
-    FreePool (Child);
-    return Status;
-  }
-
-  return gBS->OpenProtocol (
-                Private->IsaHcHandle,
-                &gEfiIsaHcProtocolGuid,
-                (VOID **) &IsaHc,
-                gIsaBusDriverBinding.DriverBindingHandle,
-                *ChildHandle,
-                EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
-                );
-}
-
-/**
-  Destroys a child handle with a protocol installed on it.
-  
-  The DestroyChild() function does the opposite of CreateChild(). It removes a 
protocol 
-  that was installed by CreateChild() from ChildHandle. If the removed 
protocol is the 
-  last protocol on ChildHandle, then ChildHandle is destroyed.
-
-  @param  This        Pointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
-  @param  ChildHandle Handle of the child to destroy
-
-  @retval EFI_SUCCES            The protocol was removed from ChildHandle.
-  @retval EFI_UNSUPPORTED       ChildHandle does not support the protocol that 
is being removed.
-  @retval EFI_INVALID_PARAMETER Child handle is NULL.
-  @retval EFI_ACCESS_DENIED     The protocol could not be removed from the 
ChildHandle
-                                because its services are being used.
-  @retval other                 The child handle was not destroyed
-
-**/
-EFI_STATUS
-EFIAPI
-IsaBusDestroyChild (
-  IN EFI_SERVICE_BINDING_PROTOCOL     *This,
-  IN EFI_HANDLE                       ChildHandle
-  )
-{
-  EFI_STATUS                           Status;
-  ISA_BUS_PRIVATE_DATA                 *Private;
-  EFI_ISA_HC_PROTOCOL                  *IsaHc;
-  ISA_BUS_CHILD_PRIVATE_DATA           *Child;
-
-  Private = ISA_BUS_PRIVATE_DATA_FROM_THIS (This);
-
-  Status = gBS->OpenProtocol (
-                  ChildHandle,
-                  &gEfiCallerIdGuid,
-                  (VOID **) &Child,
-                  gIsaBusDriverBinding.DriverBindingHandle,
-                  ChildHandle,
-                  EFI_OPEN_PROTOCOL_GET_PROTOCOL
-                  );
-  if (EFI_ERROR (Status)) {
-    return Status;
-  }
-
-  ASSERT (Child->Signature == ISA_BUS_CHILD_PRIVATE_DATA_SIGNATURE);
-
-  if (Child->InDestroying) {
-    return EFI_SUCCESS;
-  }
-
-  Child->InDestroying = TRUE;
-  Status = gBS->CloseProtocol (
-                  Private->IsaHcHandle,
-                  &gEfiIsaHcProtocolGuid,
-                  gIsaBusDriverBinding.DriverBindingHandle,
-                  ChildHandle
-                  );
-  ASSERT_EFI_ERROR (Status);
-  if (!EFI_ERROR (Status)) {
-    Status = gBS->UninstallMultipleProtocolInterfaces (
-                    ChildHandle,
-                    &gEfiIsaHcProtocolGuid, Private->IsaHc,
-                    &gEfiCallerIdGuid,      Child,
-                    NULL
-                    );
-    if (EFI_ERROR (Status)) {
-      gBS->OpenProtocol (
-             Private->IsaHcHandle,
-             &gEfiIsaHcProtocolGuid,
-             (VOID **) &IsaHc,
-             gIsaBusDriverBinding.DriverBindingHandle,
-             ChildHandle,
-             EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
-             );
-    }
-  }
-
-  if (EFI_ERROR (Status)) {
-    Child->InDestroying = FALSE;
-  } else {
-    FreePool (Child);
-  }
-
-  return Status;
-}
-
-ISA_BUS_PRIVATE_DATA   mIsaBusPrivateTemplate = {
-  ISA_BUS_PRIVATE_DATA_SIGNATURE,
-  {
-    IsaBusCreateChild,
-    IsaBusDestroyChild
-  }
-};
-
-/**
-  Starts a device controller or a bus controller.
-
-  @param[in]  This                 A pointer to the 
EFI_DRIVER_BINDING_PROTOCOL instance.
-  @param[in]  ControllerHandle     The handle of the controller to start. This 
handle 
-                                   must support a protocol interface that 
supplies 
-                                   an I/O abstraction to the driver.
-  @param[in]  RemainingDevicePath  A pointer to the remaining portion of a 
device path.  This 
-                                   parameter is ignored by device drivers, and 
is optional for bus 
-                                   drivers. For a bus driver, if this 
parameter is NULL, then handles 
-                                   for all the children of Controller are 
created by this driver.  
-                                   If this parameter is not NULL and the first 
Device Path Node is 
-                                   not the End of Device Path Node, then only 
the handle for the 
-                                   child device specified by the first Device 
Path Node of 
-                                   RemainingDevicePath is created by this 
driver.
-                                   If the first Device Path Node of 
RemainingDevicePath is 
-                                   the End of Device Path Node, no child 
handle is created by this
-                                   driver.
-
-  @retval EFI_SUCCESS              The device was started.
-  @retval EFI_DEVICE_ERROR         The device could not be started due to a 
device error.Currently not implemented.
-  @retval EFI_OUT_OF_RESOURCES     The request could not be completed due to a 
lack of resources.
-  @retval Others                   The driver failded to start the device.
-
-**/
-EFI_STATUS
-EFIAPI
-IsaBusDriverBindingStart (
-  IN EFI_DRIVER_BINDING_PROTOCOL    *This,
-  IN EFI_HANDLE                     Controller,
-  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath
-  )
-{
-  EFI_STATUS                        Status;
-  EFI_DEVICE_PATH_PROTOCOL          *DevicePath;
-  ISA_BUS_PRIVATE_DATA              *Private;
-
-  Status = gBS->OpenProtocol (
-                  Controller,
-                  &gEfiIsaHcProtocolGuid,
-                  (VOID **) &mIsaBusPrivateTemplate.IsaHc,
-                  This->DriverBindingHandle,
-                  Controller,
-                  EFI_OPEN_PROTOCOL_BY_DRIVER
-                  );
-  if (EFI_ERROR (Status)) {
-    return Status;
-  }
-
-  Status = gBS->OpenProtocol (
-                  Controller,
-                  &gEfiDevicePathProtocolGuid,
-                  (VOID **) &DevicePath,
-                  This->DriverBindingHandle,
-                  Controller,
-                  EFI_OPEN_PROTOCOL_BY_DRIVER
-                  );
-  if (EFI_ERROR (Status)) {
-    gBS->CloseProtocol (
-           Controller,
-           &gEfiIsaHcProtocolGuid,
-           This->DriverBindingHandle,
-           Controller
-           );
-    return Status;
-  }
-
-  Private = AllocateCopyPool (sizeof (mIsaBusPrivateTemplate), 
&mIsaBusPrivateTemplate);
-  ASSERT (Private != NULL);
-
-  Private->IsaHcHandle = Controller;
-
-  Status = gBS->InstallMultipleProtocolInterfaces (
-                  &Controller,
-                  &gEfiIsaHcServiceBindingProtocolGuid, 
&Private->ServiceBinding,
-                  NULL
-                  );
-  ASSERT_EFI_ERROR (Status);
-
-  return Status;
-}
-
-/**
-  Stops a device controller or a bus controller.
-  
-  @param[in]  This              A pointer to the EFI_DRIVER_BINDING_PROTOCOL 
instance.
-  @param[in]  ControllerHandle  A handle to the device being stopped. The 
handle must 
-                                support a bus specific I/O protocol for the 
driver 
-                                to use to stop the device.
-  @param[in]  NumberOfChildren  The number of child device handles in 
ChildHandleBuffer.
-  @param[in]  ChildHandleBuffer An array of child handles to be freed. May be 
NULL 
-                                if NumberOfChildren is 0.
-
-  @retval EFI_SUCCESS           The device was stopped.
-  @retval EFI_DEVICE_ERROR      The device could not be stopped due to a 
device error.
-
-**/
-EFI_STATUS
-EFIAPI
-IsaBusDriverBindingStop (
-  IN  EFI_DRIVER_BINDING_PROTOCOL    *This,
-  IN  EFI_HANDLE                     Controller,
-  IN  UINTN                          NumberOfChildren,
-  IN  EFI_HANDLE                     *ChildHandleBuffer
-  )
-{
-  EFI_STATUS                         Status;
-  EFI_SERVICE_BINDING_PROTOCOL       *ServiceBinding;
-  ISA_BUS_PRIVATE_DATA               *Private;
-  UINTN                              Index;
-  BOOLEAN                            AllChildrenStopped;
-
-  Status = gBS->OpenProtocol (
-                  Controller,
-                  &gEfiIsaHcServiceBindingProtocolGuid,
-                  (VOID **) &ServiceBinding,
-                  This->DriverBindingHandle,
-                  Controller,
-                  EFI_OPEN_PROTOCOL_GET_PROTOCOL
-                  );
-  if (EFI_ERROR (Status)) {
-    return Status;
-  }
-
-  Private = ISA_BUS_PRIVATE_DATA_FROM_THIS (ServiceBinding);
-
-  if (NumberOfChildren == 0) {
-    Status = gBS->UninstallMultipleProtocolInterfaces (
-                    Controller,
-                    &gEfiIsaHcServiceBindingProtocolGuid, 
&Private->ServiceBinding,
-                    NULL
-                    );
-    if (!EFI_ERROR (Status)) {
-      gBS->CloseProtocol (
-             Controller,
-             &gEfiDevicePathProtocolGuid,
-             This->DriverBindingHandle,
-             Controller
-             );
-      gBS->CloseProtocol (
-             Controller,
-             &gEfiIsaHcProtocolGuid,
-             This->DriverBindingHandle,
-             Controller
-             );
-      FreePool (Private);
-    }
-
-    return Status;
-  }
-
-  AllChildrenStopped = TRUE;
-  for (Index = 0; Index < NumberOfChildren; Index++) {
-    Status = ServiceBinding->DestroyChild (ServiceBinding, 
ChildHandleBuffer[Index]);
-    if (EFI_ERROR (Status)) {
-      AllChildrenStopped = FALSE;
-    }
-  }
-
-  return AllChildrenStopped ? EFI_SUCCESS : EFI_DEVICE_ERROR;
-}
-
-//
-// ISA Bus Driver Binding Protocol Instance
-//
-EFI_DRIVER_BINDING_PROTOCOL gIsaBusDriverBinding = {
-  IsaBusDriverBindingSupported,
-  IsaBusDriverBindingStart,
-  IsaBusDriverBindingStop,
-  0x10,
-  NULL,
-  NULL
-};
-
-/**
-  Entry point of the IsaBusDxe driver.
-  
-  @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
-InitializeIsaBus (
-  IN EFI_HANDLE        ImageHandle,
-  IN EFI_SYSTEM_TABLE  *SystemTable
-  )
-{
-  EFI_STATUS           Status;
-  
-  Status = EfiLibInstallDriverBindingComponentName2 (
-             ImageHandle,
-             SystemTable,
-             &gIsaBusDriverBinding,
-             ImageHandle,
-             &gIsaBusComponentName,
-             &gIsaBusComponentName2
-             );
-  ASSERT_EFI_ERROR (Status);
-  return Status;
-}

Deleted: trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.h
===================================================================
--- trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.h    2015-05-26 03:24:20 UTC (rev 
17505)
+++ trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.h    2015-05-26 03:25:19 UTC (rev 
17506)
@@ -1,46 +0,0 @@
-/** @file
-  Header file for the ISA BUS driver.
-
-  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
-  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 _ISA_BUS_H_
-#define _ISA_BUS_H_
-
-#include <Uefi.h>
-#include <Protocol/IsaHc.h>
-#include <Library/UefiLib.h>
-#include <Library/UefiBootServicesTableLib.h>
-#include <Library/DebugLib.h>
-#include <Library/DevicePathLib.h>
-#include <Library/MemoryAllocationLib.h>
-#include <Protocol/DevicePath.h>
-#include <Protocol/ServiceBinding.h>
-
-typedef struct {
-  UINT32                          Signature;
-  EFI_SERVICE_BINDING_PROTOCOL    ServiceBinding;
-  EFI_ISA_HC_PROTOCOL             *IsaHc;       ///< ISA HC protocol produced 
by the ISA Host Controller driver
-  EFI_HANDLE                      IsaHcHandle;  ///< ISA HC handle created by 
the ISA Host Controller driver
-} ISA_BUS_PRIVATE_DATA;
-#define ISA_BUS_PRIVATE_DATA_SIGNATURE    SIGNATURE_32 ('_', 'i', 's', 'b')
-#define ISA_BUS_PRIVATE_DATA_FROM_THIS(a) CR (a, ISA_BUS_PRIVATE_DATA, 
ServiceBinding, ISA_BUS_PRIVATE_DATA_SIGNATURE)
-
-typedef struct {
-  UINT32                          Signature;
-  BOOLEAN                         InDestroying; ///< Flag to avoid 
DestroyChild() re-entry.
-} ISA_BUS_CHILD_PRIVATE_DATA;
-#define ISA_BUS_CHILD_PRIVATE_DATA_SIGNATURE    SIGNATURE_32 ('_', 'i', 's', 
'c')
-
-extern EFI_DRIVER_BINDING_PROTOCOL gIsaBusDriverBinding;
-
-#endif

Deleted: trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.inf
===================================================================
--- trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.inf  2015-05-26 03:24:20 UTC (rev 
17505)
+++ trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.inf  2015-05-26 03:25:19 UTC (rev 
17506)
@@ -1,59 +0,0 @@
-## @file
-#  ISA Bus driver to manage the child devices attached to the ISA Host 
Controller.
-#
-#  This driver follows UEFI driver model and layers on ISA HC protocol defined
-#  in PI spec 1.2.1. It consumes the ISA Host Controller protocol produced by
-#  the ISA Host Controller and installs the ISA Host Controller Service Binding
-#  protocol on the ISA Host Controller's handle.
-#
-#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
-#
-#  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]
-  INF_VERSION                    = 0x00010005
-  BASE_NAME                      = IsaBusDxe
-  FILE_GUID                      = DCBE6D66-D928-4138-8041-358F35CBCF80
-  MODULE_TYPE                    = UEFI_DRIVER
-  VERSION_STRING                 = 1.0
-  ENTRY_POINT                    = InitializeIsaBus
-
-#
-# The following information is for reference only and not required by the 
build tools.
-#
-#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
-#
-#  DRIVER_BINDING                =  gIsaBusDriverBinding
-#  COMPONENT_NAME                =  gIsaBusComponentName
-#  COMPONENT_NAME2               =  gIsaBusComponentName2
-#
-
-[Sources]
-  IsaBusDxe.h
-  IsaBusDxe.c
-  ComponentName.h
-  ComponentName.c
-
-[Packages]
-  MdePkg/MdePkg.dec
-
-[LibraryClasses]
-  UefiDriverEntryPoint
-  UefiBootServicesTableLib
-  BaseLib
-  BaseMemoryLib
-  MemoryAllocationLib
-  UefiLib
-  DebugLib
-
-[Protocols]
-  gEfiIsaHcProtocolGuid
-  gEfiIsaHcServiceBindingProtocolGuid

Copied: trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/ComponentName.c (from rev 
17505, trunk/edk2/Bus/Isa/IsaBusDxe/ComponentName.c)
===================================================================
--- trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/ComponentName.c                   
        (rev 0)
+++ trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/ComponentName.c   2015-05-26 
03:25:19 UTC (rev 17506)
@@ -0,0 +1,180 @@
+/** @file
+  UEFI Component Name(2) protocol implementation for IsaBusDxe driver.
+  
+  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+  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 "ComponentName.h"
+#include <Library/UefiLib.h>
+
+//
+// Driver name table 
+//
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE     
mIsaBusDriverNameTable[] = {
+  { "eng;en", L"PI ISA BUS Driver" },
+  { NULL , NULL }
+};
+
+//
+// EFI Component Name Protocol
+//
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL  
gIsaBusComponentName = {
+  IsaBusComponentNameGetDriverName,
+  IsaBusComponentNameGetControllerName,
+  "eng"
+};
+
+//
+// EFI Component Name 2 Protocol
+//
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL 
gIsaBusComponentName2 = {
+  (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) IsaBusComponentNameGetDriverName,
+  (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) 
IsaBusComponentNameGetControllerName,
+  "en"
+};
+
+/**
+  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
+IsaBusComponentNameGetDriverName (
+  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,
+  IN  CHAR8                        *Language,
+  OUT CHAR16                       **DriverName
+  )
+{
+  return LookupUnicodeString2 (
+           Language,
+           This->SupportedLanguages,
+           mIsaBusDriverNameTable,
+           DriverName,
+           (BOOLEAN)(This == &gIsaBusComponentName)
+           );
+}
+
+
+/**
+  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 NULL.
+
+  @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
+IsaBusComponentNameGetControllerName (
+  IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,
+  IN  EFI_HANDLE                                      ControllerHandle,
+  IN  EFI_HANDLE                                      ChildHandle        
OPTIONAL,
+  IN  CHAR8                                           *Language,
+  OUT CHAR16                                          **ControllerName
+  )
+{
+  return EFI_UNSUPPORTED;
+}

Copied: trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/ComponentName.h (from rev 
17505, trunk/edk2/Bus/Isa/IsaBusDxe/ComponentName.h)
===================================================================
--- trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/ComponentName.h                   
        (rev 0)
+++ trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/ComponentName.h   2015-05-26 
03:25:19 UTC (rev 17506)
@@ -0,0 +1,151 @@
+/** @file
+  UEFI Component Name(2) protocol implementation for IsaBusDxe driver.
+  
+  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+  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 _ISA_BUS_COMPONENT_NAME_H_
+#define _ISA_BUS_COMPONENT_NAME_H_
+
+#include <Uefi.h>
+#include <Protocol/ComponentName.h>
+#include <Protocol/ComponentName2.h>
+
+extern EFI_COMPONENT_NAME_PROTOCOL  gIsaBusComponentName;
+extern EFI_COMPONENT_NAME2_PROTOCOL gIsaBusComponentName2;
+
+/**
+  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
+IsaBusComponentNameGetDriverName (
+  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 NULL.
+
+  @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
+IsaBusComponentNameGetControllerName (
+  IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,
+  IN  EFI_HANDLE                                      ControllerHandle,
+  IN  EFI_HANDLE                                      ChildHandle        
OPTIONAL,
+  IN  CHAR8                                           *Language,
+  OUT CHAR16                                          **ControllerName
+  );
+
+#endif

Copied: trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.c (from rev 17505, 
trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.c)
===================================================================
--- trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.c                       
        (rev 0)
+++ trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.c       2015-05-26 
03:25:19 UTC (rev 17506)
@@ -0,0 +1,461 @@
+/** @file
+  This file consumes the ISA Host Controller protocol produced by the ISA Host
+  Controller and installs the ISA Host Controller Service Binding protocol
+  on the ISA Host Controller's handle.
+
+  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+  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 "IsaBusDxe.h"
+#include "ComponentName.h"
+
+/**
+  Tests to see if this driver supports a given controller. If a child device 
is provided, 
+  it further tests to see if this driver supports creating a handle for the 
specified child device.
+
+  @param[in]  This                 A pointer to the 
EFI_DRIVER_BINDING_PROTOCOL instance.
+  @param[in]  ControllerHandle     The handle of the controller to test. This 
handle 
+                                   must support a protocol interface that 
supplies 
+                                   an I/O abstraction to the driver.
+  @param[in]  RemainingDevicePath  A pointer to the remaining portion of a 
device path.  This 
+                                   parameter is ignored by device drivers, and 
is optional for bus 
+                                   drivers. For bus drivers, if this parameter 
is not NULL, then 
+                                   the bus driver must determine if the bus 
controller specified 
+                                   by ControllerHandle and the child 
controller specified 
+                                   by RemainingDevicePath are both supported 
by this 
+                                   bus driver.
+
+  @retval EFI_SUCCESS              The device specified by ControllerHandle and
+                                   RemainingDevicePath is supported by the 
driver specified by This.
+  @retval EFI_ALREADY_STARTED      The device specified by ControllerHandle and
+                                   RemainingDevicePath is already being 
managed by the driver
+                                   specified by This.
+  @retval EFI_ACCESS_DENIED        The device specified by ControllerHandle and
+                                   RemainingDevicePath is already being 
managed by a different
+                                   driver or an application that requires 
exclusive access.
+                                   Currently not implemented.
+  @retval EFI_UNSUPPORTED          The device specified by ControllerHandle and
+                                   RemainingDevicePath is not supported by the 
driver specified by This.
+**/
+EFI_STATUS
+EFIAPI
+IsaBusDriverBindingSupported (
+  IN EFI_DRIVER_BINDING_PROTOCOL    *This,
+  IN EFI_HANDLE                     Controller,
+  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath
+  )
+{
+  EFI_STATUS                        Status;
+  VOID                              *Instance;
+
+  Status = gBS->OpenProtocol (
+                  Controller,
+                  &gEfiIsaHcProtocolGuid,
+                  &Instance,
+                  This->DriverBindingHandle,
+                  Controller,
+                  EFI_OPEN_PROTOCOL_BY_DRIVER
+                  );
+  if (!EFI_ERROR (Status)) {
+    gBS->CloseProtocol (
+      Controller,
+      &gEfiIsaHcProtocolGuid,
+      This->DriverBindingHandle,
+      Controller
+      );
+  }
+
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  Status = gBS->OpenProtocol (
+                  Controller,
+                  &gEfiDevicePathProtocolGuid,
+                  &Instance,
+                  This->DriverBindingHandle,
+                  Controller,
+                  EFI_OPEN_PROTOCOL_BY_DRIVER
+                  );
+  if (!EFI_ERROR (Status)) {
+    gBS->CloseProtocol (
+      Controller,
+      &gEfiDevicePathProtocolGuid,
+      This->DriverBindingHandle,
+      Controller
+      );
+  }
+
+  return Status;
+}
+
+ISA_BUS_CHILD_PRIVATE_DATA mIsaBusChildPrivateTemplate = {
+  ISA_BUS_CHILD_PRIVATE_DATA_SIGNATURE,
+  FALSE
+};
+
+/**
+  Creates a child handle and installs a protocol.
+  
+  The CreateChild() function installs a protocol on ChildHandle. 
+  If ChildHandle is a pointer to NULL, then a new handle is created and 
returned in ChildHandle. 
+  If ChildHandle is not a pointer to NULL, then the protocol installs on the 
existing ChildHandle.
+
+  @param  This        Pointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
+  @param  ChildHandle Pointer to the handle of the child to create. If it is 
NULL,
+                      then a new handle is created. If it is a pointer to an 
existing UEFI handle, 
+                      then the protocol is added to the existing UEFI handle.
+
+  @retval EFI_SUCCES            The protocol was added to ChildHandle.
+  @retval EFI_INVALID_PARAMETER ChildHandle is NULL.
+  @retval EFI_OUT_OF_RESOURCES  There are not enough resources availabe to 
create
+                                the child
+  @retval other                 The child handle was not created
+
+**/
+EFI_STATUS
+EFIAPI
+IsaBusCreateChild (
+  IN     EFI_SERVICE_BINDING_PROTOCOL  *This,
+  IN OUT EFI_HANDLE                    *ChildHandle
+  )
+{
+  EFI_STATUS                           Status;
+  ISA_BUS_PRIVATE_DATA                 *Private;
+  EFI_ISA_HC_PROTOCOL                  *IsaHc;
+  ISA_BUS_CHILD_PRIVATE_DATA           *Child;
+
+  Private = ISA_BUS_PRIVATE_DATA_FROM_THIS (This);
+
+  Child = AllocateCopyPool (sizeof (mIsaBusChildPrivateTemplate), 
&mIsaBusChildPrivateTemplate);
+  if (Child == NULL) {
+    return EFI_OUT_OF_RESOURCES;
+  }
+
+  Status = gBS->InstallMultipleProtocolInterfaces (
+                  ChildHandle,
+                  &gEfiIsaHcProtocolGuid, Private->IsaHc,
+                  &gEfiCallerIdGuid,      Child,
+                  NULL
+                  );
+  if (EFI_ERROR (Status)) {
+    FreePool (Child);
+    return Status;
+  }
+
+  return gBS->OpenProtocol (
+                Private->IsaHcHandle,
+                &gEfiIsaHcProtocolGuid,
+                (VOID **) &IsaHc,
+                gIsaBusDriverBinding.DriverBindingHandle,
+                *ChildHandle,
+                EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
+                );
+}
+
+/**
+  Destroys a child handle with a protocol installed on it.
+  
+  The DestroyChild() function does the opposite of CreateChild(). It removes a 
protocol 
+  that was installed by CreateChild() from ChildHandle. If the removed 
protocol is the 
+  last protocol on ChildHandle, then ChildHandle is destroyed.
+
+  @param  This        Pointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
+  @param  ChildHandle Handle of the child to destroy
+
+  @retval EFI_SUCCES            The protocol was removed from ChildHandle.
+  @retval EFI_UNSUPPORTED       ChildHandle does not support the protocol that 
is being removed.
+  @retval EFI_INVALID_PARAMETER Child handle is NULL.
+  @retval EFI_ACCESS_DENIED     The protocol could not be removed from the 
ChildHandle
+                                because its services are being used.
+  @retval other                 The child handle was not destroyed
+
+**/
+EFI_STATUS
+EFIAPI
+IsaBusDestroyChild (
+  IN EFI_SERVICE_BINDING_PROTOCOL     *This,
+  IN EFI_HANDLE                       ChildHandle
+  )
+{
+  EFI_STATUS                           Status;
+  ISA_BUS_PRIVATE_DATA                 *Private;
+  EFI_ISA_HC_PROTOCOL                  *IsaHc;
+  ISA_BUS_CHILD_PRIVATE_DATA           *Child;
+
+  Private = ISA_BUS_PRIVATE_DATA_FROM_THIS (This);
+
+  Status = gBS->OpenProtocol (
+                  ChildHandle,
+                  &gEfiCallerIdGuid,
+                  (VOID **) &Child,
+                  gIsaBusDriverBinding.DriverBindingHandle,
+                  ChildHandle,
+                  EFI_OPEN_PROTOCOL_GET_PROTOCOL
+                  );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  ASSERT (Child->Signature == ISA_BUS_CHILD_PRIVATE_DATA_SIGNATURE);
+
+  if (Child->InDestroying) {
+    return EFI_SUCCESS;
+  }
+
+  Child->InDestroying = TRUE;
+  Status = gBS->CloseProtocol (
+                  Private->IsaHcHandle,
+                  &gEfiIsaHcProtocolGuid,
+                  gIsaBusDriverBinding.DriverBindingHandle,
+                  ChildHandle
+                  );
+  ASSERT_EFI_ERROR (Status);
+  if (!EFI_ERROR (Status)) {
+    Status = gBS->UninstallMultipleProtocolInterfaces (
+                    ChildHandle,
+                    &gEfiIsaHcProtocolGuid, Private->IsaHc,
+                    &gEfiCallerIdGuid,      Child,
+                    NULL
+                    );
+    if (EFI_ERROR (Status)) {
+      gBS->OpenProtocol (
+             Private->IsaHcHandle,
+             &gEfiIsaHcProtocolGuid,
+             (VOID **) &IsaHc,
+             gIsaBusDriverBinding.DriverBindingHandle,
+             ChildHandle,
+             EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
+             );
+    }
+  }
+
+  if (EFI_ERROR (Status)) {
+    Child->InDestroying = FALSE;
+  } else {
+    FreePool (Child);
+  }
+
+  return Status;
+}
+
+ISA_BUS_PRIVATE_DATA   mIsaBusPrivateTemplate = {
+  ISA_BUS_PRIVATE_DATA_SIGNATURE,
+  {
+    IsaBusCreateChild,
+    IsaBusDestroyChild
+  }
+};
+
+/**
+  Starts a device controller or a bus controller.
+
+  @param[in]  This                 A pointer to the 
EFI_DRIVER_BINDING_PROTOCOL instance.
+  @param[in]  ControllerHandle     The handle of the controller to start. This 
handle 
+                                   must support a protocol interface that 
supplies 
+                                   an I/O abstraction to the driver.
+  @param[in]  RemainingDevicePath  A pointer to the remaining portion of a 
device path.  This 
+                                   parameter is ignored by device drivers, and 
is optional for bus 
+                                   drivers. For a bus driver, if this 
parameter is NULL, then handles 
+                                   for all the children of Controller are 
created by this driver.  
+                                   If this parameter is not NULL and the first 
Device Path Node is 
+                                   not the End of Device Path Node, then only 
the handle for the 
+                                   child device specified by the first Device 
Path Node of 
+                                   RemainingDevicePath is created by this 
driver.
+                                   If the first Device Path Node of 
RemainingDevicePath is 
+                                   the End of Device Path Node, no child 
handle is created by this
+                                   driver.
+
+  @retval EFI_SUCCESS              The device was started.
+  @retval EFI_DEVICE_ERROR         The device could not be started due to a 
device error.Currently not implemented.
+  @retval EFI_OUT_OF_RESOURCES     The request could not be completed due to a 
lack of resources.
+  @retval Others                   The driver failded to start the device.
+
+**/
+EFI_STATUS
+EFIAPI
+IsaBusDriverBindingStart (
+  IN EFI_DRIVER_BINDING_PROTOCOL    *This,
+  IN EFI_HANDLE                     Controller,
+  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath
+  )
+{
+  EFI_STATUS                        Status;
+  EFI_DEVICE_PATH_PROTOCOL          *DevicePath;
+  ISA_BUS_PRIVATE_DATA              *Private;
+
+  Status = gBS->OpenProtocol (
+                  Controller,
+                  &gEfiIsaHcProtocolGuid,
+                  (VOID **) &mIsaBusPrivateTemplate.IsaHc,
+                  This->DriverBindingHandle,
+                  Controller,
+                  EFI_OPEN_PROTOCOL_BY_DRIVER
+                  );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  Status = gBS->OpenProtocol (
+                  Controller,
+                  &gEfiDevicePathProtocolGuid,
+                  (VOID **) &DevicePath,
+                  This->DriverBindingHandle,
+                  Controller,
+                  EFI_OPEN_PROTOCOL_BY_DRIVER
+                  );
+  if (EFI_ERROR (Status)) {
+    gBS->CloseProtocol (
+           Controller,
+           &gEfiIsaHcProtocolGuid,
+           This->DriverBindingHandle,
+           Controller
+           );
+    return Status;
+  }
+
+  Private = AllocateCopyPool (sizeof (mIsaBusPrivateTemplate), 
&mIsaBusPrivateTemplate);
+  ASSERT (Private != NULL);
+
+  Private->IsaHcHandle = Controller;
+
+  Status = gBS->InstallMultipleProtocolInterfaces (
+                  &Controller,
+                  &gEfiIsaHcServiceBindingProtocolGuid, 
&Private->ServiceBinding,
+                  NULL
+                  );
+  ASSERT_EFI_ERROR (Status);
+
+  return Status;
+}
+
+/**
+  Stops a device controller or a bus controller.
+  
+  @param[in]  This              A pointer to the EFI_DRIVER_BINDING_PROTOCOL 
instance.
+  @param[in]  ControllerHandle  A handle to the device being stopped. The 
handle must 
+                                support a bus specific I/O protocol for the 
driver 
+                                to use to stop the device.
+  @param[in]  NumberOfChildren  The number of child device handles in 
ChildHandleBuffer.
+  @param[in]  ChildHandleBuffer An array of child handles to be freed. May be 
NULL 
+                                if NumberOfChildren is 0.
+
+  @retval EFI_SUCCESS           The device was stopped.
+  @retval EFI_DEVICE_ERROR      The device could not be stopped due to a 
device error.
+
+**/
+EFI_STATUS
+EFIAPI
+IsaBusDriverBindingStop (
+  IN  EFI_DRIVER_BINDING_PROTOCOL    *This,
+  IN  EFI_HANDLE                     Controller,
+  IN  UINTN                          NumberOfChildren,
+  IN  EFI_HANDLE                     *ChildHandleBuffer
+  )
+{
+  EFI_STATUS                         Status;
+  EFI_SERVICE_BINDING_PROTOCOL       *ServiceBinding;
+  ISA_BUS_PRIVATE_DATA               *Private;
+  UINTN                              Index;
+  BOOLEAN                            AllChildrenStopped;
+
+  Status = gBS->OpenProtocol (
+                  Controller,
+                  &gEfiIsaHcServiceBindingProtocolGuid,
+                  (VOID **) &ServiceBinding,
+                  This->DriverBindingHandle,
+                  Controller,
+                  EFI_OPEN_PROTOCOL_GET_PROTOCOL
+                  );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  Private = ISA_BUS_PRIVATE_DATA_FROM_THIS (ServiceBinding);
+
+  if (NumberOfChildren == 0) {
+    Status = gBS->UninstallMultipleProtocolInterfaces (
+                    Controller,
+                    &gEfiIsaHcServiceBindingProtocolGuid, 
&Private->ServiceBinding,
+                    NULL
+                    );
+    if (!EFI_ERROR (Status)) {
+      gBS->CloseProtocol (
+             Controller,
+             &gEfiDevicePathProtocolGuid,
+             This->DriverBindingHandle,
+             Controller
+             );
+      gBS->CloseProtocol (
+             Controller,
+             &gEfiIsaHcProtocolGuid,
+             This->DriverBindingHandle,
+             Controller
+             );
+      FreePool (Private);
+    }
+
+    return Status;
+  }
+
+  AllChildrenStopped = TRUE;
+  for (Index = 0; Index < NumberOfChildren; Index++) {
+    Status = ServiceBinding->DestroyChild (ServiceBinding, 
ChildHandleBuffer[Index]);
+    if (EFI_ERROR (Status)) {
+      AllChildrenStopped = FALSE;
+    }
+  }
+
+  return AllChildrenStopped ? EFI_SUCCESS : EFI_DEVICE_ERROR;
+}
+
+//
+// ISA Bus Driver Binding Protocol Instance
+//
+EFI_DRIVER_BINDING_PROTOCOL gIsaBusDriverBinding = {
+  IsaBusDriverBindingSupported,
+  IsaBusDriverBindingStart,
+  IsaBusDriverBindingStop,
+  0x10,
+  NULL,
+  NULL
+};
+
+/**
+  Entry point of the IsaBusDxe driver.
+  
+  @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
+InitializeIsaBus (
+  IN EFI_HANDLE        ImageHandle,
+  IN EFI_SYSTEM_TABLE  *SystemTable
+  )
+{
+  EFI_STATUS           Status;
+  
+  Status = EfiLibInstallDriverBindingComponentName2 (
+             ImageHandle,
+             SystemTable,
+             &gIsaBusDriverBinding,
+             ImageHandle,
+             &gIsaBusComponentName,
+             &gIsaBusComponentName2
+             );
+  ASSERT_EFI_ERROR (Status);
+  return Status;
+}

Copied: trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.h (from rev 17505, 
trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.h)
===================================================================
--- trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.h                       
        (rev 0)
+++ trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.h       2015-05-26 
03:25:19 UTC (rev 17506)
@@ -0,0 +1,46 @@
+/** @file
+  Header file for the ISA BUS driver.
+
+  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+  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 _ISA_BUS_H_
+#define _ISA_BUS_H_
+
+#include <Uefi.h>
+#include <Protocol/IsaHc.h>
+#include <Library/UefiLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+#include <Library/DebugLib.h>
+#include <Library/DevicePathLib.h>
+#include <Library/MemoryAllocationLib.h>
+#include <Protocol/DevicePath.h>
+#include <Protocol/ServiceBinding.h>
+
+typedef struct {
+  UINT32                          Signature;
+  EFI_SERVICE_BINDING_PROTOCOL    ServiceBinding;
+  EFI_ISA_HC_PROTOCOL             *IsaHc;       ///< ISA HC protocol produced 
by the ISA Host Controller driver
+  EFI_HANDLE                      IsaHcHandle;  ///< ISA HC handle created by 
the ISA Host Controller driver
+} ISA_BUS_PRIVATE_DATA;
+#define ISA_BUS_PRIVATE_DATA_SIGNATURE    SIGNATURE_32 ('_', 'i', 's', 'b')
+#define ISA_BUS_PRIVATE_DATA_FROM_THIS(a) CR (a, ISA_BUS_PRIVATE_DATA, 
ServiceBinding, ISA_BUS_PRIVATE_DATA_SIGNATURE)
+
+typedef struct {
+  UINT32                          Signature;
+  BOOLEAN                         InDestroying; ///< Flag to avoid 
DestroyChild() re-entry.
+} ISA_BUS_CHILD_PRIVATE_DATA;
+#define ISA_BUS_CHILD_PRIVATE_DATA_SIGNATURE    SIGNATURE_32 ('_', 'i', 's', 
'c')
+
+extern EFI_DRIVER_BINDING_PROTOCOL gIsaBusDriverBinding;
+
+#endif

Copied: trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf (from rev 
17505, trunk/edk2/Bus/Isa/IsaBusDxe/IsaBusDxe.inf)
===================================================================
--- trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf                     
        (rev 0)
+++ trunk/edk2/MdeModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf     2015-05-26 
03:25:19 UTC (rev 17506)
@@ -0,0 +1,59 @@
+## @file
+#  ISA Bus driver to manage the child devices attached to the ISA Host 
Controller.
+#
+#  This driver follows UEFI driver model and layers on ISA HC protocol defined
+#  in PI spec 1.2.1. It consumes the ISA Host Controller protocol produced by
+#  the ISA Host Controller and installs the ISA Host Controller Service Binding
+#  protocol on the ISA Host Controller's handle.
+#
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+#
+#  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]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = IsaBusDxe
+  FILE_GUID                      = DCBE6D66-D928-4138-8041-358F35CBCF80
+  MODULE_TYPE                    = UEFI_DRIVER
+  VERSION_STRING                 = 1.0
+  ENTRY_POINT                    = InitializeIsaBus
+
+#
+# The following information is for reference only and not required by the 
build tools.
+#
+#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
+#
+#  DRIVER_BINDING                =  gIsaBusDriverBinding
+#  COMPONENT_NAME                =  gIsaBusComponentName
+#  COMPONENT_NAME2               =  gIsaBusComponentName2
+#
+
+[Sources]
+  IsaBusDxe.h
+  IsaBusDxe.c
+  ComponentName.h
+  ComponentName.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+
+[LibraryClasses]
+  UefiDriverEntryPoint
+  UefiBootServicesTableLib
+  BaseLib
+  BaseMemoryLib
+  MemoryAllocationLib
+  UefiLib
+  DebugLib
+
+[Protocols]
+  gEfiIsaHcProtocolGuid
+  gEfiIsaHcServiceBindingProtocolGuid


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to