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