1/** @file
2  EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL as defined in UEFI 2.0.
3  This protocol provides service to convert text to device paths and device nodes.
4
5  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
6  SPDX-License-Identifier: BSD-2-Clause-Patent
7
8**/
9
10#ifndef __DEVICE_PATH_FROM_TEXT_PROTOCOL_H__
11#define __DEVICE_PATH_FROM_TEXT_PROTOCOL_H__
12
13///
14/// Device Path From Text protocol
15///
16#define EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL_GUID \
17  { \
18    0x5c99a21, 0xc70f, 0x4ad2, {0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e  } \
19  }
20
21/**
22  Convert text to the binary representation of a device node.
23
24  @param  TextDeviceNode TextDeviceNode points to the text representation of a device
25                         node. Conversion starts with the first character and continues
26                         until the first non-device node character.
27
28  @retval a_pointer      Pointer to the EFI device node.
29  @retval NULL           if TextDeviceNode is NULL or there was insufficient memory.
30
31**/
32typedef
33EFI_DEVICE_PATH_PROTOCOL*
34(EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_NODE)(
35  IN CONST CHAR16                 *TextDeviceNode
36  );
37
38
39/**
40  Convert text to the binary representation of a device node.
41
42  @param  TextDeviceNode TextDevicePath points to the text representation of a device
43                         path. Conversion starts with the first character and continues
44                         until the first non-device path character.
45
46  @retval a_pointer      Pointer to the allocated device path.
47  @retval NULL           if TextDeviceNode is NULL or there was insufficient memory.
48
49**/
50typedef
51EFI_DEVICE_PATH_PROTOCOL*
52(EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_PATH)(
53  IN CONST CHAR16                 *TextDevicePath
54  );
55
56///
57/// This protocol converts text to device paths and device nodes.
58///
59typedef struct {
60  EFI_DEVICE_PATH_FROM_TEXT_NODE  ConvertTextToDeviceNode;
61  EFI_DEVICE_PATH_FROM_TEXT_PATH  ConvertTextToDevicePath;
62} EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL;
63
64extern EFI_GUID gEfiDevicePathFromTextProtocolGuid;
65
66#endif
67