10d1ba665SWarner Losh /** @file 20d1ba665SWarner Losh EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL as defined in UEFI 2.0. 30d1ba665SWarner Losh This protocol provides service to convert text to device paths and device nodes. 40d1ba665SWarner Losh 5*3245fa21SMitchell Horne Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> 6*3245fa21SMitchell Horne SPDX-License-Identifier: BSD-2-Clause-Patent 70d1ba665SWarner Losh 80d1ba665SWarner Losh **/ 90d1ba665SWarner Losh 100d1ba665SWarner Losh #ifndef __DEVICE_PATH_FROM_TEXT_PROTOCOL_H__ 110d1ba665SWarner Losh #define __DEVICE_PATH_FROM_TEXT_PROTOCOL_H__ 120d1ba665SWarner Losh 130d1ba665SWarner Losh /// 140d1ba665SWarner Losh /// Device Path From Text protocol 150d1ba665SWarner Losh /// 160d1ba665SWarner Losh #define EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL_GUID \ 170d1ba665SWarner Losh { \ 180d1ba665SWarner Losh 0x5c99a21, 0xc70f, 0x4ad2, {0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e } \ 190d1ba665SWarner Losh } 200d1ba665SWarner Losh 210d1ba665SWarner Losh /** 220d1ba665SWarner Losh Convert text to the binary representation of a device node. 230d1ba665SWarner Losh 240d1ba665SWarner Losh @param TextDeviceNode TextDeviceNode points to the text representation of a device 250d1ba665SWarner Losh node. Conversion starts with the first character and continues 260d1ba665SWarner Losh until the first non-device node character. 270d1ba665SWarner Losh 280d1ba665SWarner Losh @retval a_pointer Pointer to the EFI device node. 290d1ba665SWarner Losh @retval NULL if TextDeviceNode is NULL or there was insufficient memory. 300d1ba665SWarner Losh 310d1ba665SWarner Losh **/ 320d1ba665SWarner Losh typedef 330d1ba665SWarner Losh EFI_DEVICE_PATH_PROTOCOL* 340d1ba665SWarner Losh (EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_NODE)( 350d1ba665SWarner Losh IN CONST CHAR16 *TextDeviceNode 360d1ba665SWarner Losh ); 370d1ba665SWarner Losh 380d1ba665SWarner Losh 390d1ba665SWarner Losh /** 400d1ba665SWarner Losh Convert text to the binary representation of a device node. 410d1ba665SWarner Losh 420d1ba665SWarner Losh @param TextDeviceNode TextDevicePath points to the text representation of a device 430d1ba665SWarner Losh path. Conversion starts with the first character and continues 440d1ba665SWarner Losh until the first non-device path character. 450d1ba665SWarner Losh 460d1ba665SWarner Losh @retval a_pointer Pointer to the allocated device path. 470d1ba665SWarner Losh @retval NULL if TextDeviceNode is NULL or there was insufficient memory. 480d1ba665SWarner Losh 490d1ba665SWarner Losh **/ 500d1ba665SWarner Losh typedef 510d1ba665SWarner Losh EFI_DEVICE_PATH_PROTOCOL* 520d1ba665SWarner Losh (EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_PATH)( 530d1ba665SWarner Losh IN CONST CHAR16 *TextDevicePath 540d1ba665SWarner Losh ); 550d1ba665SWarner Losh 560d1ba665SWarner Losh /// 570d1ba665SWarner Losh /// This protocol converts text to device paths and device nodes. 580d1ba665SWarner Losh /// 590d1ba665SWarner Losh typedef struct { 600d1ba665SWarner Losh EFI_DEVICE_PATH_FROM_TEXT_NODE ConvertTextToDeviceNode; 610d1ba665SWarner Losh EFI_DEVICE_PATH_FROM_TEXT_PATH ConvertTextToDevicePath; 620d1ba665SWarner Losh } EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL; 630d1ba665SWarner Losh 640d1ba665SWarner Losh extern EFI_GUID gEfiDevicePathFromTextProtocolGuid; 650d1ba665SWarner Losh 660d1ba665SWarner Losh #endif 67