-/*++
-
-Copyright (c) 2006, 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.
-
-Module Name:
-
- DevicePathDriver.c
-
-Abstract:
-
- Device Path Driver to produce DevPathUtilities Protocol, DevPathFromText Protocol
- and DevPathToText Protocol.
-
---*/
-
-#include "DevicePath.h"
-
-DEVICE_PATH_DRIVER_PRIVATE_DATA mPrivateData;
-
-EFI_GUID mEfiDevicePathMessagingUartFlowControlGuid = DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL;
-EFI_GUID mEfiDevicePathMessagingSASGuid = DEVICE_PATH_MESSAGING_SAS;
-
-EFI_STATUS
-EFIAPI
-DevicePathEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
- )
-/*++
-
- Routine Description:
- Entry point for EFI drivers.
-
- Arguments:
- ImageHandle - EFI_HANDLE
- SystemTable - EFI_SYSTEM_TABLE
-
- Returns:
- EFI_SUCCESS
- others
-
---*/
-{
- EFI_STATUS Status;
-
- mPrivateData.Signature = DEVICE_PATH_DRIVER_SIGNATURE;
-
- mPrivateData.DevicePathUtilities.GetDevicePathSize = GetDevicePathSizeProtocolInterface;
- mPrivateData.DevicePathUtilities.DuplicateDevicePath = DuplicateDevicePathProtocolInterface;
- mPrivateData.DevicePathUtilities.AppendDevicePath = AppendDevicePathProtocolInterface;
- mPrivateData.DevicePathUtilities.AppendDeviceNode = AppendDeviceNodeProtocolInterface;
- mPrivateData.DevicePathUtilities.AppendDevicePathInstance = AppendDevicePathInstanceProtocolInterface;
- mPrivateData.DevicePathUtilities.GetNextDevicePathInstance = GetNextDevicePathInstanceProtocolInterface;
- mPrivateData.DevicePathUtilities.IsDevicePathMultiInstance = IsDevicePathMultiInstanceProtocolInterface;
- mPrivateData.DevicePathUtilities.CreateDeviceNode = CreateDeviceNodeProtocolInterface;
-
- mPrivateData.DevicePathToText.ConvertDeviceNodeToText = ConvertDeviceNodeToText;
- mPrivateData.DevicePathToText.ConvertDevicePathToText = ConvertDevicePathToText;
-
- mPrivateData.DevicePathFromText.ConvertTextToDeviceNode = ConvertTextToDeviceNode;
- mPrivateData.DevicePathFromText.ConvertTextToDevicePath = ConvertTextToDevicePath;
-
- mPrivateData.Handle = NULL;
-
- Status = gBS->InstallMultipleProtocolInterfaces (
- &mPrivateData.Handle,
- &gEfiDevicePathUtilitiesProtocolGuid,
- &mPrivateData.DevicePathUtilities,
- &gEfiDevicePathToTextProtocolGuid,
- &mPrivateData.DevicePathToText,
- &gEfiDevicePathFromTextProtocolGuid,
- &mPrivateData.DevicePathFromText,
- NULL
- );
-
- return Status;
-}
+/*++\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
+ Device Path Driver to produce DevPathUtilities Protocol, DevPathFromText Protocol\r
+ and DevPathToText Protocol.\r
+\r
+--*/\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
+};\r
+\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
+};\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
+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
+ Status = EFI_UNSUPPORTED;\r
+ if (FeaturePcdGet (PcdDevicePathSupportDevicePathToText)) {\r
+ if (FeaturePcdGet (PcdDevicePathSupportDevicePathFromText)) {\r
+ Status = gBS->InstallMultipleProtocolInterfaces (\r
+ &mDevicePathHandle,\r
+ &gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities,\r
+ &gEfiDevicePathToTextProtocolGuid, &mDevicePathToText,\r
+ &gEfiDevicePathFromTextProtocolGuid, &mDevicePathFromText,\r
+ NULL\r
+ );\r
+ } else {\r
+ Status = gBS->InstallMultipleProtocolInterfaces (\r
+ &mDevicePathHandle,\r
+ &gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities,\r
+ &gEfiDevicePathToTextProtocolGuid, &mDevicePathToText,\r
+ NULL\r
+ );\r
+ }\r
+ } else {\r
+ if (FeaturePcdGet (PcdDevicePathSupportDevicePathFromText)) {\r
+ Status = gBS->InstallMultipleProtocolInterfaces (\r
+ &mDevicePathHandle,\r
+ &gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities,\r
+ &gEfiDevicePathFromTextProtocolGuid, &mDevicePathFromText,\r
+ NULL\r
+ );\r
+ } else {\r
+ Status = gBS->InstallMultipleProtocolInterfaces (\r
+ &mDevicePathHandle,\r
+ &gEfiDevicePathUtilitiesProtocolGuid, &mDevicePathUtilities,\r
+ NULL\r
+ );\r
+ }\r
+ }\r
+ return Status;\r
+}\r