Update DevicePathLib to reflect the update of UEFI device utility protocol
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3914 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -1,5 +1,5 @@
|
|||||||
/** @file
|
/** @file
|
||||||
Entry point to a DXE Boot Services Driver
|
Device Path services.
|
||||||
|
|
||||||
Copyright (c) 2006, Intel Corporation
|
Copyright (c) 2006, Intel Corporation
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
@ -59,7 +59,8 @@ DuplicateDevicePath (
|
|||||||
SecondDevicePath is retained. The newly created device path is returned.
|
SecondDevicePath is retained. The newly created device path is returned.
|
||||||
If FirstDevicePath is NULL, then it is ignored, and a duplicate of SecondDevicePath is returned.
|
If FirstDevicePath is NULL, then it is ignored, and a duplicate of SecondDevicePath is returned.
|
||||||
If SecondDevicePath is NULL, then it is ignored, and a duplicate of FirstDevicePath is returned.
|
If SecondDevicePath is NULL, then it is ignored, and a duplicate of FirstDevicePath is returned.
|
||||||
If both FirstDevicePath and SecondDevicePath are NULL, then NULL is returned.
|
If both FirstDevicePath and SecondDevicePath are NULL, then a copy of an end-of-device-path is
|
||||||
|
returned.
|
||||||
If there is not enough memory for the newly allocated buffer, then NULL is returned.
|
If there is not enough memory for the newly allocated buffer, then NULL is returned.
|
||||||
The memory for the new device path is allocated from EFI boot services memory. It is the
|
The memory for the new device path is allocated from EFI boot services memory. It is the
|
||||||
responsibility of the caller to free the memory allocated.
|
responsibility of the caller to free the memory allocated.
|
||||||
@ -83,8 +84,10 @@ AppendDevicePath (
|
|||||||
This function creates a new device path by appending a copy of the device node specified by
|
This function creates a new device path by appending a copy of the device node specified by
|
||||||
DevicePathNode to a copy of the device path specified by DevicePath in an allocated buffer.
|
DevicePathNode to a copy of the device path specified by DevicePath in an allocated buffer.
|
||||||
The end-of-device-path device node is moved after the end of the appended device node.
|
The end-of-device-path device node is moved after the end of the appended device node.
|
||||||
If DevicePath is NULL, then NULL is returned.
|
If DeviceNode is NULL then a copy of DevicePath is returned.
|
||||||
If DevicePathNode is NULL, then NULL is returned.
|
If DevicePathNode is NULL then a copy of DevicePath is returned.
|
||||||
|
If both DevicePathNode and DevicePath are NULL then a copy of an end-of-device-path device node
|
||||||
|
is returned.
|
||||||
If there is not enough memory to allocate space for the new device path, then NULL is returned.
|
If there is not enough memory to allocate space for the new device path, then NULL is returned.
|
||||||
The memory is allocated from EFI boot services memory. It is the responsibility of the caller to
|
The memory is allocated from EFI boot services memory. It is the responsibility of the caller to
|
||||||
free the memory allocated.
|
free the memory allocated.
|
||||||
|
@ -31,6 +31,16 @@
|
|||||||
#include <Library/UefiBootServicesTableLib.h>
|
#include <Library/UefiBootServicesTableLib.h>
|
||||||
#include <Library/BaseLib.h>
|
#include <Library/BaseLib.h>
|
||||||
|
|
||||||
|
//
|
||||||
|
// Template for an end-of-device path node.
|
||||||
|
//
|
||||||
|
STATIC EFI_DEVICE_PATH_PROTOCOL mEndDevicePath[] = {
|
||||||
|
END_DEVICE_PATH_TYPE,
|
||||||
|
END_ENTIRE_DEVICE_PATH_SUBTYPE,
|
||||||
|
END_DEVICE_PATH_LENGTH,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns the size of a device path in bytes.
|
Returns the size of a device path in bytes.
|
||||||
|
|
||||||
@ -114,7 +124,8 @@ DuplicateDevicePath (
|
|||||||
SecondDevicePath is retained. The newly created device path is returned.
|
SecondDevicePath is retained. The newly created device path is returned.
|
||||||
If FirstDevicePath is NULL, then it is ignored, and a duplicate of SecondDevicePath is returned.
|
If FirstDevicePath is NULL, then it is ignored, and a duplicate of SecondDevicePath is returned.
|
||||||
If SecondDevicePath is NULL, then it is ignored, and a duplicate of FirstDevicePath is returned.
|
If SecondDevicePath is NULL, then it is ignored, and a duplicate of FirstDevicePath is returned.
|
||||||
If both FirstDevicePath and SecondDevicePath are NULL, then NULL is returned.
|
If both FirstDevicePath and SecondDevicePath are NULL, then a copy of an end-of-device-path is
|
||||||
|
returned.
|
||||||
If there is not enough memory for the newly allocated buffer, then NULL is returned.
|
If there is not enough memory for the newly allocated buffer, then NULL is returned.
|
||||||
The memory for the new device path is allocated from EFI boot services memory. It is the
|
The memory for the new device path is allocated from EFI boot services memory. It is the
|
||||||
responsibility of the caller to free the memory allocated.
|
responsibility of the caller to free the memory allocated.
|
||||||
@ -142,7 +153,7 @@ AppendDevicePath (
|
|||||||
// If there's only 1 path, just duplicate it.
|
// If there's only 1 path, just duplicate it.
|
||||||
//
|
//
|
||||||
if (FirstDevicePath == NULL) {
|
if (FirstDevicePath == NULL) {
|
||||||
return DuplicateDevicePath (SecondDevicePath);
|
return DuplicateDevicePath ((SecondDevicePath != NULL) ? SecondDevicePath : mEndDevicePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SecondDevicePath == NULL) {
|
if (SecondDevicePath == NULL) {
|
||||||
@ -178,8 +189,10 @@ AppendDevicePath (
|
|||||||
This function creates a new device path by appending a copy of the device node specified by
|
This function creates a new device path by appending a copy of the device node specified by
|
||||||
DevicePathNode to a copy of the device path specified by DevicePath in an allocated buffer.
|
DevicePathNode to a copy of the device path specified by DevicePath in an allocated buffer.
|
||||||
The end-of-device-path device node is moved after the end of the appended device node.
|
The end-of-device-path device node is moved after the end of the appended device node.
|
||||||
If DevicePath is NULL, then NULL is returned.
|
If DeviceNode is NULL then a copy of DevicePath is returned.
|
||||||
If DevicePathNode is NULL, then NULL is returned.
|
If DevicePathNode is NULL then a copy of DevicePath is returned.
|
||||||
|
If both DevicePathNode and DevicePath are NULL then a copy of an end-of-device-path device node
|
||||||
|
is returned.
|
||||||
If there is not enough memory to allocate space for the new device path, then NULL is returned.
|
If there is not enough memory to allocate space for the new device path, then NULL is returned.
|
||||||
The memory is allocated from EFI boot services memory. It is the responsibility of the caller to
|
The memory is allocated from EFI boot services memory. It is the responsibility of the caller to
|
||||||
free the memory allocated.
|
free the memory allocated.
|
||||||
@ -202,8 +215,8 @@ AppendDevicePathNode (
|
|||||||
EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;
|
EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;
|
||||||
UINTN NodeLength;
|
UINTN NodeLength;
|
||||||
|
|
||||||
if (DevicePath == NULL || DevicePathNode == NULL) {
|
if (DevicePathNode == NULL) {
|
||||||
return NULL;
|
return DuplicateDevicePath ((DevicePath != NULL) ? DevicePath : mEndDevicePath);
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
// Build a Node that has a terminator on it
|
// Build a Node that has a terminator on it
|
||||||
|
@ -111,7 +111,8 @@ DuplicateDevicePath (
|
|||||||
SecondDevicePath is retained. The newly created device path is returned.
|
SecondDevicePath is retained. The newly created device path is returned.
|
||||||
If FirstDevicePath is NULL, then it is ignored, and a duplicate of SecondDevicePath is returned.
|
If FirstDevicePath is NULL, then it is ignored, and a duplicate of SecondDevicePath is returned.
|
||||||
If SecondDevicePath is NULL, then it is ignored, and a duplicate of FirstDevicePath is returned.
|
If SecondDevicePath is NULL, then it is ignored, and a duplicate of FirstDevicePath is returned.
|
||||||
If both FirstDevicePath and SecondDevicePath are NULL, then NULL is returned.
|
If both FirstDevicePath and SecondDevicePath are NULL, then a copy of an end-of-device-path is
|
||||||
|
returned.
|
||||||
If there is not enough memory for the newly allocated buffer, then NULL is returned.
|
If there is not enough memory for the newly allocated buffer, then NULL is returned.
|
||||||
The memory for the new device path is allocated from EFI boot services memory. It is the
|
The memory for the new device path is allocated from EFI boot services memory. It is the
|
||||||
responsibility of the caller to free the memory allocated.
|
responsibility of the caller to free the memory allocated.
|
||||||
@ -138,8 +139,10 @@ AppendDevicePath (
|
|||||||
This function creates a new device path by appending a copy of the device node specified by
|
This function creates a new device path by appending a copy of the device node specified by
|
||||||
DevicePathNode to a copy of the device path specified by DevicePath in an allocated buffer.
|
DevicePathNode to a copy of the device path specified by DevicePath in an allocated buffer.
|
||||||
The end-of-device-path device node is moved after the end of the appended device node.
|
The end-of-device-path device node is moved after the end of the appended device node.
|
||||||
If DevicePath is NULL, then NULL is returned.
|
If DeviceNode is NULL then a copy of DevicePath is returned.
|
||||||
If DevicePathNode is NULL, then NULL is returned.
|
If DevicePathNode is NULL then a copy of DevicePath is returned.
|
||||||
|
If both DevicePathNode and DevicePath are NULL then a copy of an end-of-device-path device node
|
||||||
|
is returned.
|
||||||
If there is not enough memory to allocate space for the new device path, then NULL is returned.
|
If there is not enough memory to allocate space for the new device path, then NULL is returned.
|
||||||
The memory is allocated from EFI boot services memory. It is the responsibility of the caller to
|
The memory is allocated from EFI boot services memory. It is the responsibility of the caller to
|
||||||
free the memory allocated.
|
free the memory allocated.
|
||||||
|
Reference in New Issue
Block a user