1*0d1ba665SWarner Losh /** @file 2*0d1ba665SWarner Losh EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL as defined in UEFI 2.0. 3*0d1ba665SWarner Losh This protocol provides service to convert text to device paths and device nodes. 4*0d1ba665SWarner Losh 5*0d1ba665SWarner Losh Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR> 6*0d1ba665SWarner Losh This program and the accompanying materials 7*0d1ba665SWarner Losh are licensed and made available under the terms and conditions of the BSD License 8*0d1ba665SWarner Losh which accompanies this distribution. The full text of the license may be found at 9*0d1ba665SWarner Losh http://opensource.org/licenses/bsd-license.php 10*0d1ba665SWarner Losh 11*0d1ba665SWarner Losh THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12*0d1ba665SWarner Losh WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13*0d1ba665SWarner Losh 14*0d1ba665SWarner Losh **/ 15*0d1ba665SWarner Losh 16*0d1ba665SWarner Losh #ifndef __DEVICE_PATH_FROM_TEXT_PROTOCOL_H__ 17*0d1ba665SWarner Losh #define __DEVICE_PATH_FROM_TEXT_PROTOCOL_H__ 18*0d1ba665SWarner Losh 19*0d1ba665SWarner Losh /// 20*0d1ba665SWarner Losh /// Device Path From Text protocol 21*0d1ba665SWarner Losh /// 22*0d1ba665SWarner Losh #define EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL_GUID \ 23*0d1ba665SWarner Losh { \ 24*0d1ba665SWarner Losh 0x5c99a21, 0xc70f, 0x4ad2, {0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e } \ 25*0d1ba665SWarner Losh } 26*0d1ba665SWarner Losh 27*0d1ba665SWarner Losh /** 28*0d1ba665SWarner Losh Convert text to the binary representation of a device node. 29*0d1ba665SWarner Losh 30*0d1ba665SWarner Losh @param TextDeviceNode TextDeviceNode points to the text representation of a device 31*0d1ba665SWarner Losh node. Conversion starts with the first character and continues 32*0d1ba665SWarner Losh until the first non-device node character. 33*0d1ba665SWarner Losh 34*0d1ba665SWarner Losh @retval a_pointer Pointer to the EFI device node. 35*0d1ba665SWarner Losh @retval NULL if TextDeviceNode is NULL or there was insufficient memory. 36*0d1ba665SWarner Losh 37*0d1ba665SWarner Losh **/ 38*0d1ba665SWarner Losh typedef 39*0d1ba665SWarner Losh EFI_DEVICE_PATH_PROTOCOL* 40*0d1ba665SWarner Losh (EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_NODE)( 41*0d1ba665SWarner Losh IN CONST CHAR16 *TextDeviceNode 42*0d1ba665SWarner Losh ); 43*0d1ba665SWarner Losh 44*0d1ba665SWarner Losh 45*0d1ba665SWarner Losh /** 46*0d1ba665SWarner Losh Convert text to the binary representation of a device node. 47*0d1ba665SWarner Losh 48*0d1ba665SWarner Losh @param TextDeviceNode TextDevicePath points to the text representation of a device 49*0d1ba665SWarner Losh path. Conversion starts with the first character and continues 50*0d1ba665SWarner Losh until the first non-device path character. 51*0d1ba665SWarner Losh 52*0d1ba665SWarner Losh @retval a_pointer Pointer to the allocated device path. 53*0d1ba665SWarner Losh @retval NULL if TextDeviceNode is NULL or there was insufficient memory. 54*0d1ba665SWarner Losh 55*0d1ba665SWarner Losh **/ 56*0d1ba665SWarner Losh typedef 57*0d1ba665SWarner Losh EFI_DEVICE_PATH_PROTOCOL* 58*0d1ba665SWarner Losh (EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_PATH)( 59*0d1ba665SWarner Losh IN CONST CHAR16 *TextDevicePath 60*0d1ba665SWarner Losh ); 61*0d1ba665SWarner Losh 62*0d1ba665SWarner Losh /// 63*0d1ba665SWarner Losh /// This protocol converts text to device paths and device nodes. 64*0d1ba665SWarner Losh /// 65*0d1ba665SWarner Losh typedef struct { 66*0d1ba665SWarner Losh EFI_DEVICE_PATH_FROM_TEXT_NODE ConvertTextToDeviceNode; 67*0d1ba665SWarner Losh EFI_DEVICE_PATH_FROM_TEXT_PATH ConvertTextToDevicePath; 68*0d1ba665SWarner Losh } EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL; 69*0d1ba665SWarner Losh 70*0d1ba665SWarner Losh extern EFI_GUID gEfiDevicePathFromTextProtocolGuid; 71*0d1ba665SWarner Losh 72*0d1ba665SWarner Losh #endif 73