]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/DevicePathUtilities.h
Move the definitions defined for User Manager protocol from UserCredential.h to UserM...
[mirror_edk2.git] / MdePkg / Include / Protocol / DevicePathUtilities.h
index 44e88ee315bb23845395d30ec706cb88cc2cdee2..48e06aab0a5c1c0f373cb7ac8bb21a3d645254e8 100644 (file)
@@ -16,9 +16,6 @@
 #ifndef __DEVICE_PATH_UTILITIES_PROTOCOL_H__\r
 #define __DEVICE_PATH_UTILITIES_PROTOCOL_H__\r
 \r
-\r
-#include <Protocol/DevicePath.h>\r
-\r
 ///\r
 /// Device Path Utilities protocol\r
 ///\r
@@ -32,7 +29,8 @@
 \r
   @param  DevicePath Points to the start of the EFI device path.\r
 \r
-  @retval Size       Size of the specified device path, in bytes, including the end-of-path tag.\r
+  @return Size  Size of the specified device path, in bytes, including the end-of-path tag.\r
+  @retval 0     DevicePath is NULL   \r
 \r
 **/\r
 typedef\r
@@ -48,7 +46,7 @@ UINTN
   @param  DevicePath Points to the source EFI device path.\r
 \r
   @retval Pointer    A pointer to the duplicate device path.\r
-  @retval NULL       insufficient memory\r
+  @retval NULL       insufficient memory or DevicePath is NULL\r
 \r
 **/\r
 typedef\r
@@ -59,13 +57,15 @@ EFI_DEVICE_PATH_PROTOCOL*
 \r
 /**\r
   Create a new path by appending the second device path to the first.\r
+  If Src1 is NULL and Src2 is non-NULL, then a duplicate of Src2 is returned. \r
+  If Src1 is non-NULL and Src2 is NULL, then a duplicate of Src1 is returned.\r
+  If Src1 and Src2 are both NULL, then a copy of an end-of-device-path is returned.\r
 \r
-  @param  Src1 Points to the first device path. If NULL, then it is ignored.\r
-  @param  Src2 Points to the second device path. If NULL, then it is ignored.\r
+  @param  Src1 Points to the first device path.\r
+  @param  Src2 Points to the second device path.\r
 \r
   @retval Pointer  A pointer to the newly created device path.\r
   @retval NULL     Memory could not be allocated\r
-                   or either DevicePath or DeviceNode is NULL.\r
 \r
 **/\r
 typedef\r
@@ -77,13 +77,15 @@ EFI_DEVICE_PATH_PROTOCOL*
   \r
 /**\r
   Creates a new path by appending the device node to the device path.\r
+  If DeviceNode is NULL then a copy of DevicePath is returned. \r
+  If DevicePath is NULL then a copy of DeviceNode, followed by an end-of-device path device node is returned.\r
+  If both DeviceNode and DevicePath are NULL then a copy of an end-of-device-path device node is returned.\r
 \r
   @param  DevicePath Points to the device path.\r
   @param  DeviceNode Points to the device node.\r
 \r
   @retval Pointer    A pointer to the allocated device node.\r
-  @retval NULL       Memory could not be allocated\r
-                     or either DevicePath or DeviceNode is NULL.\r
+  @retval NULL       There was insufficient memory.\r
 \r
 **/\r
 typedef\r
@@ -119,7 +121,8 @@ EFI_DEVICE_PATH_PROTOCOL*
                                  device path instance or NULL if there are no more device\r
                                  path instances in the device path.  \r
   @param  DevicePathInstanceSize On output, this holds the size of the device path instance,\r
-                                 in bytes or zero, if DevicePathInstance is zero.\r
+                                 in bytes or zero, if DevicePathInstance is NULL.\r
+                                 If NULL, then the instance size is not output.\r
 \r
   @retval Pointer                A pointer to the copy of the current device path instance.\r
   @retval NULL                   DevicePathInstace was NULL on entry or there was insufficient memory.\r
@@ -170,34 +173,9 @@ BOOLEAN
   IN CONST EFI_DEVICE_PATH_PROTOCOL         *DevicePath\r
   );                                                                                                       \r
   \r
-/**\r
-  @par Protocol Description:\r
-  This protocol is used to creates and manipulates device paths and device nodes.\r
-\r
-  @param GetDevicePathSize \r
-  Returns the size of the specified device path, in bytes.\r
-\r
-  @param DuplicateDevicePath\r
-  Duplicates a device path structure.\r
\r
-  @param AppendDeviceNode \r
-  Appends the device node to the specified device path.\r
-\r
-  @param AppendDevicePath \r
-  Appends the device path to the specified device path.\r
-\r
-  @param AppendDevicePathInstance\r
-  Appends a device path instance to another device path.\r
-\r
-  @param GetNextDevicePathInstance\r
-  Retrieves the next device path instance from a device path data structure.\r
-\r
-  @param IsDevicePathMultiInstance\r
-  Returns TRUE if this is a multi-instance device path.\r
-\r
-  @param CreateDeviceNode \r
-  Allocates memory for a device node with the specified type and sub-type.\r
-**/ \r
+///\r
+/// This protocol is used to creates and manipulates device paths and device nodes.\r
+/// \r
 typedef struct {\r
   EFI_DEVICE_PATH_UTILS_GET_DEVICE_PATH_SIZE GetDevicePathSize;\r
   EFI_DEVICE_PATH_UTILS_DUP_DEVICE_PATH      DuplicateDevicePath;\r