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