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 Convert text to the binary representation of a device node. 400d1ba665SWarner Losh 410d1ba665SWarner Losh @param TextDeviceNode TextDevicePath points to the text representation of a device 420d1ba665SWarner Losh path. Conversion starts with the first character and continues 430d1ba665SWarner Losh until the first non-device path character. 440d1ba665SWarner Losh 450d1ba665SWarner Losh @retval a_pointer Pointer to the allocated device path. 460d1ba665SWarner Losh @retval NULL if TextDeviceNode is NULL or there was insufficient memory. 470d1ba665SWarner Losh 480d1ba665SWarner Losh **/ 490d1ba665SWarner Losh typedef 500d1ba665SWarner Losh EFI_DEVICE_PATH_PROTOCOL * 510d1ba665SWarner Losh (EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_PATH)( 520d1ba665SWarner Losh IN CONST CHAR16 *TextDevicePath 530d1ba665SWarner Losh ); 540d1ba665SWarner Losh 550d1ba665SWarner Losh /// 560d1ba665SWarner Losh /// This protocol converts text to device paths and device nodes. 570d1ba665SWarner Losh /// 580d1ba665SWarner Losh typedef struct { 590d1ba665SWarner Losh EFI_DEVICE_PATH_FROM_TEXT_NODE ConvertTextToDeviceNode; 600d1ba665SWarner Losh EFI_DEVICE_PATH_FROM_TEXT_PATH ConvertTextToDevicePath; 610d1ba665SWarner Losh } EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL; 620d1ba665SWarner Losh 630d1ba665SWarner Losh extern EFI_GUID gEfiDevicePathFromTextProtocolGuid; 640d1ba665SWarner Losh 650d1ba665SWarner Losh #endif 66