+++ /dev/null
-/*++\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