-/*++\r
-\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
-Module Name:\r
-\r
- DevicePathDriver.c\r
-\r
-Abstract:\r
-\r
+/** @file\r
Device Path Driver to produce DevPathUtilities Protocol, DevPathFromText Protocol\r
and DevPathToText Protocol.\r
\r
---*/\r
-\r
-//\r
-// Include common header file for this module.\r
-//\r
-#include "CommonHeader.h"\r
-\r
-#include "DevicePath.h"\r
-\r
-EFI_HANDLE mDevicePathHandle = NULL;\r
-\r
-GLOBAL_REMOVE_IF_UNREFERENCED const EFI_DEVICE_PATH_UTILITIES_PROTOCOL mDevicePathUtilities = {\r
- GetDevicePathSizeProtocolInterface,\r
- DuplicateDevicePathProtocolInterface,\r
- AppendDevicePathProtocolInterface,\r
- AppendDeviceNodeProtocolInterface,\r
- AppendDevicePathInstanceProtocolInterface,\r
- GetNextDevicePathInstanceProtocolInterface,\r
- IsDevicePathMultiInstanceProtocolInterface,\r
- CreateDeviceNodeProtocolInterface\r
+Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
+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
+#include <Uefi.h>\r
+#include <Protocol/DevicePathUtilities.h>\r
+#include <Protocol/DevicePathToText.h>\r
+#include <Protocol/DevicePathFromText.h>\r
+#include <Library/UefiDriverEntryPoint.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/DevicePathLib.h>\r
+#include <Library/PcdLib.h>\r
+\r
+GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_UTILITIES_PROTOCOL mDevicePathUtilities = {\r
+ GetDevicePathSize,\r
+ DuplicateDevicePath,\r
+ AppendDevicePath,\r
+ AppendDevicePathNode,\r
+ AppendDevicePathInstance,\r
+ GetNextDevicePathInstance,\r
+ IsDevicePathMultiInstance,\r
+ CreateDeviceNode\r
};\r
\r
-GLOBAL_REMOVE_IF_UNREFERENCED const EFI_DEVICE_PATH_TO_TEXT_PROTOCOL mDevicePathToText = {\r
+GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_TO_TEXT_PROTOCOL mDevicePathToText = {\r
ConvertDeviceNodeToText,\r
ConvertDevicePathToText\r
};\r
\r
-GLOBAL_REMOVE_IF_UNREFERENCED const EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL mDevicePathFromText = {\r
- ConvertTextToDeviceNode, \r
- ConvertTextToDevicePath \r
+GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL mDevicePathFromText = {\r
+ ConvertTextToDeviceNode,\r
+ ConvertTextToDevicePath\r
};\r
\r
-GLOBAL_REMOVE_IF_UNREFERENCED const EFI_GUID mEfiDevicePathMessagingUartFlowControlGuid = DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL;\r
-GLOBAL_REMOVE_IF_UNREFERENCED const EFI_GUID mEfiDevicePathMessagingSASGuid = DEVICE_PATH_MESSAGING_SAS;\r
+/**\r
+ The user Entry Point for DevicePath module.\r
\r
+ This is the entry point for DevicePath module. It installs the UEFI Device Path Utility Protocol and\r
+ optionally the Device Path to Text and Device Path from Text protocols based on feature flags.\r
+\r
+ @param[in] ImageHandle The firmware allocated handle for the EFI image.\r
+ @param[in] SystemTable A pointer to the EFI System Table.\r
+\r
+ @retval EFI_SUCCESS The entry point is executed successfully.\r
+ @retval Others Some error occurs when executing this entry point.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
DevicePathEntryPoint (\r
IN EFI_HANDLE ImageHandle,\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
-/*++\r
-\r
- Routine Description:\r
- Entry point for EFI drivers.\r
-\r
- Arguments:\r
- ImageHandle - EFI_HANDLE\r
- SystemTable - EFI_SYSTEM_TABLE\r
-\r
- Returns:\r
- EFI_SUCCESS\r
- others\r
-\r
---*/\r
{\r
EFI_STATUS Status;\r
- \r
+ EFI_HANDLE Handle;\r
+\r
+ Handle = NULL;\r
Status = EFI_UNSUPPORTED;\r
if (FeaturePcdGet (PcdDevicePathSupportDevicePathToText)) {\r
if (FeaturePcdGet (PcdDevicePathSupportDevicePathFromText)) {\r
Status = gBS->InstallMultipleProtocolInterfaces (\r
- &mDevicePathHandle,\r
+ &Handle,\r
&gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities,\r
&gEfiDevicePathToTextProtocolGuid, &mDevicePathToText,\r
&gEfiDevicePathFromTextProtocolGuid, &mDevicePathFromText,\r
);\r
} else {\r
Status = gBS->InstallMultipleProtocolInterfaces (\r
- &mDevicePathHandle,\r
+ &Handle,\r
&gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities,\r
&gEfiDevicePathToTextProtocolGuid, &mDevicePathToText,\r
NULL\r
} else {\r
if (FeaturePcdGet (PcdDevicePathSupportDevicePathFromText)) {\r
Status = gBS->InstallMultipleProtocolInterfaces (\r
- &mDevicePathHandle,\r
+ &Handle,\r
&gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities,\r
&gEfiDevicePathFromTextProtocolGuid, &mDevicePathFromText,\r
NULL\r
);\r
} else {\r
Status = gBS->InstallMultipleProtocolInterfaces (\r
- &mDevicePathHandle,\r
+ &Handle,\r
&gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities,\r
NULL\r
);\r