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