xref: /freebsd/sys/contrib/edk2/Include/Protocol/DevicePathFromText.h (revision 0d1ba6657e90b1f9b76e1c393b1555d6cf6cf260)
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