From aa8f4f55ff80d0c1b1efcdae6d45db76849fc265 Mon Sep 17 00:00:00 2001 From: vanjeff Date: Mon, 23 Feb 2009 02:51:45 +0000 Subject: 1. Retired HotPlugDevice protocol. 2. Check devicepath node to get hot plug information. Currently, USB and PCCard device are checked. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7562 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Universal/Console/ConPlatformDxe/ConPlatform.c | 45 +++++++++++++--------- .../Universal/Console/ConPlatformDxe/ConPlatform.h | 1 - 2 files changed, 26 insertions(+), 20 deletions(-) (limited to 'MdeModulePkg/Universal/Console/ConPlatformDxe') diff --git a/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.c b/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.c index 0cb07a2971..f6483ed1fd 100644 --- a/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.c +++ b/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.c @@ -256,7 +256,7 @@ ConPlatformTextInDriverBindingStart ( return Status; } // - // Check the device handle, if it is a hot plug device, + // Check the device path, if it is a hot plug device, // do not put the device path into ConInDev, and install // gEfiConsoleInDeviceGuid to the device handle directly. // The policy is, make hot plug device plug in and play immediately. @@ -373,7 +373,7 @@ ConPlatformTextOutDriverBindingStart ( return Status; } // - // Check the device handle, if it is a hot plug device, + // Check the device path, if it is a hot plug device, // do not put the device path into ConOutDev and ErrOutDev, // and install gEfiConsoleOutDeviceGuid to the device handle directly. // The policy is, make hot plug device plug in and play immediately. @@ -953,24 +953,31 @@ IsHotPlugDevice ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePath ) { - // - // Check device whether is hot plug device or not throught Device Path - // - if ((DevicePathType (DevicePath) == MESSAGING_DEVICE_PATH) && - (DevicePathSubType (DevicePath) == MSG_USB_DP || - DevicePathSubType (DevicePath) == MSG_USB_CLASS_DP || - DevicePathSubType (DevicePath) == MSG_USB_WWID_DP)) { - // - // If Device is USB device - // - return TRUE; - } - if ((DevicePathType (DevicePath) == HARDWARE_DEVICE_PATH) && - (DevicePathSubType (DevicePath) == HW_PCCARD_DP)) { - // - // If Device is PCCard + EFI_DEVICE_PATH_PROTOCOL *CheckDevicePath; + + CheckDevicePath = DevicePath; + while (!IsDevicePathEnd (CheckDevicePath)) { // - return TRUE; + // Check device whether is hot plug device or not throught Device Path + // + if ((DevicePathType (CheckDevicePath) == MESSAGING_DEVICE_PATH) && + (DevicePathSubType (CheckDevicePath) == MSG_USB_DP || + DevicePathSubType (CheckDevicePath) == MSG_USB_CLASS_DP || + DevicePathSubType (CheckDevicePath) == MSG_USB_WWID_DP)) { + // + // If Device is USB device + // + return TRUE; + } + if ((DevicePathType (CheckDevicePath) == HARDWARE_DEVICE_PATH) && + (DevicePathSubType (CheckDevicePath) == HW_PCCARD_DP)) { + // + // If Device is PCCard + // + return TRUE; + } + + CheckDevicePath = NextDevicePathNode (CheckDevicePath); } return FALSE; diff --git a/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.h b/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.h index d0fa03af5b..a47ad1ce30 100644 --- a/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.h +++ b/MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatform.h @@ -20,7 +20,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #include #include #include -#include #include #include -- cgit v1.2.3