xref: /freebsd/sys/contrib/edk2/Include/Protocol/DevicePathFromText.h (revision ab00ac327a66a53edaac95b536b209db3ae2cd9f)
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 - 2008, Intel Corporation. All rights reserved.<BR>
6   This program and the accompanying materials
7   are licensed and made available under the terms and conditions of the BSD License
8   which accompanies this distribution.  The full text of the license may be found at
9   http://opensource.org/licenses/bsd-license.php
10 
11   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 
14 **/
15 
16 #ifndef __DEVICE_PATH_FROM_TEXT_PROTOCOL_H__
17 #define __DEVICE_PATH_FROM_TEXT_PROTOCOL_H__
18 
19 ///
20 /// Device Path From Text protocol
21 ///
22 #define EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL_GUID \
23   { \
24     0x5c99a21, 0xc70f, 0x4ad2, {0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e  } \
25   }
26 
27 /**
28   Convert text to the binary representation of a device node.
29 
30   @param  TextDeviceNode TextDeviceNode points to the text representation of a device
31                          node. Conversion starts with the first character and continues
32                          until the first non-device node character.
33 
34   @retval a_pointer      Pointer to the EFI device node.
35   @retval NULL           if TextDeviceNode is NULL or there was insufficient memory.
36 
37 **/
38 typedef
39 EFI_DEVICE_PATH_PROTOCOL*
40 (EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_NODE)(
41   IN CONST CHAR16                 *TextDeviceNode
42   );
43 
44 
45 /**
46   Convert text to the binary representation of a device node.
47 
48   @param  TextDeviceNode TextDevicePath points to the text representation of a device
49                          path. Conversion starts with the first character and continues
50                          until the first non-device path character.
51 
52   @retval a_pointer      Pointer to the allocated device path.
53   @retval NULL           if TextDeviceNode is NULL or there was insufficient memory.
54 
55 **/
56 typedef
57 EFI_DEVICE_PATH_PROTOCOL*
58 (EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_PATH)(
59   IN CONST CHAR16                 *TextDevicePath
60   );
61 
62 ///
63 /// This protocol converts text to device paths and device nodes.
64 ///
65 typedef struct {
66   EFI_DEVICE_PATH_FROM_TEXT_NODE  ConvertTextToDeviceNode;
67   EFI_DEVICE_PATH_FROM_TEXT_PATH  ConvertTextToDevicePath;
68 } EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL;
69 
70 extern EFI_GUID gEfiDevicePathFromTextProtocolGuid;
71 
72 #endif
73