xref: /dflybsd-src/stand/contrib/edk2/MdePkg/Include/Protocol/DevicePathToText.h (revision 1370a72311f999d5cc5041717aeea26d08ad6923)
1*1370a723SSascha Wildner /** @file
2*1370a723SSascha Wildner   EFI_DEVICE_PATH_TO_TEXT_PROTOCOL as defined in UEFI 2.0.
3*1370a723SSascha Wildner   This protocol provides service to convert device nodes and paths to text.
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_TO_TEXT_PROTOCOL_H__
11*1370a723SSascha Wildner #define __DEVICE_PATH_TO_TEXT_PROTOCOL_H__
12*1370a723SSascha Wildner 
13*1370a723SSascha Wildner ///
14*1370a723SSascha Wildner /// Device Path To Text protocol
15*1370a723SSascha Wildner ///
16*1370a723SSascha Wildner #define EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID \
17*1370a723SSascha Wildner   { \
18*1370a723SSascha Wildner     0x8b843e20, 0x8132, 0x4852, {0x90, 0xcc, 0x55, 0x1a, 0x4e, 0x4a, 0x7f, 0x1c } \
19*1370a723SSascha Wildner   }
20*1370a723SSascha Wildner 
21*1370a723SSascha Wildner /**
22*1370a723SSascha Wildner   Convert a device node to its text representation.
23*1370a723SSascha Wildner 
24*1370a723SSascha Wildner   @param  DeviceNode     Points to the device node to be converted.
25*1370a723SSascha Wildner   @param  DisplayOnly    If DisplayOnly is TRUE, then the shorter text representation
26*1370a723SSascha Wildner                          of the display node is used, where applicable. If DisplayOnly
27*1370a723SSascha Wildner                          is FALSE, then the longer text representation of the display node
28*1370a723SSascha Wildner                          is used.
29*1370a723SSascha Wildner   @param  AllowShortcuts If AllowShortcuts is TRUE, then the shortcut forms of text
30*1370a723SSascha Wildner                          representation for a device node can be used, where applicable.
31*1370a723SSascha Wildner 
32*1370a723SSascha Wildner   @retval a_pointer      a pointer to the allocated text representation of the device node data
33*1370a723SSascha Wildner   @retval NULL           if DeviceNode is NULL or there was insufficient memory.
34*1370a723SSascha Wildner 
35*1370a723SSascha Wildner **/
36*1370a723SSascha Wildner typedef
37*1370a723SSascha Wildner CHAR16*
38*1370a723SSascha Wildner (EFIAPI *EFI_DEVICE_PATH_TO_TEXT_NODE)(
39*1370a723SSascha Wildner   IN CONST EFI_DEVICE_PATH_PROTOCOL   *DeviceNode,
40*1370a723SSascha Wildner   IN BOOLEAN                          DisplayOnly,
41*1370a723SSascha Wildner   IN BOOLEAN                          AllowShortcuts
42*1370a723SSascha Wildner   );
43*1370a723SSascha Wildner 
44*1370a723SSascha Wildner /**
45*1370a723SSascha Wildner   Convert a device path to its text representation.
46*1370a723SSascha Wildner 
47*1370a723SSascha Wildner   @param  DevicePath     Points to the device path to be converted.
48*1370a723SSascha Wildner   @param  DisplayOnly    If DisplayOnly is TRUE, then the shorter text representation
49*1370a723SSascha Wildner                          of the display node is used, where applicable. If DisplayOnly
50*1370a723SSascha Wildner                          is FALSE, then the longer text representation of the display node
51*1370a723SSascha Wildner                          is used.
52*1370a723SSascha Wildner   @param  AllowShortcuts The AllowShortcuts is FALSE, then the shortcut forms of
53*1370a723SSascha Wildner                          text representation for a device node cannot be used.
54*1370a723SSascha Wildner 
55*1370a723SSascha Wildner   @retval a_pointer      a pointer to the allocated text representation of the device node.
56*1370a723SSascha Wildner   @retval NULL           if DevicePath is NULL or there was insufficient memory.
57*1370a723SSascha Wildner 
58*1370a723SSascha Wildner **/
59*1370a723SSascha Wildner typedef
60*1370a723SSascha Wildner CHAR16*
61*1370a723SSascha Wildner (EFIAPI *EFI_DEVICE_PATH_TO_TEXT_PATH)(
62*1370a723SSascha Wildner   IN CONST EFI_DEVICE_PATH_PROTOCOL   *DevicePath,
63*1370a723SSascha Wildner   IN BOOLEAN                          DisplayOnly,
64*1370a723SSascha Wildner   IN BOOLEAN                          AllowShortcuts
65*1370a723SSascha Wildner   );
66*1370a723SSascha Wildner 
67*1370a723SSascha Wildner ///
68*1370a723SSascha Wildner /// This protocol converts device paths and device nodes to text.
69*1370a723SSascha Wildner ///
70*1370a723SSascha Wildner typedef struct {
71*1370a723SSascha Wildner   EFI_DEVICE_PATH_TO_TEXT_NODE        ConvertDeviceNodeToText;
72*1370a723SSascha Wildner   EFI_DEVICE_PATH_TO_TEXT_PATH        ConvertDevicePathToText;
73*1370a723SSascha Wildner } EFI_DEVICE_PATH_TO_TEXT_PROTOCOL;
74*1370a723SSascha Wildner 
75*1370a723SSascha Wildner extern EFI_GUID gEfiDevicePathToTextProtocolGuid;
76*1370a723SSascha Wildner 
77*1370a723SSascha Wildner #endif
78