4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DevicePathFromText protocol as defined in the UEFI 2.0 specification.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCopyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThis program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncare licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncwhich accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Duplicates a string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Src Source string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return The duplicated string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get parameter in a pair of parentheses follow the given node name.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync For example, given the "Pci(0,1)" and NodeName "Pci", it returns "0,1".
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str Device Path Text.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param NodeName Name of the node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return Parameter text for the node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Check whether the node name matchs
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (CompareMem (Str, NodeName, NodeNameLength * sizeof (CHAR16)) != 0) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Skip the found '(' and find first occurrence of ')'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // ')' not found
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ParamStr = AllocateCopyPool ((ParameterLength + 1) * sizeof (CHAR16), ParamStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Terminate the parameter string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Gets current sub-string from a string list, before return
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the list header is moved to next sub-string. The sub-string is separated
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync by the specified character. For example, the separator is ',', the string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync list is "2,0,3", it returns "2", the remain list move to "0,3"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param List A string list separated by the specified separator
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Separator The separator character
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the current sub-string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Find first occurrence of the separator
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Find a sub-string, terminate it
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Move to next sub-string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Gets the next parameter string from the list.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param List A string list separated by the specified separator
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the current sub-string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // The separator is comma
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get one device node from entire device path text.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DevicePath On input, the current Device Path node; on output, the next device path node
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param IsInstanceEnd This node is the end of a device path instance
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A device node text or NULL if no more device node available
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Skip the leading '/', '(', ')' and ','
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Scan for the separator of this device node, '/' or ','
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if ((IS_COMMA (*Str) || IS_SLASH (*Str)) && (ParenthesesStack == 0)) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // The '(' doesn't pair with ')', invalid device path text
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Skip the leading white space and '0x' or '0X' of a integer string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str The integer string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param IsHex TRUE: Hex string, FALSE: Decimal string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return The trimmed Hex string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // skip preceeding white space
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // skip preceeding zeros
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // skip preceeding character 'x' or 'X'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Convert hex string to uint.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str The hex string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A UINTN value represented by Str
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Convert hex string to 64 bit data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str The hex string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Data A pointer to the UINT64 value represented by Str
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Convert decimal string to uint.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str The decimal string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A UINTN value represented by Str
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // skip preceeding white space
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // convert digits
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync while (Char != 0) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if ((Rvalue > High || Rvalue == High) && (Char - '0' > (INTN) Low)) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Convert decimal string to uint.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str The decimal string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Data A pointer to the UINT64 value represented by Str
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // skip preceeding white space
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // convert digits
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync while (Char != 0) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Convert integer string to uint.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str The integer string. If leading with "0x" or "0X", it's hexadecimal.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A UINTN value represented by Str
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Convert integer string to 64 bit data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str The integer string. If leading with "0x" or "0X", it's hexadecimal.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Data A pointer to the UINT64 value represented by Str
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a list of string to a specified buffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Buf The output buffer that contains the string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param BufferLength The length of the buffer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str The input string that contains the hex number
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The string was successfully converted to the buffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Two hex char make up one byte
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for(Index = 0; Index < StrLength; Index++, Str++) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // For odd characters, write the upper nibble for each buffer byte,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // and for even characters, the lower nibble.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a string to GUID value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Guid Format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str The registry format GUID string that contains the GUID value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Guid A pointer to the converted GUID value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The GUID string was successfully converted to the GUID value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED The input string is not in registry format.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return others Some error occurred when converting part of GUID value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Get the first UINT32 data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Get the second UINT16 data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Get the third UINT16 data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Get the following 8 bytes data
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Skip 2 byte hex chars
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a string to IPv4 address
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str A string representation of IPv4 address.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param IPv4Addr A pointer to the converted IPv4 address.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IPv4Addr->Addr[Index] = (UINT8) Dtoi (SplitStr (Str, L'.'));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a string to IPv4 address
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str A string representation of IPv6 address.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param IPv6Addr A pointer to the converted IPv6 address.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IPv6Addr->Addr[Index * 2 + 1] = (UINT8) (Data & 0xff);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a Unicode string to ASCII string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Str The equivalent Unicode string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param AsciiStr On input, it points to destination ASCII string buffer; on output, it points
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync to the next ASCII string next to it
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Return the string next to it
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Hardware PCI device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to Hardware PCI device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Hardware PC card device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to Hardware PC card device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FunctionNumberStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Pccard->FunctionNumber = (UINT8) Strtoi (FunctionNumberStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Hardware memory map device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to Hardware memory map device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StartingAddressStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EndingAddressStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync MemMap->MemoryType = (UINT32) Strtoi (MemoryTypeStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Strtoi64 (StartingAddressStr, &MemMap->StartingAddress);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Strtoi64 (EndingAddressStr, &MemMap->EndingAddress);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Vendor device path structure based on the input Type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and SubType.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Type The type of device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SubType The subtype of device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Vendor device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Two hex characters make up 1 buffer byte
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StrToBuf (((UINT8 *) Vendor) + sizeof (VENDOR_DEVICE_PATH), Length, DataStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Vendor Hardware device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Vendor Hardware device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Hardware Controller device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Hardware Controller device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Controller = (CONTROLLER_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Controller->ControllerNumber = (UINT32) Strtoi (ControllerStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a string to EisaId.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Text The input string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param EisaId A pointer to the output EisaId.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to ACPI HID device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created ACPI HID device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to ACPI HID device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PnPId The input plug and play identification.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created ACPI HID device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to PCI root device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created PCI root device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextAcpi (TextDeviceNode, 0x0a03);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to PCIE root device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created PCIE root device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextAcpi (TextDeviceNode, 0x0a08);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Floppy device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Floppy device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextAcpi (TextDeviceNode, 0x0604);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Keyboard device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Keyboard device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextAcpi (TextDeviceNode, 0x0301);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Serial device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Serial device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextAcpi (TextDeviceNode, 0x0501);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Parallel Port device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Parallel Port device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextAcpi (TextDeviceNode, 0x0401);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to ACPI extension device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created ACPI extension device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Length = (UINT16) (sizeof (ACPI_EXTENDED_HID_DEVICE_PATH) + StrLen (HIDSTRStr) + 1);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Length = (UINT16) (Length + StrLen (UIDSTRStr) + 1);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Length = (UINT16) (Length + StrLen (CIDSTRStr) + 1);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync AcpiEx = (ACPI_EXTENDED_HID_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync AsciiStr = (CHAR8 *) ((UINT8 *)AcpiEx + sizeof (ACPI_EXTENDED_HID_DEVICE_PATH));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to ACPI extension device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created ACPI extension device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Length = (UINT16) (sizeof (ACPI_EXTENDED_HID_DEVICE_PATH) + StrLen (UIDSTRStr) + 3);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync AcpiEx = (ACPI_EXTENDED_HID_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync AsciiStr = (CHAR8 *) ((UINT8 *)AcpiEx + sizeof (ACPI_EXTENDED_HID_DEVICE_PATH));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // HID string is NULL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Convert UID string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // CID string is NULL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to ACPI _ADR device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created ACPI _ADR device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync AcpiAdr = (ACPI_ADR_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DisplayDeviceStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SetDevicePathNodeLength (AcpiAdr, Length + sizeof (UINT32));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (&AcpiAdr->ADR)[Index] = (UINT32) Strtoi (DisplayDeviceStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Parallel Port device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Parallel Port device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PrimarySecondaryStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SlaveMasterStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Atapi->PrimarySecondary = (UINT8) ((StrCmp (PrimarySecondaryStr, L"Primary") == 0) ? 0 : 1);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Atapi->SlaveMaster = (UINT8) ((StrCmp (SlaveMasterStr, L"Master") == 0) ? 0 : 1);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to SCSI device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created SCSI device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Fibre device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Fibre device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Fibre = (FIBRECHANNEL_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to FibreEx device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created FibreEx device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FibreEx = (FIBRECHANNELEX_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync *(UINT64 *) (&FibreEx->WWN) = SwapBytes64 (*(UINT64 *) (&FibreEx->WWN));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync *(UINT64 *) (&FibreEx->Lun) = SwapBytes64 (*(UINT64 *) (&FibreEx->Lun));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to 1394 device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created 1394 device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync F1394DevPath = (F1394_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Usb->InterfaceNumber = (UINT8) Strtoi (InterfaceStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to I20 device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created I20 device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync I2ODevPath = (I2O_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Infini Band device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Infini Band device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync InfiniBand = (INFINIBAND_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync InfiniBand->ResourceFlags = (UINT32) Strtoi (FlagsStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CopyMem (InfiniBand->PortGid, &PortGid, sizeof (EFI_GUID));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Vendor-Defined Messaging device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Vendor-Defined Messaging device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Vendor defined PC-ANSI device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Vendor defined PC-ANSI device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Vendor defined VT100 device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Vendor defined VT100 device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Vendor defined VT100 Plus device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Vendor defined VT100 Plus device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Vendor defined UTF8 device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Vendor defined UTF8 device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to UART Flow Control device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created UART Flow Control device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UartFlowControl = (UART_FLOW_CONTROL_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CopyGuid (&UartFlowControl->Guid, &gEfiUartDevicePathGuid);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return (EFI_DEVICE_PATH_PROTOCOL *) UartFlowControl;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Serial Attached SCSI device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Serial Attached SCSI device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Sas->RelativeTargetPort = (UINT16) Strtoi (RTPStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Info = (UINT16) (Info | (Strtoi (DriveBayStr) << 8));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Serial Attached SCSI Ex device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Serial Attached SCSI Ex device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Strtoi64 (AddressStr, (UINT64 *) &SasEx->SasAddress);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync *(UINT64 *) &SasEx->SasAddress = SwapBytes64 (*(UINT64 *) &SasEx->SasAddress);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync *(UINT64 *) &SasEx->Lun = SwapBytes64 (*(UINT64 *) &SasEx->Lun);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SasEx->RelativeTargetPort = (UINT16) Strtoi (RTPStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Info = (UINT16) (Info | (Strtoi (DriveBayStr) << 8));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Debug Port device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Debug Port device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Vend = (VENDOR_DEFINED_MESSAGING_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (UINT16) sizeof (VENDOR_DEFINED_MESSAGING_DEVICE_PATH)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CopyGuid (&Vend->Guid, &gEfiDebugPortProtocolGuid);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to MAC device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created MAC device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync MACDevPath = (MAC_ADDR_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StrToBuf (&MACDevPath->MacAddress.Addr[0], Length, AddressStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text format to the network protocol ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Text String of protocol field.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return Network protocol ID .
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to IPV4 device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created IPV4 device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StrToIPv4Addr (&RemoteIPStr, &IPv4->RemoteIpAddress);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IPv4->Protocol = (UINT16) NetworkProtocolFromText (ProtocolStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StrToIPv4Addr (&LocalIPStr, &IPv4->LocalIpAddress);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (!IS_NULL (*GatewayIPStr) && !IS_NULL (*SubnetMaskStr)) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StrToIPv4Addr (&GatewayIPStr, &IPv4->GatewayIpAddress);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ZeroMem (&IPv4->GatewayIpAddress, sizeof (IPv4->GatewayIpAddress));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ZeroMem (&IPv4->SubnetMask, sizeof (IPv4->SubnetMask));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to IPV6 device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created IPV6 device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PrefixLengthStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StrToIPv6Addr (&RemoteIPStr, &IPv6->RemoteIpAddress);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IPv6->Protocol = (UINT16) NetworkProtocolFromText (ProtocolStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync } else if (StrCmp (TypeStr, L"StatelessAutoConfigure") == 0) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StrToIPv6Addr (&LocalIPStr, &IPv6->LocalIpAddress);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (!IS_NULL (*GatewayIPStr) && !IS_NULL (*PrefixLengthStr)) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StrToIPv6Addr (&GatewayIPStr, &IPv6->GatewayIpAddress);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IPv6->PrefixLength = (UINT8) Strtoi (PrefixLengthStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ZeroMem (&IPv6->GatewayIpAddress, sizeof (IPv6->GatewayIpAddress));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to UART device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created UART device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Uart->BaudRate = (StrCmp (BaudStr, L"DEFAULT") == 0) ? 115200 : Dtoi (BaudStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Uart->DataBits = (UINT8) ((StrCmp (DataBitsStr, L"DEFAULT") == 0) ? 8 : Dtoi (DataBitsStr));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB class device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbClassText A pointer to USB_CLASS_TEXT structure to be integrated to USB Class Text.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB class device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UsbClass = (USB_CLASS_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UsbClass->DeviceSubClass = (UINT8) Strtoi (SubClassStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UsbClass->DeviceProtocol = (UINT8) Strtoi (ProtocolStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB class device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB class device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB audio device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB audio device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB CDC Control device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB CDC Control device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB HID device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB HID device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB Image device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB Image device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB Print device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB Print device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB mass storage device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB mass storage device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB HUB device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB HUB device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB CDC data device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB CDC data device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB smart card device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB smart card device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB video device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB video device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB diagnostic device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB diagnostic device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB wireless device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB wireless device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB device firmware update device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB device firmware update device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB IRDA bridge device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB IRDA bridge device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB text and measurement device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB text and measurement device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to USB WWID device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created USB WWID device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync InterfaceNumStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SerialNumberStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UsbWwid = (USB_WWID_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (UINT16) (sizeof (USB_WWID_DEVICE_PATH) + StrSize (SerialNumberStr))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UsbWwid->InterfaceNumber = (UINT16) Strtoi (InterfaceNumStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StrCpy ((CHAR16 *) ((UINT8 *) UsbWwid + sizeof (USB_WWID_DEVICE_PATH)), SerialNumberStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Logic Unit device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Logic Unit device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LogicalUnit = (DEVICE_LOGICAL_UNIT_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to iSCSI device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created iSCSI device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PortalGroupStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync HeaderDigestStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync AuthenticationStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ISCSIDevPath = (ISCSI_DEVICE_PATH_WITH_NAME *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (UINT16) (sizeof (ISCSI_DEVICE_PATH_WITH_NAME) + StrLen (NameStr))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ISCSIDevPath->TargetPortalGroupTag = (UINT16) Strtoi (PortalGroupStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if (StrCmp (AuthenticationStr, L"CHAP_UNI") == 0) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ISCSIDevPath->NetworkProtocol = (UINT16) StrCmp (ProtocolStr, L"TCP");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to VLAN device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created VLAN device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to HD device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created HD device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Hd->PartitionNumber = (UINT32) Dtoi (PartitionStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CopyMem (Hd->Signature, &Signature32, sizeof (UINT32));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CopyMem (Hd->Signature, &SignatureGuid, sizeof (EFI_GUID));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to CDROM device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created CDROM device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CDROMDevPath = (CDROM_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CDROMDevPath->BootEntry = (UINT32) Strtoi (EntryStr);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Strtoi64 (StartStr, &CDROMDevPath->PartitionStart);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Vendor-defined media device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Vendor-defined media device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to File device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created File device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (UINT16) (sizeof (FILEPATH_DEVICE_PATH) + StrLen (TextDeviceNode) * 2)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to Media protocol device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Media protocol device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Media = (MEDIA_PROTOCOL_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to firmware volume device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created firmware volume device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Fv = (MEDIA_FW_VOL_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to firmware file device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created firmware file device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FvFile = (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (UINT16) sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to text relative offset device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created Text device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StartingOffsetStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EndingOffsetStr = GetNextParamStr (&TextDeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Offset = (MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH *) CreateDeviceNode (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (UINT16) sizeof (MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Strtoi64 (StartingOffsetStr, &Offset->StartingOffset);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to BIOS Boot Specification device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created BIOS Boot Specification device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (UINT16) (sizeof (BBS_BBS_DEVICE_PATH) + StrLen (IdStr))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Converts a text device path node to SATA device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode The input Text device path node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the newly-created SATA device path structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // The PMPN is optional.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Sata->PortMultiplierPortNumber = (UINT16) Xtoi (Param2);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Sata->PortMultiplierPortNumber = SATA_HBA_DIRECT_CONNECT_FLAG;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGLOBAL_REMOVE_IF_UNREFERENCED DEVICE_PATH_FROM_TEXT_TABLE DevPathFromTextTable[] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {L"UsbMassStorage", DevPathFromTextUsbMassStorage},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {L"UsbDeviceFirmwareUpdate", DevPathFromTextUsbDeviceFirmwareUpdate},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync {L"UsbTestAndMeasurement", DevPathFromTextUsbTestAndMeasurement},
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Convert text to the binary representation of a device node.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDeviceNode TextDeviceNode points to the text representation of a device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node. Conversion starts with the first character and continues
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync until the first non-device node character.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the EFI device node or NULL if TextDeviceNode is NULL or there was
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync insufficient memory or text unsupported.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if ((TextDeviceNode == NULL) || (IS_NULL (*TextDeviceNode))) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for (Index = 0; DevPathFromTextTable[Index].Function != NULL; Index++) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ParamStr = GetParamByNodeName (DeviceNodeStr, DevPathFromTextTable[Index].DevicePathNodeText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // A file path
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Convert text to the binary representation of a device path.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TextDevicePath TextDevicePath points to the text representation of a device
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync path. Conversion starts with the first character and continues
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync until the first non-device node character.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return A pointer to the allocated device path or NULL if TextDeviceNode is NULL or
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync there was insufficient memory.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync if ((TextDevicePath == NULL) || (IS_NULL (*TextDevicePath))) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) AllocatePool (END_DEVICE_PATH_LENGTH);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync while ((DeviceNodeStr = GetNextDeviceNodeStr (&Str, &IsInstanceEnd)) != NULL) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for (Index = 0; DevPathFromTextTable[Index].Function != NULL; Index++) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ParamStr = GetParamByNodeName (DeviceNodeStr, DevPathFromTextTable[Index].DevicePathNodeText);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // A file path
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync NewDevicePath = AppendDeviceNodeProtocolInterface (DevicePath, DeviceNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DeviceNode = (EFI_DEVICE_PATH_PROTOCOL *) AllocatePool (END_DEVICE_PATH_LENGTH);