MdePkg: Add ToText/FromText support for URI device path node

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17370 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Ruiyu Ni
2015-05-08 07:31:39 +00:00
committed by niruiyu
parent 4128acd90e
commit c808ac7bee
2 changed files with 73 additions and 0 deletions

View File

@@ -2741,6 +2741,38 @@ DevPathFromTextBluetooth (
return (EFI_DEVICE_PATH_PROTOCOL *) BluetoothDp;
}
/**
Converts a text device path node to URI device path structure.
@param TextDeviceNode The input Text device path node.
@return A pointer to the newly-created URI device path structure.
**/
EFI_DEVICE_PATH_PROTOCOL *
DevPathFromTextUri (
IN CHAR16 *TextDeviceNode
)
{
CHAR16 *UriStr;
UINTN UriLength;
URI_DEVICE_PATH *Uri;
UriStr = GetNextParamStr (&TextDeviceNode);
UriLength = StrnLenS (UriStr, MAX_UINT16 - sizeof (URI_DEVICE_PATH));
Uri = (URI_DEVICE_PATH *) CreateDeviceNode (
MESSAGING_DEVICE_PATH,
MSG_URI_DP,
(UINT16) (sizeof (URI_DEVICE_PATH) + UriLength)
);
while (UriLength-- != 0) {
Uri->Uri[UriLength] = (CHAR8) UriStr[UriLength];
}
return (EFI_DEVICE_PATH_PROTOCOL *) Uri;
}
/**
Converts a media text device path node to media device path structure.
@@ -3181,6 +3213,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED DEVICE_PATH_FROM_TEXT_TABLE mUefiDevicePathLibDevP
{L"Unit", DevPathFromTextUnit },
{L"iSCSI", DevPathFromTextiSCSI },
{L"Vlan", DevPathFromTextVlan },
{L"Uri", DevPathFromTextUri },
{L"Bluetooth", DevPathFromTextBluetooth },
{L"MediaPath", DevPathFromTextMediaPath },
{L"HD", DevPathFromTextHD },