From c23f114d3cfbb29b8734b87213d1ec0de404197b Mon Sep 17 00:00:00 2001 From: Guo Mang Date: Thu, 27 Apr 2017 11:05:07 +0800 Subject: MdeModulePkg: Move to new location Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang --- .../Universal/DevicePathDxe/DevicePath.c | 105 +++++++++++++++++++++ .../Universal/DevicePathDxe/DevicePathDxe.inf | 60 ++++++++++++ .../Universal/DevicePathDxe/DevicePathDxe.uni | 25 +++++ .../Universal/DevicePathDxe/DevicePathDxeExtra.uni | 20 ++++ 4 files changed, 210 insertions(+) create mode 100644 Core/MdeModulePkg/Universal/DevicePathDxe/DevicePath.c create mode 100644 Core/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf create mode 100644 Core/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.uni create mode 100644 Core/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxeExtra.uni (limited to 'Core/MdeModulePkg/Universal/DevicePathDxe') diff --git a/Core/MdeModulePkg/Universal/DevicePathDxe/DevicePath.c b/Core/MdeModulePkg/Universal/DevicePathDxe/DevicePath.c new file mode 100644 index 0000000000..70f03bd27a --- /dev/null +++ b/Core/MdeModulePkg/Universal/DevicePathDxe/DevicePath.c @@ -0,0 +1,105 @@ +/** @file + Device Path Driver to produce DevPathUtilities Protocol, DevPathFromText Protocol + and DevPathToText Protocol. + +Copyright (c) 2006 - 2013, 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. + +**/ + +#include +#include +#include +#include +#include +#include +#include +#include + +GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_UTILITIES_PROTOCOL mDevicePathUtilities = { + GetDevicePathSize, + DuplicateDevicePath, + AppendDevicePath, + AppendDevicePathNode, + AppendDevicePathInstance, + GetNextDevicePathInstance, + IsDevicePathMultiInstance, + CreateDeviceNode +}; + +GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_TO_TEXT_PROTOCOL mDevicePathToText = { + ConvertDeviceNodeToText, + ConvertDevicePathToText +}; + +GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL mDevicePathFromText = { + ConvertTextToDeviceNode, + ConvertTextToDevicePath +}; + +/** + The user Entry Point for DevicePath module. + + This is the entry point for DevicePath module. It installs the UEFI Device Path Utility Protocol and + optionally the Device Path to Text and Device Path from Text protocols based on feature flags. + + @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 Others Some error occurs when executing this entry point. + +**/ +EFI_STATUS +EFIAPI +DevicePathEntryPoint ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + EFI_HANDLE Handle; + + Handle = NULL; + Status = EFI_UNSUPPORTED; + if (FeaturePcdGet (PcdDevicePathSupportDevicePathToText)) { + if (FeaturePcdGet (PcdDevicePathSupportDevicePathFromText)) { + Status = gBS->InstallMultipleProtocolInterfaces ( + &Handle, + &gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities, + &gEfiDevicePathToTextProtocolGuid, &mDevicePathToText, + &gEfiDevicePathFromTextProtocolGuid, &mDevicePathFromText, + NULL + ); + } else { + Status = gBS->InstallMultipleProtocolInterfaces ( + &Handle, + &gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities, + &gEfiDevicePathToTextProtocolGuid, &mDevicePathToText, + NULL + ); + } + } else { + if (FeaturePcdGet (PcdDevicePathSupportDevicePathFromText)) { + Status = gBS->InstallMultipleProtocolInterfaces ( + &Handle, + &gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities, + &gEfiDevicePathFromTextProtocolGuid, &mDevicePathFromText, + NULL + ); + } else { + Status = gBS->InstallMultipleProtocolInterfaces ( + &Handle, + &gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities, + NULL + ); + } + } + return Status; +} diff --git a/Core/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf b/Core/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf new file mode 100644 index 0000000000..ba6ed6b6d8 --- /dev/null +++ b/Core/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf @@ -0,0 +1,60 @@ +## @file +# Device path driver that produces three UEFI device path protocols. +# +# This driver produces Device Path Utilities protocol and optionally +# DevicePahtToText and DevicePathFromText protocols based on feature flags +# PcdDevicePathSupportDevicePathToText & PcdDevicePathSupportDevicePathFromText +# respectively. +# +# Copyright (c) 2006 - 2014, 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. +# +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = DevicePathDxe + MODULE_UNI_FILE = DevicePathDxe.uni + FILE_GUID = 9B680FCE-AD6B-4F3A-B60B-F59899003443 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = DevicePathEntryPoint + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC +# + +[Sources] + DevicePath.c + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + +[LibraryClasses] + DevicePathLib + UefiBootServicesTableLib + UefiDriverEntryPoint + +[Protocols] + gEfiDevicePathToTextProtocolGuid | gEfiMdeModulePkgTokenSpaceGuid.PcdDevicePathSupportDevicePathFromText ## SOMETIMES_PRODUCES + gEfiDevicePathFromTextProtocolGuid | gEfiMdeModulePkgTokenSpaceGuid.PcdDevicePathSupportDevicePathToText ## SOMETIMES_PRODUCES + gEfiDevicePathUtilitiesProtocolGuid ## PRODUCES + +[FeaturePcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdDevicePathSupportDevicePathFromText ## CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdDevicePathSupportDevicePathToText ## CONSUMES + +[Depex] + TRUE + +[UserExtensions.TianoCore."ExtraFiles"] + DevicePathDxeExtra.uni diff --git a/Core/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.uni b/Core/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.uni new file mode 100644 index 0000000000..0f485742f5 --- /dev/null +++ b/Core/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.uni @@ -0,0 +1,25 @@ +// /** @file +// Device path driver that produces three UEFI device path protocols. +// +// This driver produces Device Path Utilities protocol and optionally +// DevicePahtToText and DevicePathFromText protocols based on feature flags +// PcdDevicePathSupportDevicePathToText & PcdDevicePathSupportDevicePathFromText +// respectively. +// +// Copyright (c) 2006 - 2014, 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. +// +// **/ + + +#string STR_MODULE_ABSTRACT #language en-US "Produces three UEFI device path protocols" + +#string STR_MODULE_DESCRIPTION #language en-US "This driver produces Device Path Utilities protocol and optionally DevicePahtToText and DevicePathFromText protocols based on feature flags PcdDevicePathSupportDevicePathToText & PcdDevicePathSupportDevicePathFromText respectively." + diff --git a/Core/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxeExtra.uni b/Core/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxeExtra.uni new file mode 100644 index 0000000000..8ac8e3491b --- /dev/null +++ b/Core/MdeModulePkg/Universal/DevicePathDxe/DevicePathDxeExtra.uni @@ -0,0 +1,20 @@ +// /** @file +// DevicePathDxe Localized Strings and Content +// +// Copyright (c) 2013 - 2014, 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. +// +// **/ + +#string STR_PROPERTIES_MODULE_NAME +#language en-US +"UEFI Device Path DXE Driver" + + -- cgit v1.2.3