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