xref: /freebsd-src/sys/contrib/edk2/Include/Protocol/DevicePathFromText.h (revision 3245fa215aca18d135839a15c80ae1c905666a37)
10d1ba665SWarner Losh /** @file
20d1ba665SWarner Losh   EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL as defined in UEFI 2.0.
30d1ba665SWarner Losh   This protocol provides service to convert text to device paths and device nodes.
40d1ba665SWarner Losh 
5*3245fa21SMitchell Horne   Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
6*3245fa21SMitchell Horne   SPDX-License-Identifier: BSD-2-Clause-Patent
70d1ba665SWarner Losh 
80d1ba665SWarner Losh **/
90d1ba665SWarner Losh 
100d1ba665SWarner Losh #ifndef __DEVICE_PATH_FROM_TEXT_PROTOCOL_H__
110d1ba665SWarner Losh #define __DEVICE_PATH_FROM_TEXT_PROTOCOL_H__
120d1ba665SWarner Losh 
130d1ba665SWarner Losh ///
140d1ba665SWarner Losh /// Device Path From Text protocol
150d1ba665SWarner Losh ///
160d1ba665SWarner Losh #define EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL_GUID \
170d1ba665SWarner Losh   { \
180d1ba665SWarner Losh     0x5c99a21, 0xc70f, 0x4ad2, {0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e  } \
190d1ba665SWarner Losh   }
200d1ba665SWarner Losh 
210d1ba665SWarner Losh /**
220d1ba665SWarner Losh   Convert text to the binary representation of a device node.
230d1ba665SWarner Losh 
240d1ba665SWarner Losh   @param  TextDeviceNode TextDeviceNode points to the text representation of a device
250d1ba665SWarner Losh                          node. Conversion starts with the first character and continues
260d1ba665SWarner Losh                          until the first non-device node character.
270d1ba665SWarner Losh 
280d1ba665SWarner Losh   @retval a_pointer      Pointer to the EFI device node.
290d1ba665SWarner Losh   @retval NULL           if TextDeviceNode is NULL or there was insufficient memory.
300d1ba665SWarner Losh 
310d1ba665SWarner Losh **/
320d1ba665SWarner Losh typedef
330d1ba665SWarner Losh EFI_DEVICE_PATH_PROTOCOL*
340d1ba665SWarner Losh (EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_NODE)(
350d1ba665SWarner Losh   IN CONST CHAR16                 *TextDeviceNode
360d1ba665SWarner Losh   );
370d1ba665SWarner Losh 
380d1ba665SWarner Losh 
390d1ba665SWarner Losh /**
400d1ba665SWarner Losh   Convert text to the binary representation of a device node.
410d1ba665SWarner Losh 
420d1ba665SWarner Losh   @param  TextDeviceNode TextDevicePath points to the text representation of a device
430d1ba665SWarner Losh                          path. Conversion starts with the first character and continues
440d1ba665SWarner Losh                          until the first non-device path character.
450d1ba665SWarner Losh 
460d1ba665SWarner Losh   @retval a_pointer      Pointer to the allocated device path.
470d1ba665SWarner Losh   @retval NULL           if TextDeviceNode is NULL or there was insufficient memory.
480d1ba665SWarner Losh 
490d1ba665SWarner Losh **/
500d1ba665SWarner Losh typedef
510d1ba665SWarner Losh EFI_DEVICE_PATH_PROTOCOL*
520d1ba665SWarner Losh (EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_PATH)(
530d1ba665SWarner Losh   IN CONST CHAR16                 *TextDevicePath
540d1ba665SWarner Losh   );
550d1ba665SWarner Losh 
560d1ba665SWarner Losh ///
570d1ba665SWarner Losh /// This protocol converts text to device paths and device nodes.
580d1ba665SWarner Losh ///
590d1ba665SWarner Losh typedef struct {
600d1ba665SWarner Losh   EFI_DEVICE_PATH_FROM_TEXT_NODE  ConvertTextToDeviceNode;
610d1ba665SWarner Losh   EFI_DEVICE_PATH_FROM_TEXT_PATH  ConvertTextToDevicePath;
620d1ba665SWarner Losh } EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL;
630d1ba665SWarner Losh 
640d1ba665SWarner Losh extern EFI_GUID gEfiDevicePathFromTextProtocolGuid;
650d1ba665SWarner Losh 
660d1ba665SWarner Losh #endif
67