48 UINTN ParameterLength;
53 NodeNameLength =
StrLen (NodeName);
54 if (
StrnCmp (Str, NodeName, NodeNameLength) != 0) {
58 ParamStr = Str + NodeNameLength;
59 if (!IS_LEFT_PARENTH (*ParamStr)) {
68 StrPointer = ParamStr;
69 while (!IS_NULL (*StrPointer)) {
70 if (IS_RIGHT_PARENTH (*StrPointer)) {
78 if (IS_NULL (*StrPointer)) {
85 ParamStr =
AllocateCopyPool ((ParameterLength + 1) *
sizeof (CHAR16), ParamStr);
86 if (ParamStr ==
NULL) {
93 ParamStr[ParameterLength] = L
'\0';
112 IN OUT CHAR16 **List,
122 if (IS_NULL (*Str)) {
129 while (!IS_NULL (*Str)) {
130 if (*Str == Separator) {
137 if (*Str == Separator) {
183 IN OUT CHAR16 **DevicePath,
184 OUT BOOLEAN *IsInstanceEnd
189 UINTN ParenthesesStack;
192 if (IS_NULL (*Str)) {
199 while (!IS_NULL (*Str)) {
200 if (!IS_SLASH (*Str) &&
202 !IS_LEFT_PARENTH (*Str) &&
203 !IS_RIGHT_PARENTH (*Str))
216 ParenthesesStack = 0;
217 while (!IS_NULL (*Str)) {
218 if ((IS_COMMA (*Str) || IS_SLASH (*Str)) && (ParenthesesStack == 0)) {
222 if (IS_LEFT_PARENTH (*Str)) {
224 }
else if (IS_RIGHT_PARENTH (*Str)) {
231 if (ParenthesesStack != 0) {
238 if (IS_COMMA (*Str)) {
239 *IsInstanceEnd =
TRUE;
243 *IsInstanceEnd =
FALSE;
244 if (!IS_NULL (*Str)) {
272 while (*Str == L
' ') {
279 while (*Str == L
'0') {
283 return (BOOLEAN)(*Str == L
'x' || *Str == L
'X');
339 IN OUT CHAR8 **AsciiStr
345 while (!IS_NULL (*Str)) {
346 *(Dest++) = (CHAR8)*(Str++);
354 *AsciiStr = Dest + 1;
368 IN CHAR16 *TextDeviceNode
379 if (DataStr ==
NULL) {
382 DataLength =
StrLen (DataStr) / 2;
387 (UINT8)
Strtoi (SubtypeStr),
392 StrHexToBytes (DataStr, DataLength * 2, (UINT8 *)(Node + 1), DataLength);
408 IN CHAR16 *TextDeviceNode
428 IN CHAR16 *TextDeviceNode
444 IN CHAR16 *TextDeviceNode
477 IN CHAR16 *TextDeviceNode
480 CHAR16 *FunctionNumberStr;
490 if (Pccard !=
NULL) {
507 IN CHAR16 *TextDeviceNode
510 CHAR16 *MemoryTypeStr;
511 CHAR16 *StartingAddressStr;
512 CHAR16 *EndingAddressStr;
524 if (MemMap !=
NULL) {
546 IN CHAR16 *TextDeviceNode,
559 Length =
StrLen (DataStr);
563 Length = (Length + 1) / 2;
571 if (Vendor !=
NULL) {
573 StrHexToBytes (DataStr, Length * 2, (UINT8 *)(Vendor + 1), Length);
589 IN CHAR16 *TextDeviceNode
609 IN CHAR16 *TextDeviceNode
612 CHAR16 *ControllerStr;
622 if (Controller !=
NULL) {
639 IN CHAR16 *TextDeviceNode
642 CHAR16 *InterfaceTypeStr;
643 CHAR16 *BaseAddressStr;
675 IN CHAR16 *TextDeviceNode
693 return (((Text[0] -
'A' + 1) & 0x1f) << 10)
694 + (((Text[1] -
'A' + 1) & 0x1f) << 5)
695 + (((Text[2] -
'A' + 1) & 0x1f) << 0)
710 IN CHAR16 *TextDeviceNode
744 IN CHAR16 *TextDeviceNode,
759 Acpi->
HID = EFI_PNP_ID (PnPId);
776 IN CHAR16 *TextDeviceNode
792 IN CHAR16 *TextDeviceNode
808 IN CHAR16 *TextDeviceNode
824 IN CHAR16 *TextDeviceNode
840 IN CHAR16 *TextDeviceNode
856 IN CHAR16 *TextDeviceNode
872 IN CHAR16 *TextDeviceNode
893 Length = (UINT16)(Length +
StrLen (UIDSTRStr) + 1);
894 Length = (UINT16)(Length +
StrLen (CIDSTRStr) + 1);
901 if (AcpiEx !=
NULL) {
925 IN CHAR16 *TextDeviceNode
945 if (AcpiEx ==
NULL) {
955 if ((*CIDStr == L
'\0') || (*CIDStr == L
'0')) {
991 IN CHAR16 *TextDeviceNode
994 CHAR16 *DisplayDeviceStr;
1004 if (AcpiAdr ==
NULL) {
1005 ASSERT (AcpiAdr !=
NULL);
1009 for (Index = 0; ; Index++) {
1011 if (IS_NULL (*DisplayDeviceStr)) {
1019 Length +
sizeof (UINT32),
1023 if (AcpiAdr ==
NULL) {
1024 ASSERT (AcpiAdr !=
NULL);
1031 (&AcpiAdr->
ADR)[Index] = (UINT32)
Strtoi (DisplayDeviceStr);
1047 IN CHAR16 *TextDeviceNode
1063 IN CHAR16 *TextDeviceNode
1066 CHAR16 *PrimarySecondaryStr;
1067 CHAR16 *SlaveMasterStr;
1077 if (Atapi ==
NULL) {
1085 if (
StrCmp (PrimarySecondaryStr, L
"Primary") == 0) {
1087 }
else if (
StrCmp (PrimarySecondaryStr, L
"Secondary") == 0) {
1093 if (
StrCmp (SlaveMasterStr, L
"Master") == 0) {
1095 }
else if (
StrCmp (SlaveMasterStr, L
"Slave") == 0) {
1116 IN CHAR16 *TextDeviceNode
1149 IN CHAR16 *TextDeviceNode
1164 if (Fibre !=
NULL) {
1183 IN CHAR16 *TextDeviceNode
1198 if (FibreEx !=
NULL) {
1220 IN CHAR16 *TextDeviceNode
1233 if (F1394DevPath !=
NULL) {
1251 IN CHAR16 *TextDeviceNode
1255 CHAR16 *InterfaceStr;
1284 IN CHAR16 *TextDeviceNode
1297 if (I2ODevPath !=
NULL) {
1298 I2ODevPath->
Tid = (UINT32)
Strtoi (TIDStr);
1314 IN CHAR16 *TextDeviceNode
1335 if (InfiniBand !=
NULL) {
1356 IN CHAR16 *TextDeviceNode
1376 IN CHAR16 *TextDeviceNode
1387 if (Vendor !=
NULL) {
1404 IN CHAR16 *TextDeviceNode
1415 if (Vendor !=
NULL) {
1432 IN CHAR16 *TextDeviceNode
1443 if (Vendor !=
NULL) {
1460 IN CHAR16 *TextDeviceNode
1471 if (Vendor !=
NULL) {
1488 IN CHAR16 *TextDeviceNode
1501 if (UartFlowControl !=
NULL) {
1502 CopyGuid (&UartFlowControl->
Guid, &gEfiUartDevicePathGuid);
1503 if (
StrCmp (ValueStr, L
"XonXoff") == 0) {
1505 }
else if (
StrCmp (ValueStr, L
"Hardware") == 0) {
1525 IN CHAR16 *TextDeviceNode
1532 CHAR16 *LocationStr;
1534 CHAR16 *DriveBayStr;
1535 CHAR16 *ReservedStr;
1563 if (
StrCmp (SASSATAStr, L
"NoTopology") == 0) {
1565 }
else if ((
StrCmp (SASSATAStr, L
"SATA") == 0) || (
StrCmp (SASSATAStr, L
"SAS") == 0)) {
1566 Uint16 = (UINT16)
Strtoi (DriveBayStr);
1570 Info = (UINT16)(0x2 | ((Uint16 - 1) << 8));
1573 if (
StrCmp (SASSATAStr, L
"SATA") == 0) {
1581 if (
StrCmp (LocationStr, L
"External") == 0) {
1583 }
else if (
StrCmp (LocationStr, L
"Internal") == 0) {
1586 Uint16 = ((UINT16)
Strtoi (LocationStr) & BIT0);
1589 Info |= (Uint16 << 5);
1595 if (
StrCmp (ConnectStr, L
"Expanded") == 0) {
1597 }
else if (
StrCmp (ConnectStr, L
"Direct") == 0) {
1600 Uint16 = ((UINT16)
Strtoi (ConnectStr) & (BIT0 | BIT1));
1603 Info |= (Uint16 << 6);
1605 Info = (UINT16)
Strtoi (SASSATAStr);
1624 IN CHAR16 *TextDeviceNode
1631 CHAR16 *LocationStr;
1633 CHAR16 *DriveBayStr;
1653 if (SasEx ==
NULL) {
1657 Strtoi64 (AddressStr, &SasAddress);
1663 if (
StrCmp (SASSATAStr, L
"NoTopology") == 0) {
1665 }
else if ((
StrCmp (SASSATAStr, L
"SATA") == 0) || (
StrCmp (SASSATAStr, L
"SAS") == 0)) {
1666 Uint16 = (UINT16)
Strtoi (DriveBayStr);
1670 Info = (UINT16)(0x2 | ((Uint16 - 1) << 8));
1673 if (
StrCmp (SASSATAStr, L
"SATA") == 0) {
1681 if (
StrCmp (LocationStr, L
"External") == 0) {
1683 }
else if (
StrCmp (LocationStr, L
"Internal") == 0) {
1686 Uint16 = ((UINT16)
Strtoi (LocationStr) & BIT0);
1689 Info |= (Uint16 << 5);
1695 if (
StrCmp (ConnectStr, L
"Expanded") == 0) {
1697 }
else if (
StrCmp (ConnectStr, L
"Direct") == 0) {
1700 Uint16 = ((UINT16)
Strtoi (ConnectStr) & (BIT0 | BIT1));
1703 Info |= (Uint16 << 6);
1705 Info = (UINT16)
Strtoi (SASSATAStr);
1723 IN CHAR16 *TextDeviceNode
1726 CHAR16 *NamespaceIdStr;
1727 CHAR16 *NamespaceUuidStr;
1741 Nvme->NamespaceId = (UINT32)
Strtoi (NamespaceIdStr);
1742 Uuid = (UINT8 *)&Nvme->NamespaceUuid;
1744 Index = sizeof (Nvme->NamespaceUuid) /
sizeof (UINT8);
1745 while (Index-- != 0) {
1763 IN CHAR16 *TextDeviceNode
1796 IN CHAR16 *TextDeviceNode
1799 CHAR16 *SlotNumberStr;
1810 Sd->SlotNumber = (UINT8)
Strtoi (SlotNumberStr);
1826 IN CHAR16 *TextDeviceNode
1829 CHAR16 *SlotNumberStr;
1840 Emmc->SlotNumber = (UINT8)
Strtoi (SlotNumberStr);
1856 IN CHAR16 *TextDeviceNode
1884 IN CHAR16 *TextDeviceNode
1900 if (MACDevPath !=
NULL) {
1904 if ((MACDevPath->
IfType == 0x01) || (MACDevPath->
IfType == 0x00)) {
1927 if (
StrCmp (Text, L
"UDP") == 0) {
1928 return RFC_1700_UDP_PROTOCOL;
1931 if (
StrCmp (Text, L
"TCP") == 0) {
1932 return RFC_1700_TCP_PROTOCOL;
1948 IN CHAR16 *TextDeviceNode
1951 CHAR16 *RemoteIPStr;
1952 CHAR16 *ProtocolStr;
1955 CHAR16 *GatewayIPStr;
1956 CHAR16 *SubnetMaskStr;
1977 if (
StrCmp (TypeStr, L
"Static") == 0) {
1984 if (!IS_NULL (*GatewayIPStr) && !IS_NULL (*SubnetMaskStr)) {
2008 IN CHAR16 *TextDeviceNode
2011 CHAR16 *RemoteIPStr;
2012 CHAR16 *ProtocolStr;
2015 CHAR16 *GatewayIPStr;
2016 CHAR16 *PrefixLengthStr;
2037 if (
StrCmp (TypeStr, L
"Static") == 0) {
2039 }
else if (
StrCmp (TypeStr, L
"StatelessAutoConfigure") == 0) {
2046 if (!IS_NULL (*GatewayIPStr) && !IS_NULL (*PrefixLengthStr)) {
2070 IN CHAR16 *TextDeviceNode
2074 CHAR16 *DataBitsStr;
2076 CHAR16 *StopBitsStr;
2093 if (
StrCmp (BaudStr, L
"DEFAULT") == 0) {
2100 switch (*ParityStr) {
2130 if (
StrCmp (StopBitsStr, L
"D") == 0) {
2132 }
else if (
StrCmp (StopBitsStr, L
"1") == 0) {
2134 }
else if (
StrCmp (StopBitsStr, L
"1.5") == 0) {
2136 }
else if (
StrCmp (StopBitsStr, L
"2") == 0) {
2156 IN CHAR16 *TextDeviceNode,
2163 CHAR16 *SubClassStr;
2164 CHAR16 *ProtocolStr;
2173 if (UsbClass ==
NULL) {
2179 if (UsbClassText->ClassExist) {
2181 if (*ClassStr == L
'\0') {
2190 if (UsbClassText->SubClassExist) {
2192 if (*SubClassStr == L
'\0') {
2203 if (*VIDStr == L
'\0') {
2209 if (*PIDStr == L
'\0') {
2215 if (*ProtocolStr == L
'\0') {
2234 IN CHAR16 *TextDeviceNode
2239 UsbClassText.ClassExist =
TRUE;
2240 UsbClassText.SubClassExist =
TRUE;
2255 IN CHAR16 *TextDeviceNode
2260 UsbClassText.ClassExist =
FALSE;
2261 UsbClassText.Class = USB_CLASS_AUDIO;
2262 UsbClassText.SubClassExist =
TRUE;
2277 IN CHAR16 *TextDeviceNode
2282 UsbClassText.ClassExist =
FALSE;
2283 UsbClassText.Class = USB_CLASS_CDCCONTROL;
2284 UsbClassText.SubClassExist =
TRUE;
2299 IN CHAR16 *TextDeviceNode
2304 UsbClassText.ClassExist =
FALSE;
2305 UsbClassText.Class = USB_CLASS_HID;
2306 UsbClassText.SubClassExist =
TRUE;
2321 IN CHAR16 *TextDeviceNode
2326 UsbClassText.ClassExist =
FALSE;
2327 UsbClassText.Class = USB_CLASS_IMAGE;
2328 UsbClassText.SubClassExist =
TRUE;
2343 IN CHAR16 *TextDeviceNode
2348 UsbClassText.ClassExist =
FALSE;
2349 UsbClassText.Class = USB_CLASS_PRINTER;
2350 UsbClassText.SubClassExist =
TRUE;
2365 IN CHAR16 *TextDeviceNode
2370 UsbClassText.ClassExist =
FALSE;
2371 UsbClassText.Class = USB_CLASS_MASS_STORAGE;
2372 UsbClassText.SubClassExist =
TRUE;
2387 IN CHAR16 *TextDeviceNode
2392 UsbClassText.ClassExist =
FALSE;
2393 UsbClassText.Class = USB_CLASS_HUB;
2394 UsbClassText.SubClassExist =
TRUE;
2409 IN CHAR16 *TextDeviceNode
2414 UsbClassText.ClassExist =
FALSE;
2415 UsbClassText.Class = USB_CLASS_CDCDATA;
2416 UsbClassText.SubClassExist =
TRUE;
2431 IN CHAR16 *TextDeviceNode
2436 UsbClassText.ClassExist =
FALSE;
2437 UsbClassText.Class = USB_CLASS_SMART_CARD;
2438 UsbClassText.SubClassExist =
TRUE;
2453 IN CHAR16 *TextDeviceNode
2458 UsbClassText.ClassExist =
FALSE;
2459 UsbClassText.Class = USB_CLASS_VIDEO;
2460 UsbClassText.SubClassExist =
TRUE;
2475 IN CHAR16 *TextDeviceNode
2480 UsbClassText.ClassExist =
FALSE;
2481 UsbClassText.Class = USB_CLASS_DIAGNOSTIC;
2482 UsbClassText.SubClassExist =
TRUE;
2497 IN CHAR16 *TextDeviceNode
2502 UsbClassText.ClassExist =
FALSE;
2503 UsbClassText.Class = USB_CLASS_WIRELESS;
2504 UsbClassText.SubClassExist =
TRUE;
2519 IN CHAR16 *TextDeviceNode
2524 UsbClassText.ClassExist =
FALSE;
2525 UsbClassText.Class = USB_CLASS_RESERVE;
2526 UsbClassText.SubClassExist =
FALSE;
2527 UsbClassText.SubClass = USB_SUBCLASS_FW_UPDATE;
2542 IN CHAR16 *TextDeviceNode
2547 UsbClassText.ClassExist =
FALSE;
2548 UsbClassText.Class = USB_CLASS_RESERVE;
2549 UsbClassText.SubClassExist =
FALSE;
2550 UsbClassText.SubClass = USB_SUBCLASS_IRDA_BRIDGE;
2565 IN CHAR16 *TextDeviceNode
2570 UsbClassText.ClassExist =
FALSE;
2571 UsbClassText.Class = USB_CLASS_RESERVE;
2572 UsbClassText.SubClassExist =
FALSE;
2573 UsbClassText.SubClass = USB_SUBCLASS_TEST;
2588 IN CHAR16 *TextDeviceNode
2593 CHAR16 *InterfaceNumStr;
2594 CHAR16 *SerialNumberStr;
2596 UINTN SerialNumberStrLen;
2602 SerialNumberStrLen =
StrLen (SerialNumberStr);
2603 if ((SerialNumberStrLen >= 2) &&
2604 (SerialNumberStr[0] == L
'\"') &&
2605 (SerialNumberStr[SerialNumberStrLen - 1] == L
'\"')
2608 SerialNumberStr[SerialNumberStrLen - 1] = L
'\0';
2610 SerialNumberStrLen -= 2;
2619 if (UsbWwid !=
NULL) {
2631 SerialNumberStrLen *
sizeof (CHAR16)
2648 IN CHAR16 *TextDeviceNode
2661 if (LogicalUnit !=
NULL) {
2662 LogicalUnit->
Lun = (UINT8)
Strtoi (LunStr);
2678 IN CHAR16 *TextDeviceNode
2683 CHAR16 *PortalGroupStr;
2685 CHAR16 *HeaderDigestStr;
2686 CHAR16 *DataDigestStr;
2687 CHAR16 *AuthenticationStr;
2688 CHAR16 *ProtocolStr;
2706 if (ISCSIDevPath ==
NULL) {
2710 AsciiStr = ISCSIDevPath->TargetName;
2713 ISCSIDevPath->TargetPortalGroupTag = (UINT16)
Strtoi (PortalGroupStr);
2718 if (
StrCmp (HeaderDigestStr, L
"CRC32C") == 0) {
2722 if (
StrCmp (DataDigestStr, L
"CRC32C") == 0) {
2726 if (
StrCmp (AuthenticationStr, L
"None") == 0) {
2730 if (
StrCmp (AuthenticationStr, L
"CHAP_UNI") == 0) {
2734 ISCSIDevPath->LoginOption = (UINT16)Options;
2736 if (IS_NULL (*ProtocolStr) || (
StrCmp (ProtocolStr, L
"TCP") == 0)) {
2737 ISCSIDevPath->NetworkProtocol = 0;
2742 ISCSIDevPath->NetworkProtocol = 1;
2758 IN CHAR16 *TextDeviceNode
2788 IN CHAR16 *TextDeviceNode
2791 CHAR16 *BluetoothStr;
2801 if (BluetoothDp !=
NULL) {
2823 IN CHAR16 *TextDeviceNode
2838 if ((
NULL != SSIdStr) && (
NULL != WiFiDp)) {
2839 DataLen =
StrLen (SSIdStr);
2840 if (
StrLen (SSIdStr) > 32) {
2841 SSIdStr[32] = L
'\0';
2862 IN CHAR16 *TextDeviceNode
2865 CHAR16 *BluetoothLeAddrStr;
2866 CHAR16 *BluetoothLeAddrTypeStr;
2877 if (BluetoothLeDp !=
NULL) {
2878 BluetoothLeDp->Address.
Type = (UINT8)
Strtoi (BluetoothLeAddrTypeStr);
2881 sizeof (BluetoothLeDp->Address.
Address) * 2,
2882 BluetoothLeDp->Address.
Address,
2883 sizeof (BluetoothLeDp->Address.
Address)
2900 IN CHAR16 *TextDeviceNode
2903 CHAR16 *DeviceNodeStr;
2904 CHAR16 *DeviceNodeStrPtr;
2905 UINT32 DnsServerIpCount;
2906 UINT16 DnsDeviceNodeLength;
2908 UINT32 DnsServerIpIndex;
2909 CHAR16 *DnsServerIp;
2915 if (DeviceNodeStr ==
NULL) {
2919 DeviceNodeStrPtr = DeviceNodeStr;
2921 DnsServerIpCount = 0;
2922 while (DeviceNodeStrPtr !=
NULL && *DeviceNodeStrPtr != L
'\0') {
2928 DeviceNodeStr =
NULL;
2934 if (DnsServerIpCount == 0) {
2947 if (DnsDeviceNode ==
NULL) {
2954 DeviceNodeStrPtr = TextDeviceNode;
2955 while (!IS_NULL (*DeviceNodeStrPtr)) {
2956 if (*DeviceNodeStrPtr == L
'.') {
2957 DnsDeviceNode->
IsIPv6 = 0x00;
2961 if (*DeviceNodeStrPtr == L
':') {
2962 DnsDeviceNode->
IsIPv6 = 0x01;
2969 for (DnsServerIpIndex = 0; DnsServerIpIndex < DnsServerIpCount; DnsServerIpIndex++) {
2971 if (DnsDeviceNode->
IsIPv6 == 0x00) {
2991 IN CHAR16 *TextDeviceNode
3006 while (Uri !=
NULL && UriLength-- != 0) {
3007 Uri->
Uri[UriLength] = (CHAR8)UriStr[UriLength];
3023 IN CHAR16 *TextDeviceNode
3039 IN CHAR16 *TextDeviceNode
3042 CHAR16 *PartitionStr;
3044 CHAR16 *SignatureStr;
3065 Hd->PartitionNumber = (UINT32)
Strtoi (PartitionStr);
3068 Hd->MBRType = (UINT8)0;
3070 if (
StrCmp (TypeStr, L
"MBR") == 0) {
3071 Hd->SignatureType = SIGNATURE_TYPE_MBR;
3074 Signature32 = (UINT32)
Strtoi (SignatureStr);
3075 CopyMem (Hd->Signature, &Signature32, sizeof (UINT32));
3076 }
else if (
StrCmp (TypeStr, L
"GPT") == 0) {
3077 Hd->SignatureType = SIGNATURE_TYPE_GUID;
3082 Hd->SignatureType = (UINT8)
Strtoi (TypeStr);
3085 Strtoi64 (StartStr, &Hd->PartitionStart);
3086 Strtoi64 (SizeStr, &Hd->PartitionSize);
3101 IN CHAR16 *TextDeviceNode
3118 if (CDROMDevPath !=
NULL) {
3137 IN CHAR16 *TextDeviceNode
3157 IN CHAR16 *TextDeviceNode
3185 IN CHAR16 *TextDeviceNode
3198 if (Media !=
NULL) {
3215 IN CHAR16 *TextDeviceNode
3245 IN CHAR16 *TextDeviceNode
3258 if (FvFile !=
NULL) {
3275 IN CHAR16 *TextDeviceNode
3278 CHAR16 *StartingOffsetStr;
3279 CHAR16 *EndingOffsetStr;
3290 if (Offset !=
NULL) {
3291 Strtoi64 (StartingOffsetStr, &Offset->StartingOffset);
3292 Strtoi64 (EndingOffsetStr, &Offset->EndingOffset);
3308 IN CHAR16 *TextDeviceNode
3311 CHAR16 *StartingAddrStr;
3312 CHAR16 *EndingAddrStr;
3313 CHAR16 *TypeGuidStr;
3314 CHAR16 *InstanceStr;
3316 UINT64 StartingAddr;
3329 if (RamDisk !=
NULL) {
3330 Strtoi64 (StartingAddrStr, &StartingAddr);
3332 Strtoi64 (EndingAddrStr, &EndingAddr);
3351 IN CHAR16 *TextDeviceNode
3354 CHAR16 *StartingAddrStr;
3355 CHAR16 *EndingAddrStr;
3356 CHAR16 *InstanceStr;
3358 UINT64 StartingAddr;
3371 if (RamDisk !=
NULL) {
3372 Strtoi64 (StartingAddrStr, &StartingAddr);
3374 Strtoi64 (EndingAddrStr, &EndingAddr);
3393 IN CHAR16 *TextDeviceNode
3396 CHAR16 *StartingAddrStr;
3397 CHAR16 *EndingAddrStr;
3398 CHAR16 *InstanceStr;
3400 UINT64 StartingAddr;
3413 if (RamDisk !=
NULL) {
3414 Strtoi64 (StartingAddrStr, &StartingAddr);
3416 Strtoi64 (EndingAddrStr, &EndingAddr);
3435 IN CHAR16 *TextDeviceNode
3438 CHAR16 *StartingAddrStr;
3439 CHAR16 *EndingAddrStr;
3440 CHAR16 *InstanceStr;
3442 UINT64 StartingAddr;
3455 if (RamDisk !=
NULL) {
3456 Strtoi64 (StartingAddrStr, &StartingAddr);
3458 Strtoi64 (EndingAddrStr, &EndingAddr);
3477 IN CHAR16 *TextDeviceNode
3480 CHAR16 *StartingAddrStr;
3481 CHAR16 *EndingAddrStr;
3482 CHAR16 *InstanceStr;
3484 UINT64 StartingAddr;
3497 if (RamDisk !=
NULL) {
3498 Strtoi64 (StartingAddrStr, &StartingAddr);
3500 Strtoi64 (EndingAddrStr, &EndingAddr);
3519 IN CHAR16 *TextDeviceNode
3535 IN CHAR16 *TextDeviceNode
3557 if (
StrCmp (TypeStr, L
"Floppy") == 0) {
3559 }
else if (
StrCmp (TypeStr, L
"HD") == 0) {
3561 }
else if (
StrCmp (TypeStr, L
"CDROM") == 0) {
3563 }
else if (
StrCmp (TypeStr, L
"PCMCIA") == 0) {
3565 }
else if (
StrCmp (TypeStr, L
"USB") == 0) {
3567 }
else if (
StrCmp (TypeStr, L
"Network") == 0) {
3591 IN CHAR16 *TextDeviceNode
3618 if (*Param2 == L
'\0' ) {
3737 IN CONST CHAR16 *TextDeviceNode
3740 DEVICE_PATH_FROM_TEXT FromText;
3743 CHAR16 *DeviceNodeStr;
3746 if ((TextDeviceNode ==
NULL) || (IS_NULL (*TextDeviceNode))) {
3753 ASSERT (DeviceNodeStr !=
NULL);
3755 for (Index = 0; mUefiDevicePathLibDevPathFromTextTable[Index].Function !=
NULL; Index++) {
3756 ParamStr =
GetParamByNodeName (DeviceNodeStr, mUefiDevicePathLibDevPathFromTextTable[Index].DevicePathNodeText);
3757 if (ParamStr !=
NULL) {
3758 FromText = mUefiDevicePathLibDevPathFromTextTable[Index].Function;
3763 if (FromText ==
NULL) {
3768 DeviceNode = FromText (DeviceNodeStr);
3770 DeviceNode = FromText (ParamStr);
3794 IN CONST CHAR16 *TextDevicePath
3799 CHAR16 *DevicePathStr;
3801 CHAR16 *DeviceNodeStr;
3802 BOOLEAN IsInstanceEnd;
3805 if ((TextDevicePath ==
NULL) || (IS_NULL (*TextDevicePath))) {
3811 if (DevicePath ==
NULL) {
3812 ASSERT (DevicePath !=
NULL);
3820 if (DevicePathStr ==
NULL) {
3824 Str = DevicePathStr;
3829 if (DevicePath !=
NULL) {
3833 if (DeviceNode !=
NULL) {
3837 DevicePath = NewDevicePath;
3839 if (IsInstanceEnd) {
3841 if (DeviceNode ==
NULL) {
3842 ASSERT (DeviceNode !=
NULL);
3847 DeviceNode->
SubType = END_INSTANCE_DEVICE_PATH_SUBTYPE;
3850 if (DevicePath !=
NULL) {
3854 if (DeviceNode !=
NULL) {
3858 DevicePath = NewDevicePath;
UINT64 EFIAPI StrHexToUint64(IN CONST CHAR16 *String)
UINTN EFIAPI StrSize(IN CONST CHAR16 *String)
RETURN_STATUS EFIAPI StrCpyS(OUT CHAR16 *Destination, IN UINTN DestMax, IN CONST CHAR16 *Source)
UINTN EFIAPI StrDecimalToUintn(IN CONST CHAR16 *String)
INTN EFIAPI StrCmp(IN CONST CHAR16 *FirstString, IN CONST CHAR16 *SecondString)
UINT64 EFIAPI StrDecimalToUint64(IN CONST CHAR16 *String)
RETURN_STATUS EFIAPI UnicodeStrToAsciiStrS(IN CONST CHAR16 *Source, OUT CHAR8 *Destination, IN UINTN DestMax)
UINTN EFIAPI StrHexToUintn(IN CONST CHAR16 *String)
UINTN EFIAPI StrnLenS(IN CONST CHAR16 *String, IN UINTN MaxSize)
RETURN_STATUS EFIAPI StrToIpv6Address(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer OPTIONAL, OUT IPv6_ADDRESS *Address, OUT UINT8 *PrefixLength OPTIONAL)
RETURN_STATUS EFIAPI StrToIpv4Address(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer OPTIONAL, OUT IPv4_ADDRESS *Address, OUT UINT8 *PrefixLength OPTIONAL)
INTN EFIAPI StrnCmp(IN CONST CHAR16 *FirstString, IN CONST CHAR16 *SecondString, IN UINTN Length)
RETURN_STATUS EFIAPI StrToGuid(IN CONST CHAR16 *String, OUT GUID *Guid)
RETURN_STATUS EFIAPI StrHexToBytes(IN CONST CHAR16 *String, IN UINTN Length, OUT UINT8 *Buffer, IN UINTN MaxBufferSize)
UINT64 EFIAPI SwapBytes64(IN UINT64 Value)
UINT64 EFIAPI WriteUnaligned64(OUT UINT64 *Buffer, IN UINT64 Value)
UINTN EFIAPI StrLen(IN CONST CHAR16 *String)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
GUID *EFIAPI CopyGuid(OUT GUID *DestinationGuid, IN CONST GUID *SourceGuid)
VOID *EFIAPI ZeroMem(OUT VOID *Buffer, IN UINTN Length)
#define MEDIA_FILEPATH_DP
#define HARDWARE_DEVICE_PATH
#define MSG_INFINIBAND_DP
#define MEDIA_RAM_DISK_DP
#define MSG_DEVICE_LOGICAL_UNIT_DP
#define MSG_NVME_NAMESPACE_DP
#define MEDIA_PIWG_FW_FILE_DP
#define MEDIA_HARDDRIVE_DP
#define MEDIA_PROTOCOL_DP
#define MEDIA_PIWG_FW_VOL_DP
#define MSG_FIBRECHANNELEX_DP
#define MEDIA_RELATIVE_OFFSET_RANGE_DP
#define MSG_BLUETOOTH_LE_DP
#define MESSAGING_DEVICE_PATH
#define MEDIA_VENDOR_DP
Media vendor device path subtype.
#define MSG_FIBRECHANNEL_DP
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextMediaPath(IN CHAR16 *TextDeviceNode)
CHAR16 * GetNextParamStr(IN OUT CHAR16 **List)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextFilePath(IN CHAR16 *TextDeviceNode)
UINTN Strtoi(IN CHAR16 *Str)
CHAR16 * GetParamByNodeName(IN CHAR16 *Str, IN CHAR16 *NodeName)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextSd(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromText1394(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * ConvertFromTextUsbClass(IN CHAR16 *TextDeviceNode, IN USB_CLASS_TEXT *UsbClassText)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextAcpiAdr(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextVenVt100Plus(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbAudio(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbImage(IN CHAR16 *TextDeviceNode)
VOID StrToAscii(IN CHAR16 *Str, IN OUT CHAR8 **AsciiStr)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsb(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextVirtualCd(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextGenericPath(IN UINT8 Type, IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextFv(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextPersistentVirtualCd(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbCDCControl(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextPcCard(IN CHAR16 *TextDeviceNode)
BOOLEAN IsHexStr(IN CHAR16 *Str)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextAcpiPath(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUfs(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextVenVt100(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextPci(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL *EFIAPI UefiDevicePathLibConvertTextToDeviceNode(IN CONST CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextMedia(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbMassStorage(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextPciRoot(IN CHAR16 *TextDeviceNode)
UINTN NetworkProtocolFromText(IN CHAR16 *Text)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUartFlowCtrl(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextVenUtf8(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUri(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextHardwarePath(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextHD(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbPrinter(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextIPv4(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbHID(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextInfiniband(IN CHAR16 *TextDeviceNode)
CHAR16 * SplitStr(IN OUT CHAR16 **List, IN CHAR16 Separator)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextBBS(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextVenMsg(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextScsi(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextNVMe(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextPersistentVirtualDisk(IN CHAR16 *TextDeviceNode)
VOID Strtoi64(IN CHAR16 *Str, OUT UINT64 *Data)
EFI_DEVICE_PATH_PROTOCOL *EFIAPI UefiDevicePathLibConvertTextToDevicePath(IN CONST CHAR16 *TextDevicePath)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextI2O(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUart(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbDiagnostic(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextAta(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextVenMedia(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextBluetoothLE(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextVirtualDisk(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextRelativeOffsetRange(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextBmc(IN CHAR16 *TextDeviceNode)
UINT32 EisaIdFromText(IN CHAR16 *Text)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbWireless(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextSAS(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextBluetooth(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextDebugPort(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextAcpi(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextDns(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextMemoryMapped(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbSmartCard(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * ConvertFromTextAcpi(IN CHAR16 *TextDeviceNode, IN UINT32 PnPId)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextRamDisk(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * ConvertFromTextVendor(IN CHAR16 *TextDeviceNode, IN UINT8 Type, IN UINT8 SubType)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbVideo(IN CHAR16 *TextDeviceNode)
CHAR16 * GetNextDeviceNodeStr(IN OUT CHAR16 **DevicePath, OUT BOOLEAN *IsInstanceEnd)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextVenHw(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextCtrl(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbClass(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextFibre(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextKeyboard(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextAcpiExp(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextCDROM(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbTestAndMeasurement(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextFloppy(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextVenPcAnsi(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextBbsPath(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextiSCSI(IN CHAR16 *TextDeviceNode)
CHAR16 * UefiDevicePathLibStrDuplicate(IN CONST CHAR16 *Src)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextWiFi(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextEmmc(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbIrdaBridge(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextAcpiEx(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbCDCData(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextFibreEx(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextMAC(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextPath(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbDeviceFirmwareUpdate(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbWwid(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextIPv6(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUsbHub(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextParallelPort(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextUnit(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextFvFile(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextMsg(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextPcieRoot(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextSata(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextSasEx(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextVlan(IN CHAR16 *TextDeviceNode)
EFI_DEVICE_PATH_PROTOCOL * DevPathFromTextSerial(IN CHAR16 *TextDeviceNode)
UINT16 EFIAPI SetDevicePathNodeLength(IN OUT VOID *Node, IN UINTN Length)
UINTN EFIAPI DevicePathNodeLength(IN CONST VOID *Node)
EFI_DEVICE_PATH_PROTOCOL *EFIAPI AppendDevicePathNode(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL, IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathNode OPTIONAL)
EFI_DEVICE_PATH_PROTOCOL *EFIAPI CreateDeviceNode(IN UINT8 NodeType, IN UINT8 NodeSubType, IN UINT16 NodeLength)
VOID EFIAPI SetDevicePathEndNode(OUT VOID *Node)
VOID *EFIAPI ReallocatePool(IN UINTN OldSize, IN UINTN NewSize, IN VOID *OldBuffer OPTIONAL)
VOID EFIAPI FreePool(IN VOID *Buffer)
VOID *EFIAPI AllocateCopyPool(IN UINTN AllocationSize, IN CONST VOID *Buffer)
#define GLOBAL_REMOVE_IF_UNREFERENCED
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)
BLUETOOTH_ADDRESS BD_ADDR
EFI_IP_ADDRESS DnsServerIp[]
EFI_IPv4_ADDRESS GatewayIpAddress
EFI_IPv4_ADDRESS SubnetMask
EFI_IPv4_ADDRESS LocalIpAddress
EFI_IPv4_ADDRESS RemoteIpAddress
EFI_IPv6_ADDRESS LocalIpAddress
EFI_IPv6_ADDRESS RemoteIpAddress
EFI_IPv6_ADDRESS GatewayIpAddress
EFI_MAC_ADDRESS MacAddress
EFI_PHYSICAL_ADDRESS StartingAddress
EFI_PHYSICAL_ADDRESS EndingAddress
UINT16 RelativeTargetPort
UINT16 RelativeTargetPort
UINT16 PortMultiplierPortNumber