return (EFI_DEVICE_PATH_PROTOCOL *) Ufs;\r
}\r
\r
+/**\r
+ Converts a text device path node to SD (Secure Digital) device path structure.\r
+\r
+ @param TextDeviceNode The input Text device path node.\r
+\r
+ @return A pointer to the newly-created SD device path structure.\r
+\r
+**/\r
+EFI_DEVICE_PATH_PROTOCOL *\r
+DevPathFromTextSd (\r
+ IN CHAR16 *TextDeviceNode\r
+ )\r
+{\r
+ CHAR16 *SlotNumberStr;\r
+ SD_DEVICE_PATH *Sd;\r
+\r
+ SlotNumberStr = GetNextParamStr (&TextDeviceNode);\r
+ Sd = (SD_DEVICE_PATH *) CreateDeviceNode (\r
+ MESSAGING_DEVICE_PATH,\r
+ MSG_SD_DP,\r
+ (UINT16) sizeof (SD_DEVICE_PATH)\r
+ );\r
+\r
+ Sd->SlotNumber = (UINT8) Strtoi (SlotNumberStr);\r
+\r
+ return (EFI_DEVICE_PATH_PROTOCOL *) Sd;\r
+}\r
+\r
/**\r
Converts a text device path node to Debug Port device path structure.\r
\r
return (EFI_DEVICE_PATH_PROTOCOL *) BluetoothDp;\r
}\r
\r
+/**\r
+ Converts a text device path node to Wi-Fi device path structure.\r
+\r
+ @param TextDeviceNode The input Text device path node.\r
+\r
+ @return A pointer to the newly-created Wi-Fi device path structure.\r
+\r
+**/\r
+EFI_DEVICE_PATH_PROTOCOL *\r
+DevPathFromTextWiFi (\r
+ IN CHAR16 *TextDeviceNode\r
+ )\r
+{\r
+ CHAR16 *SSIdStr;\r
+ CHAR8 *AsciiStr;\r
+ WIFI_DEVICE_PATH *WiFiDp;\r
+\r
+ SSIdStr = GetNextParamStr (&TextDeviceNode);\r
+ WiFiDp = (WIFI_DEVICE_PATH *) CreateDeviceNode (\r
+ MESSAGING_DEVICE_PATH,\r
+ MSG_WIFI_DP,\r
+ (UINT16) sizeof (WIFI_DEVICE_PATH)\r
+ );\r
+\r
+ AsciiStr = WiFiDp->SSId;\r
+ StrToAscii (SSIdStr, &AsciiStr);\r
+\r
+ return (EFI_DEVICE_PATH_PROTOCOL *) WiFiDp;\r
+}\r
+\r
+/**\r
+ Converts a text device path node to URI device path structure.\r
+\r
+ @param TextDeviceNode The input Text device path node.\r
+\r
+ @return A pointer to the newly-created URI device path structure.\r
+\r
+**/\r
+EFI_DEVICE_PATH_PROTOCOL *\r
+DevPathFromTextUri (\r
+ IN CHAR16 *TextDeviceNode\r
+ )\r
+{\r
+ CHAR16 *UriStr;\r
+ UINTN UriLength;\r
+ URI_DEVICE_PATH *Uri;\r
+\r
+ UriStr = GetNextParamStr (&TextDeviceNode);\r
+ UriLength = StrnLenS (UriStr, MAX_UINT16 - sizeof (URI_DEVICE_PATH));\r
+ Uri = (URI_DEVICE_PATH *) CreateDeviceNode (\r
+ MESSAGING_DEVICE_PATH,\r
+ MSG_URI_DP,\r
+ (UINT16) (sizeof (URI_DEVICE_PATH) + UriLength)\r
+ );\r
+\r
+ while (UriLength-- != 0) {\r
+ Uri->Uri[UriLength] = (CHAR8) UriStr[UriLength];\r
+ }\r
+\r
+ return (EFI_DEVICE_PATH_PROTOCOL *) Uri;\r
+}\r
+\r
/**\r
Converts a media text device path node to media device path structure.\r
\r
{L"SasEx", DevPathFromTextSasEx },\r
{L"NVMe", DevPathFromTextNVMe },\r
{L"UFS", DevPathFromTextUfs },\r
+ {L"SD", DevPathFromTextSd },\r
{L"DebugPort", DevPathFromTextDebugPort },\r
{L"MAC", DevPathFromTextMAC },\r
{L"IPv4", DevPathFromTextIPv4 },\r
{L"Unit", DevPathFromTextUnit },\r
{L"iSCSI", DevPathFromTextiSCSI },\r
{L"Vlan", DevPathFromTextVlan },\r
+ {L"Uri", DevPathFromTextUri },\r
{L"Bluetooth", DevPathFromTextBluetooth },\r
+ {L"WiFi", DevPathFromTextWiFi },\r
{L"MediaPath", DevPathFromTextMediaPath },\r
{L"HD", DevPathFromTextHD },\r
{L"CDROM", DevPathFromTextCDROM },\r