Code Scrub for Dxe Core.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5560 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -21,22 +21,22 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
/**
|
||||
Connects one or more drivers to a controller.
|
||||
|
||||
@param ControllerHandle Handle of the controller to be
|
||||
connected.
|
||||
@param DriverImageHandle DriverImageHandle A pointer to an
|
||||
ordered list of driver image
|
||||
handles.
|
||||
@param RemainingDevicePath RemainingDevicePath A pointer to
|
||||
the device path that specifies a
|
||||
child of the controller specified
|
||||
by ControllerHandle.
|
||||
@param Recursive Whether the function would be
|
||||
called recursively or not.
|
||||
@param ControllerHandle Handle of the controller to be
|
||||
connected.
|
||||
@param DriverImageHandle DriverImageHandle A pointer to an
|
||||
ordered list of driver image
|
||||
handles.
|
||||
@param RemainingDevicePath RemainingDevicePath A pointer to
|
||||
the device path that specifies a
|
||||
child of the controller specified
|
||||
by ControllerHandle.
|
||||
@param Recursive Whether the function would be
|
||||
called recursively or not.
|
||||
|
||||
@return Status code.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
CoreConnectController (
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
@@ -56,7 +56,7 @@ CoreConnectController (
|
||||
EFI_HANDLE *ChildHandleBuffer;
|
||||
UINTN ChildHandleCount;
|
||||
UINTN Index;
|
||||
|
||||
|
||||
//
|
||||
// Make sure ControllerHandle is valid
|
||||
//
|
||||
@@ -124,8 +124,8 @@ CoreConnectController (
|
||||
//
|
||||
for (Link = Handle->Protocols.ForwardLink, ChildHandleCount = 0; Link != &Handle->Protocols; Link = Link->ForwardLink) {
|
||||
Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);
|
||||
for (ProtLink = Prot->OpenList.ForwardLink;
|
||||
ProtLink != &Prot->OpenList;
|
||||
for (ProtLink = Prot->OpenList.ForwardLink;
|
||||
ProtLink != &Prot->OpenList;
|
||||
ProtLink = ProtLink->ForwardLink) {
|
||||
OpenData = CR (ProtLink, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);
|
||||
if ((OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER) != 0) {
|
||||
@@ -144,8 +144,8 @@ CoreConnectController (
|
||||
//
|
||||
for (Link = Handle->Protocols.ForwardLink, ChildHandleCount = 0; Link != &Handle->Protocols; Link = Link->ForwardLink) {
|
||||
Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);
|
||||
for (ProtLink = Prot->OpenList.ForwardLink;
|
||||
ProtLink != &Prot->OpenList;
|
||||
for (ProtLink = Prot->OpenList.ForwardLink;
|
||||
ProtLink != &Prot->OpenList;
|
||||
ProtLink = ProtLink->ForwardLink) {
|
||||
OpenData = CR (ProtLink, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);
|
||||
if ((OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER) != 0) {
|
||||
@@ -169,7 +169,7 @@ CoreConnectController (
|
||||
NULL,
|
||||
NULL,
|
||||
TRUE
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -186,17 +186,17 @@ CoreConnectController (
|
||||
Add Driver Binding Protocols from Context Driver Image Handles to sorted
|
||||
Driver Binding Protocol list.
|
||||
|
||||
@param DriverBindingHandle Handle of the driver binding
|
||||
protocol.
|
||||
@param NumberOfSortedDriverBindingProtocols Number Of sorted driver binding
|
||||
protocols
|
||||
@param SortedDriverBindingProtocols The sorted protocol list.
|
||||
@param DriverBindingHandleCount Driver Binding Handle Count.
|
||||
@param DriverBindingHandleBuffer The buffer of driver binding
|
||||
protocol to be modified.
|
||||
@param IsImageHandle Indicate whether
|
||||
DriverBindingHandle is an image
|
||||
handle
|
||||
@param DriverBindingHandle Handle of the driver binding
|
||||
protocol.
|
||||
@param NumberOfSortedDriverBindingProtocols Number Of sorted driver binding
|
||||
protocols
|
||||
@param SortedDriverBindingProtocols The sorted protocol list.
|
||||
@param DriverBindingHandleCount Driver Binding Handle Count.
|
||||
@param DriverBindingHandleBuffer The buffer of driver binding
|
||||
protocol to be modified.
|
||||
@param IsImageHandle Indicate whether
|
||||
DriverBindingHandle is an image
|
||||
handle
|
||||
|
||||
@return None.
|
||||
|
||||
@@ -204,7 +204,7 @@ CoreConnectController (
|
||||
VOID
|
||||
AddSortedDriverBindingProtocol (
|
||||
IN EFI_HANDLE DriverBindingHandle,
|
||||
IN OUT UINTN *NumberOfSortedDriverBindingProtocols,
|
||||
IN OUT UINTN *NumberOfSortedDriverBindingProtocols,
|
||||
IN OUT EFI_DRIVER_BINDING_PROTOCOL **SortedDriverBindingProtocols,
|
||||
IN UINTN DriverBindingHandleCount,
|
||||
IN OUT EFI_HANDLE *DriverBindingHandleBuffer,
|
||||
@@ -251,7 +251,7 @@ AddSortedDriverBindingProtocol (
|
||||
if (DriverBinding->ImageHandle == DriverBindingHandle) {
|
||||
AddSortedDriverBindingProtocol (
|
||||
DriverBindingHandleBuffer[Index],
|
||||
NumberOfSortedDriverBindingProtocols,
|
||||
NumberOfSortedDriverBindingProtocols,
|
||||
SortedDriverBindingProtocols,
|
||||
DriverBindingHandleCount,
|
||||
DriverBindingHandleBuffer,
|
||||
@@ -303,34 +303,34 @@ AddSortedDriverBindingProtocol (
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
Connects a controller to a driver.
|
||||
|
||||
@param ControllerHandle Handle of the controller to be
|
||||
connected.
|
||||
@param ContextDriverImageHandles DriverImageHandle A pointer to an
|
||||
ordered list of driver image
|
||||
handles.
|
||||
@param RemainingDevicePath RemainingDevicePath A pointer to
|
||||
the device path that specifies a
|
||||
child of the controller
|
||||
specified by ControllerHandle.
|
||||
@param ControllerHandle Handle of the controller to be
|
||||
connected.
|
||||
@param ContextDriverImageHandles DriverImageHandle A pointer to an
|
||||
ordered list of driver image
|
||||
handles.
|
||||
@param RemainingDevicePath RemainingDevicePath A pointer to
|
||||
the device path that specifies a
|
||||
child of the controller
|
||||
specified by ControllerHandle.
|
||||
|
||||
@retval EFI_SUCCESS One or more drivers were
|
||||
connected to ControllerHandle.
|
||||
@retval EFI_OUT_OF_RESOURCES No enough system resources to
|
||||
complete the request.
|
||||
@retval EFI_NOT_FOUND No drivers were connected to
|
||||
@retval EFI_SUCCESS One or more drivers were
|
||||
connected to ControllerHandle.
|
||||
@retval EFI_OUT_OF_RESOURCES No enough system resources to
|
||||
complete the request.
|
||||
@retval EFI_NOT_FOUND No drivers were connected to
|
||||
ControllerHandle.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFI_STATUS
|
||||
CoreConnectSingleController (
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE *ContextDriverImageHandles OPTIONAL,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -363,10 +363,10 @@ CoreConnectSingleController (
|
||||
// Get list of all Driver Binding Protocol Instances
|
||||
//
|
||||
Status = CoreLocateHandleBuffer (
|
||||
ByProtocol,
|
||||
&gEfiDriverBindingProtocolGuid,
|
||||
ByProtocol,
|
||||
&gEfiDriverBindingProtocolGuid,
|
||||
NULL,
|
||||
&DriverBindingHandleCount,
|
||||
&DriverBindingHandleCount,
|
||||
&DriverBindingHandleBuffer
|
||||
);
|
||||
if (EFI_ERROR (Status) || (DriverBindingHandleCount == 0)) {
|
||||
@@ -389,7 +389,7 @@ CoreConnectSingleController (
|
||||
for (Index = 0; ContextDriverImageHandles[Index] != NULL; Index++) {
|
||||
AddSortedDriverBindingProtocol (
|
||||
ContextDriverImageHandles[Index],
|
||||
&NumberOfSortedDriverBindingProtocols,
|
||||
&NumberOfSortedDriverBindingProtocols,
|
||||
SortedDriverBindingProtocols,
|
||||
DriverBindingHandleCount,
|
||||
DriverBindingHandleBuffer,
|
||||
@@ -402,8 +402,8 @@ CoreConnectSingleController (
|
||||
// Add the Platform Driver Override Protocol drivers for ControllerHandle next
|
||||
//
|
||||
Status = CoreLocateProtocol (
|
||||
&gEfiPlatformDriverOverrideProtocolGuid,
|
||||
NULL,
|
||||
&gEfiPlatformDriverOverrideProtocolGuid,
|
||||
NULL,
|
||||
(VOID **) &PlatformDriverOverride
|
||||
);
|
||||
if (!EFI_ERROR (Status) && (PlatformDriverOverride != NULL)) {
|
||||
@@ -417,7 +417,7 @@ CoreConnectSingleController (
|
||||
if (!EFI_ERROR (Status)) {
|
||||
AddSortedDriverBindingProtocol (
|
||||
DriverImageHandle,
|
||||
&NumberOfSortedDriverBindingProtocols,
|
||||
&NumberOfSortedDriverBindingProtocols,
|
||||
SortedDriverBindingProtocols,
|
||||
DriverBindingHandleCount,
|
||||
DriverBindingHandleBuffer,
|
||||
@@ -431,8 +431,8 @@ CoreConnectSingleController (
|
||||
// Get the Bus Specific Driver Override Protocol instance on the Controller Handle
|
||||
//
|
||||
Status = CoreHandleProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiBusSpecificDriverOverrideProtocolGuid,
|
||||
ControllerHandle,
|
||||
&gEfiBusSpecificDriverOverrideProtocolGuid,
|
||||
(VOID **) &BusSpecificDriverOverride
|
||||
);
|
||||
if (!EFI_ERROR (Status) && (BusSpecificDriverOverride != NULL)) {
|
||||
@@ -445,7 +445,7 @@ CoreConnectSingleController (
|
||||
if (!EFI_ERROR (Status)) {
|
||||
AddSortedDriverBindingProtocol (
|
||||
DriverImageHandle,
|
||||
&NumberOfSortedDriverBindingProtocols,
|
||||
&NumberOfSortedDriverBindingProtocols,
|
||||
SortedDriverBindingProtocols,
|
||||
DriverBindingHandleCount,
|
||||
DriverBindingHandleBuffer,
|
||||
@@ -462,7 +462,7 @@ CoreConnectSingleController (
|
||||
for (Index = 0; Index < DriverBindingHandleCount; Index++) {
|
||||
AddSortedDriverBindingProtocol (
|
||||
DriverBindingHandleBuffer[Index],
|
||||
&NumberOfSortedDriverBindingProtocols,
|
||||
&NumberOfSortedDriverBindingProtocols,
|
||||
SortedDriverBindingProtocols,
|
||||
DriverBindingHandleCount,
|
||||
DriverBindingHandleBuffer,
|
||||
@@ -480,10 +480,10 @@ CoreConnectSingleController (
|
||||
// EFI_NOT_READY, so it will be restarted
|
||||
//
|
||||
Status = CoreLocateHandleBuffer (
|
||||
ByProtocol,
|
||||
&gEfiDriverBindingProtocolGuid,
|
||||
ByProtocol,
|
||||
&gEfiDriverBindingProtocolGuid,
|
||||
NULL,
|
||||
&NewDriverBindingHandleCount,
|
||||
&NewDriverBindingHandleCount,
|
||||
&NewDriverBindingHandleBuffer
|
||||
);
|
||||
CoreFreePool (NewDriverBindingHandleBuffer);
|
||||
@@ -524,7 +524,7 @@ CoreConnectSingleController (
|
||||
|
||||
//
|
||||
// Loop through the sorted Driver Binding Protocol Instances in order, and see if
|
||||
// any of the Driver Binding Protocols support the controller specified by
|
||||
// any of the Driver Binding Protocols support the controller specified by
|
||||
// ControllerHandle.
|
||||
//
|
||||
DriverBinding = NULL;
|
||||
@@ -533,7 +533,7 @@ CoreConnectSingleController (
|
||||
if (SortedDriverBindingProtocols[Index] != NULL) {
|
||||
DriverBinding = SortedDriverBindingProtocols[Index];
|
||||
Status = DriverBinding->Supported(
|
||||
DriverBinding,
|
||||
DriverBinding,
|
||||
ControllerHandle,
|
||||
RemainingDevicePath
|
||||
);
|
||||
@@ -547,7 +547,7 @@ CoreConnectSingleController (
|
||||
//
|
||||
PERF_START (DriverBinding->DriverBindingHandle, DRIVERBINDING_START_TOK, NULL, 0);
|
||||
Status = DriverBinding->Start (
|
||||
DriverBinding,
|
||||
DriverBinding,
|
||||
ControllerHandle,
|
||||
RemainingDevicePath
|
||||
);
|
||||
@@ -574,7 +574,7 @@ CoreConnectSingleController (
|
||||
//
|
||||
if (OneStarted) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// If no drivers started and RemainingDevicePath is an End Device Path Node, then return EFI_SUCCESS
|
||||
@@ -583,7 +583,7 @@ CoreConnectSingleController (
|
||||
if (IsDevicePathEnd (RemainingDevicePath)) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Otherwise, no drivers were started on ControllerHandle, so return EFI_NOT_FOUND
|
||||
@@ -596,37 +596,37 @@ CoreConnectSingleController (
|
||||
/**
|
||||
Disonnects a controller from a driver
|
||||
|
||||
@param ControllerHandle ControllerHandle The handle of
|
||||
the controller from which
|
||||
driver(s) are to be
|
||||
disconnected.
|
||||
@param DriverImageHandle DriverImageHandle The driver to
|
||||
disconnect from ControllerHandle.
|
||||
@param ChildHandle ChildHandle The handle of the
|
||||
child to destroy.
|
||||
@param ControllerHandle ControllerHandle The handle of
|
||||
the controller from which
|
||||
driver(s) are to be
|
||||
disconnected.
|
||||
@param DriverImageHandle DriverImageHandle The driver to
|
||||
disconnect from ControllerHandle.
|
||||
@param ChildHandle ChildHandle The handle of the
|
||||
child to destroy.
|
||||
|
||||
@retval EFI_SUCCESS One or more drivers were
|
||||
disconnected from the controller.
|
||||
@retval EFI_SUCCESS On entry, no drivers are managing
|
||||
ControllerHandle.
|
||||
@retval EFI_SUCCESS DriverImageHandle is not NULL,
|
||||
and on entry DriverImageHandle is
|
||||
not managing ControllerHandle.
|
||||
@retval EFI_INVALID_PARAMETER ControllerHandle is not a valid
|
||||
EFI_HANDLE.
|
||||
@retval EFI_INVALID_PARAMETER DriverImageHandle is not NULL,
|
||||
and it is not a valid EFI_HANDLE.
|
||||
@retval EFI_INVALID_PARAMETER ChildHandle is not NULL, and it
|
||||
is not a valid EFI_HANDLE.
|
||||
@retval EFI_OUT_OF_RESOURCES There are not enough resources
|
||||
available to disconnect any
|
||||
drivers from ControllerHandle.
|
||||
@retval EFI_DEVICE_ERROR The controller could not be
|
||||
disconnected because of a device
|
||||
@retval EFI_SUCCESS One or more drivers were
|
||||
disconnected from the controller.
|
||||
@retval EFI_SUCCESS On entry, no drivers are managing
|
||||
ControllerHandle.
|
||||
@retval EFI_SUCCESS DriverImageHandle is not NULL,
|
||||
and on entry DriverImageHandle is
|
||||
not managing ControllerHandle.
|
||||
@retval EFI_INVALID_PARAMETER ControllerHandle is not a valid
|
||||
EFI_HANDLE.
|
||||
@retval EFI_INVALID_PARAMETER DriverImageHandle is not NULL,
|
||||
and it is not a valid EFI_HANDLE.
|
||||
@retval EFI_INVALID_PARAMETER ChildHandle is not NULL, and it
|
||||
is not a valid EFI_HANDLE.
|
||||
@retval EFI_OUT_OF_RESOURCES There are not enough resources
|
||||
available to disconnect any
|
||||
drivers from ControllerHandle.
|
||||
@retval EFI_DEVICE_ERROR The controller could not be
|
||||
disconnected because of a device
|
||||
error.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
CoreDisconnectController (
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
@@ -677,8 +677,8 @@ CoreDisconnectController (
|
||||
// Get list of drivers that are currently managing ControllerHandle
|
||||
//
|
||||
DriverImageHandleBuffer = NULL;
|
||||
DriverImageHandleCount = 1;
|
||||
|
||||
DriverImageHandleCount = 1;
|
||||
|
||||
if (DriverImageHandle == NULL) {
|
||||
//
|
||||
// Look at each protocol interface for a match
|
||||
@@ -688,8 +688,8 @@ CoreDisconnectController (
|
||||
CoreAcquireProtocolLock ();
|
||||
for (Link = Handle->Protocols.ForwardLink; Link != &Handle->Protocols; Link = Link->ForwardLink) {
|
||||
Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);
|
||||
for (ProtLink = Prot->OpenList.ForwardLink;
|
||||
ProtLink != &Prot->OpenList;
|
||||
for (ProtLink = Prot->OpenList.ForwardLink;
|
||||
ProtLink != &Prot->OpenList;
|
||||
ProtLink = ProtLink->ForwardLink) {
|
||||
OpenData = CR (ProtLink, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);
|
||||
if ((OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_DRIVER) != 0) {
|
||||
@@ -698,7 +698,7 @@ CoreDisconnectController (
|
||||
}
|
||||
}
|
||||
CoreReleaseProtocolLock ();
|
||||
|
||||
|
||||
//
|
||||
// If there are no drivers managing this controller, then return EFI_SUCCESS
|
||||
//
|
||||
@@ -718,8 +718,8 @@ CoreDisconnectController (
|
||||
CoreAcquireProtocolLock ();
|
||||
for (Link = Handle->Protocols.ForwardLink; Link != &Handle->Protocols; Link = Link->ForwardLink) {
|
||||
Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);
|
||||
for (ProtLink = Prot->OpenList.ForwardLink;
|
||||
ProtLink != &Prot->OpenList;
|
||||
for (ProtLink = Prot->OpenList.ForwardLink;
|
||||
ProtLink != &Prot->OpenList;
|
||||
ProtLink = ProtLink->ForwardLink) {
|
||||
OpenData = CR (ProtLink, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);
|
||||
if ((OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_DRIVER) != 0) {
|
||||
@@ -751,8 +751,8 @@ CoreDisconnectController (
|
||||
// Get the Driver Binding Protocol of the driver that is managing this controller
|
||||
//
|
||||
Status = CoreHandleProtocol (
|
||||
DriverImageHandle,
|
||||
&gEfiDriverBindingProtocolGuid,
|
||||
DriverImageHandle,
|
||||
&gEfiDriverBindingProtocolGuid,
|
||||
(VOID **)&DriverBinding
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
@@ -769,14 +769,14 @@ CoreDisconnectController (
|
||||
CoreAcquireProtocolLock ();
|
||||
for (Link = Handle->Protocols.ForwardLink; Link != &Handle->Protocols; Link = Link->ForwardLink) {
|
||||
Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);
|
||||
for (ProtLink = Prot->OpenList.ForwardLink;
|
||||
ProtLink != &Prot->OpenList;
|
||||
for (ProtLink = Prot->OpenList.ForwardLink;
|
||||
ProtLink != &Prot->OpenList;
|
||||
ProtLink = ProtLink->ForwardLink) {
|
||||
OpenData = CR (ProtLink, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);
|
||||
if (OpenData->AgentHandle == DriverImageHandle) {
|
||||
if ((OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER) != 0) {
|
||||
ChildBufferCount++;
|
||||
}
|
||||
}
|
||||
if ((OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_DRIVER) != 0) {
|
||||
DriverImageHandleValid = TRUE;
|
||||
}
|
||||
@@ -800,8 +800,8 @@ CoreDisconnectController (
|
||||
CoreAcquireProtocolLock ();
|
||||
for (Link = Handle->Protocols.ForwardLink; Link != &Handle->Protocols; Link = Link->ForwardLink) {
|
||||
Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);
|
||||
for (ProtLink = Prot->OpenList.ForwardLink;
|
||||
ProtLink != &Prot->OpenList;
|
||||
for (ProtLink = Prot->OpenList.ForwardLink;
|
||||
ProtLink != &Prot->OpenList;
|
||||
ProtLink = ProtLink->ForwardLink) {
|
||||
OpenData = CR (ProtLink, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);
|
||||
if ((OpenData->AgentHandle == DriverImageHandle) &&
|
||||
@@ -857,8 +857,8 @@ CoreDisconnectController (
|
||||
} else {
|
||||
Status = EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
Done:
|
||||
|
||||
Done:
|
||||
|
||||
if (DriverImageHandleBuffer != NULL) {
|
||||
CoreFreePool (DriverImageHandleBuffer);
|
||||
|
@@ -59,9 +59,9 @@ CoreReleaseProtocolLock (
|
||||
/**
|
||||
Check whether a handle is a valid EFI_HANDLE
|
||||
|
||||
@param UserHandle The handle to check
|
||||
@param UserHandle The handle to check
|
||||
|
||||
@retval EFI_INVALID_PARAMETER The handle is NULL or not a valid EFI_HANDLE.
|
||||
@retval EFI_INVALID_PARAMETER The handle is NULL or not a valid EFI_HANDLE.
|
||||
@retval EFI_SUCCESS The handle is valid EFI_HANDLE.
|
||||
|
||||
**/
|
||||
@@ -88,8 +88,8 @@ CoreValidateHandle (
|
||||
Finds the protocol entry for the requested protocol.
|
||||
The gProtocolDatabaseLock must be owned
|
||||
|
||||
@param Protocol The ID of the protocol
|
||||
@param Create Create a new entry if not found
|
||||
@param Protocol The ID of the protocol
|
||||
@param Create Create a new entry if not found
|
||||
|
||||
@return Protocol entry
|
||||
|
||||
@@ -111,8 +111,8 @@ CoreFindProtocolEntry (
|
||||
//
|
||||
|
||||
ProtEntry = NULL;
|
||||
for (Link = mProtocolDatabase.ForwardLink;
|
||||
Link != &mProtocolDatabase;
|
||||
for (Link = mProtocolDatabase.ForwardLink;
|
||||
Link != &mProtocolDatabase;
|
||||
Link = Link->ForwardLink) {
|
||||
|
||||
Item = CR(Link, PROTOCOL_ENTRY, AllEntries, PROTOCOL_ENTRY_SIGNATURE);
|
||||
@@ -128,12 +128,12 @@ CoreFindProtocolEntry (
|
||||
}
|
||||
|
||||
//
|
||||
// If the protocol entry was not found and Create is TRUE, then
|
||||
// If the protocol entry was not found and Create is TRUE, then
|
||||
// allocate a new entry
|
||||
//
|
||||
//
|
||||
if ((ProtEntry == NULL) && Create) {
|
||||
ProtEntry = CoreAllocateBootServicesPool (sizeof(PROTOCOL_ENTRY));
|
||||
|
||||
|
||||
if (ProtEntry != NULL) {
|
||||
//
|
||||
// Initialize new protocol entry structure
|
||||
@@ -160,9 +160,9 @@ CoreFindProtocolEntry (
|
||||
Note: This function doesn't do parameters checking, it's caller's responsibility
|
||||
to pass in valid parameters.
|
||||
|
||||
@param Handle The handle to search the protocol on
|
||||
@param Protocol GUID of the protocol
|
||||
@param Interface The interface for the protocol being searched
|
||||
@param Handle The handle to search the protocol on
|
||||
@param Protocol GUID of the protocol
|
||||
@param Interface The interface for the protocol being searched
|
||||
|
||||
@return Protocol instance (NULL: Not found)
|
||||
|
||||
@@ -212,8 +212,8 @@ CoreFindProtocolInterface (
|
||||
/**
|
||||
Removes an event from a register protocol notify list on a protocol.
|
||||
|
||||
@param Event The event to search for in the protocol
|
||||
database.
|
||||
@param Event The event to search for in the protocol
|
||||
database.
|
||||
|
||||
@return EFI_SUCCESS if the event was found and removed.
|
||||
@return EFI_NOT_FOUND if the event was not found in the protocl database.
|
||||
@@ -231,14 +231,14 @@ CoreUnregisterProtocolNotifyEvent (
|
||||
|
||||
CoreAcquireProtocolLock ();
|
||||
|
||||
for ( Link = mProtocolDatabase.ForwardLink;
|
||||
Link != &mProtocolDatabase;
|
||||
for ( Link = mProtocolDatabase.ForwardLink;
|
||||
Link != &mProtocolDatabase;
|
||||
Link = Link->ForwardLink) {
|
||||
|
||||
ProtEntry = CR(Link, PROTOCOL_ENTRY, AllEntries, PROTOCOL_ENTRY_SIGNATURE);
|
||||
|
||||
for ( NotifyLink = ProtEntry->Notify.ForwardLink;
|
||||
NotifyLink != &ProtEntry->Notify;
|
||||
for ( NotifyLink = ProtEntry->Notify.ForwardLink;
|
||||
NotifyLink != &ProtEntry->Notify;
|
||||
NotifyLink = NotifyLink->ForwardLink) {
|
||||
|
||||
ProtNotify = CR(NotifyLink, PROTOCOL_NOTIFY, Link, PROTOCOL_NOTIFY_SIGNATURE);
|
||||
@@ -261,8 +261,8 @@ CoreUnregisterProtocolNotifyEvent (
|
||||
/**
|
||||
Removes all the events in the protocol database that match Event.
|
||||
|
||||
@param Event The event to search for in the protocol
|
||||
database.
|
||||
@param Event The event to search for in the protocol
|
||||
database.
|
||||
|
||||
@return EFI_SUCCESS when done searching the entire database.
|
||||
|
||||
@@ -288,12 +288,12 @@ CoreUnregisterProtocolNotify (
|
||||
Wrapper function to CoreInstallProtocolInterfaceNotify. This is the public API which
|
||||
Calls the private one which contains a BOOLEAN parameter for notifications
|
||||
|
||||
@param UserHandle The handle to install the protocol handler on,
|
||||
or NULL if a new handle is to be allocated
|
||||
@param Protocol The protocol to add to the handle
|
||||
@param InterfaceType Indicates whether Interface is supplied in
|
||||
native form.
|
||||
@param Interface The interface for the protocol being added
|
||||
@param UserHandle The handle to install the protocol handler on,
|
||||
or NULL if a new handle is to be allocated
|
||||
@param Protocol The protocol to add to the handle
|
||||
@param InterfaceType Indicates whether Interface is supplied in
|
||||
native form.
|
||||
@param Interface The interface for the protocol being added
|
||||
|
||||
@return Status code
|
||||
|
||||
@@ -308,10 +308,10 @@ CoreInstallProtocolInterface (
|
||||
)
|
||||
{
|
||||
return CoreInstallProtocolInterfaceNotify (
|
||||
UserHandle,
|
||||
Protocol,
|
||||
InterfaceType,
|
||||
Interface,
|
||||
UserHandle,
|
||||
Protocol,
|
||||
InterfaceType,
|
||||
Interface,
|
||||
TRUE
|
||||
);
|
||||
}
|
||||
@@ -320,17 +320,17 @@ CoreInstallProtocolInterface (
|
||||
/**
|
||||
Installs a protocol interface into the boot services environment.
|
||||
|
||||
@param UserHandle The handle to install the protocol handler on,
|
||||
or NULL if a new handle is to be allocated
|
||||
@param Protocol The protocol to add to the handle
|
||||
@param InterfaceType Indicates whether Interface is supplied in
|
||||
native form.
|
||||
@param Interface The interface for the protocol being added
|
||||
@param Notify indicates whether notify the notification list
|
||||
for this protocol
|
||||
@param UserHandle The handle to install the protocol handler on,
|
||||
or NULL if a new handle is to be allocated
|
||||
@param Protocol The protocol to add to the handle
|
||||
@param InterfaceType Indicates whether Interface is supplied in
|
||||
native form.
|
||||
@param Interface The interface for the protocol being added
|
||||
@param Notify indicates whether notify the notification list
|
||||
for this protocol
|
||||
|
||||
@retval EFI_INVALID_PARAMETER Invalid parameter
|
||||
@retval EFI_OUT_OF_RESOURCES No enough buffer to allocate
|
||||
@retval EFI_INVALID_PARAMETER Invalid parameter
|
||||
@retval EFI_OUT_OF_RESOURCES No enough buffer to allocate
|
||||
@retval EFI_SUCCESS Protocol interface successfully installed
|
||||
|
||||
**/
|
||||
@@ -380,7 +380,7 @@ CoreInstallProtocolInterfaceNotify (
|
||||
}
|
||||
|
||||
//
|
||||
// Lock the protocol database
|
||||
// Lock the protocol database
|
||||
//
|
||||
CoreAcquireProtocolLock ();
|
||||
|
||||
@@ -429,7 +429,7 @@ CoreInstallProtocolInterfaceNotify (
|
||||
// in the system
|
||||
//
|
||||
InsertTailList (&gHandleList, &Handle->AllHandles);
|
||||
}
|
||||
}
|
||||
|
||||
Status = CoreValidateHandle (Handle);
|
||||
if (EFI_ERROR (Status)) {
|
||||
@@ -456,19 +456,19 @@ CoreInstallProtocolInterfaceNotify (
|
||||
Prot->OpenListCount = 0;
|
||||
|
||||
//
|
||||
// Add this protocol interface to the head of the supported
|
||||
// Add this protocol interface to the head of the supported
|
||||
// protocol list for this handle
|
||||
//
|
||||
InsertHeadList (&Handle->Protocols, &Prot->Link);
|
||||
|
||||
//
|
||||
// Add this protocol interface to the tail of the
|
||||
// Add this protocol interface to the tail of the
|
||||
// protocol entry
|
||||
//
|
||||
//
|
||||
InsertTailList (&ProtEntry->Protocols, &Prot->ByProtocol);
|
||||
|
||||
//
|
||||
// Notify the notification list for this protocol
|
||||
// Notify the notification list for this protocol
|
||||
//
|
||||
if (Notify) {
|
||||
CoreNotifyProtocolEntry (ProtEntry);
|
||||
@@ -506,14 +506,14 @@ Done:
|
||||
occures all the protocols added by this function are removed. This is
|
||||
basically a lib function to save space.
|
||||
|
||||
@param Handle The handle to install the protocol handlers on,
|
||||
or NULL if a new handle is to be allocated
|
||||
@param ... EFI_GUID followed by protocol instance. A NULL
|
||||
terminates the list. The pairs are the
|
||||
arguments to InstallProtocolInterface(). All the
|
||||
protocols are added to Handle.
|
||||
@param Handle The handle to install the protocol handlers on,
|
||||
or NULL if a new handle is to be allocated
|
||||
@param ... EFI_GUID followed by protocol instance. A NULL
|
||||
terminates the list. The pairs are the
|
||||
arguments to InstallProtocolInterface(). All the
|
||||
protocols are added to Handle.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER Handle is NULL.
|
||||
@retval EFI_INVALID_PARAMETER Handle is NULL.
|
||||
@retval EFI_SUCCESS Protocol interfaces successfully installed.
|
||||
|
||||
**/
|
||||
@@ -533,14 +533,14 @@ CoreInstallMultipleProtocolInterfaces (
|
||||
EFI_HANDLE OldHandle;
|
||||
EFI_HANDLE DeviceHandle;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
|
||||
|
||||
if (Handle == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Syncronize with notifcations.
|
||||
//
|
||||
// Syncronize with notifcations.
|
||||
//
|
||||
OldTpl = CoreRaiseTpl (TPL_NOTIFY);
|
||||
OldHandle = *Handle;
|
||||
|
||||
@@ -571,13 +571,13 @@ CoreInstallMultipleProtocolInterfaces (
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Install it
|
||||
//
|
||||
Status = CoreInstallProtocolInterface (Handle, Protocol, EFI_NATIVE_INTERFACE, Interface);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// If there was an error, remove all the interfaces that were installed without any errors
|
||||
//
|
||||
@@ -590,7 +590,7 @@ CoreInstallMultipleProtocolInterfaces (
|
||||
Protocol = VA_ARG (Args, EFI_GUID *);
|
||||
Interface = VA_ARG (Args, VOID *);
|
||||
CoreUninstallProtocolInterface (*Handle, Protocol, Interface);
|
||||
}
|
||||
}
|
||||
*Handle = OldHandle;
|
||||
}
|
||||
|
||||
@@ -608,11 +608,11 @@ CoreInstallMultipleProtocolInterfaces (
|
||||
Note: This function doesn't do parameters checking, it's caller's responsibility
|
||||
to pass in valid parameters.
|
||||
|
||||
@param UserHandle The handle on which the protocol is installed
|
||||
@param Prot The protocol to disconnect drivers from
|
||||
@param UserHandle The handle on which the protocol is installed
|
||||
@param Prot The protocol to disconnect drivers from
|
||||
|
||||
@retval EFI_SUCCESS Drivers using the protocol interface are all
|
||||
disconnected
|
||||
@retval EFI_SUCCESS Drivers using the protocol interface are all
|
||||
disconnected
|
||||
@retval EFI_ACCESS_DENIED Failed to disconnect one or all of the drivers
|
||||
|
||||
**/
|
||||
@@ -628,7 +628,7 @@ CoreDisconnectControllersUsingProtocolInterface (
|
||||
OPEN_PROTOCOL_DATA *OpenData;
|
||||
|
||||
Status = EFI_SUCCESS;
|
||||
|
||||
|
||||
//
|
||||
// Attempt to disconnect all drivers from this protocol interface
|
||||
//
|
||||
@@ -661,10 +661,10 @@ CoreDisconnectControllersUsingProtocolInterface (
|
||||
(Link != &Prot->OpenList) && !ItemFound;
|
||||
Link = Link->ForwardLink ) {
|
||||
OpenData = CR (Link, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);
|
||||
if (OpenData->Attributes &
|
||||
if (OpenData->Attributes &
|
||||
(EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL | EFI_OPEN_PROTOCOL_GET_PROTOCOL | EFI_OPEN_PROTOCOL_TEST_PROTOCOL)) {
|
||||
ItemFound = TRUE;
|
||||
RemoveEntryList (&OpenData->Link);
|
||||
RemoveEntryList (&OpenData->Link);
|
||||
Prot->OpenListCount--;
|
||||
CoreFreePool (OpenData);
|
||||
}
|
||||
@@ -692,11 +692,11 @@ CoreDisconnectControllersUsingProtocolInterface (
|
||||
If the last protocol interface is remove from the handle, the
|
||||
handle is freed.
|
||||
|
||||
@param UserHandle The handle to remove the protocol handler from
|
||||
@param Protocol The protocol, of protocol:interface, to remove
|
||||
@param Interface The interface, of protocol:interface, to remove
|
||||
@param UserHandle The handle to remove the protocol handler from
|
||||
@param Protocol The protocol, of protocol:interface, to remove
|
||||
@param Interface The interface, of protocol:interface, to remove
|
||||
|
||||
@retval EFI_INVALID_PARAMETER Protocol is NULL.
|
||||
@retval EFI_INVALID_PARAMETER Protocol is NULL.
|
||||
@retval EFI_SUCCESS Protocol interface successfully uninstalled.
|
||||
|
||||
**/
|
||||
@@ -768,7 +768,7 @@ CoreUninstallProtocolInterface (
|
||||
//
|
||||
gHandleDatabaseKey++;
|
||||
Handle->Key = gHandleDatabaseKey;
|
||||
|
||||
|
||||
//
|
||||
// Remove the protocol interface from the handle
|
||||
//
|
||||
@@ -791,7 +791,7 @@ CoreUninstallProtocolInterface (
|
||||
CoreFreePool (Handle);
|
||||
}
|
||||
|
||||
Done:
|
||||
Done:
|
||||
//
|
||||
// Done, unlock the database and return
|
||||
//
|
||||
@@ -807,11 +807,11 @@ Done:
|
||||
This function calls UnisatllProtocolInterface() in a loop. This is
|
||||
basically a lib function to save space.
|
||||
|
||||
@param Handle The handle to uninstall the protocol
|
||||
@param ... EFI_GUID followed by protocol instance. A NULL
|
||||
terminates the list. The pairs are the
|
||||
arguments to UninstallProtocolInterface(). All
|
||||
the protocols are added to Handle.
|
||||
@param Handle The handle to uninstall the protocol
|
||||
@param ... EFI_GUID followed by protocol instance. A NULL
|
||||
terminates the list. The pairs are the
|
||||
arguments to UninstallProtocolInterface(). All
|
||||
the protocols are added to Handle.
|
||||
|
||||
@return Status code
|
||||
|
||||
@@ -860,18 +860,18 @@ CoreUninstallMultipleProtocolInterfaces (
|
||||
Protocol = VA_ARG(Args, EFI_GUID *);
|
||||
Interface = VA_ARG(Args, VOID *);
|
||||
CoreInstallProtocolInterface (&Handle, Protocol, EFI_NATIVE_INTERFACE, Interface);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Locate a certain GUID protocol interface in a Handle's protocols.
|
||||
|
||||
@param UserHandle The handle to obtain the protocol interface on
|
||||
@param Protocol The GUID of the protocol
|
||||
@param UserHandle The handle to obtain the protocol interface on
|
||||
@param Protocol The GUID of the protocol
|
||||
|
||||
@return The requested protocol interface for the handle
|
||||
|
||||
@@ -892,7 +892,7 @@ CoreGetProtocolInterface (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
Handle = (IHANDLE *)UserHandle;
|
||||
|
||||
//
|
||||
@@ -913,10 +913,10 @@ CoreGetProtocolInterface (
|
||||
/**
|
||||
Queries a handle to determine if it supports a specified protocol.
|
||||
|
||||
@param UserHandle The handle being queried.
|
||||
@param Protocol The published unique identifier of the protocol.
|
||||
@param Interface Supplies the address where a pointer to the
|
||||
corresponding Protocol Interface is returned.
|
||||
@param UserHandle The handle being queried.
|
||||
@param Protocol The published unique identifier of the protocol.
|
||||
@param Interface Supplies the address where a pointer to the
|
||||
corresponding Protocol Interface is returned.
|
||||
|
||||
@return The requested protocol interface for the handle
|
||||
|
||||
@@ -930,11 +930,11 @@ CoreHandleProtocol (
|
||||
)
|
||||
{
|
||||
return CoreOpenProtocol (
|
||||
UserHandle,
|
||||
Protocol,
|
||||
Interface,
|
||||
gDxeCoreImageHandle,
|
||||
NULL,
|
||||
UserHandle,
|
||||
Protocol,
|
||||
Interface,
|
||||
gDxeCoreImageHandle,
|
||||
NULL,
|
||||
EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL
|
||||
);
|
||||
}
|
||||
@@ -946,18 +946,18 @@ CoreHandleProtocol (
|
||||
invokes it to obtain the protocol interface. Usage information
|
||||
is registered in the protocol data base.
|
||||
|
||||
@param UserHandle The handle to obtain the protocol interface on
|
||||
@param Protocol The ID of the protocol
|
||||
@param Interface The location to return the protocol interface
|
||||
@param ImageHandle The handle of the Image that is opening the
|
||||
protocol interface specified by Protocol and
|
||||
Interface.
|
||||
@param ControllerHandle The controller handle that is requiring this
|
||||
interface.
|
||||
@param Attributes The open mode of the protocol interface
|
||||
specified by Handle and Protocol.
|
||||
@param UserHandle The handle to obtain the protocol interface on
|
||||
@param Protocol The ID of the protocol
|
||||
@param Interface The location to return the protocol interface
|
||||
@param ImageHandle The handle of the Image that is opening the
|
||||
protocol interface specified by Protocol and
|
||||
Interface.
|
||||
@param ControllerHandle The controller handle that is requiring this
|
||||
interface.
|
||||
@param Attributes The open mode of the protocol interface
|
||||
specified by Handle and Protocol.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER Protocol is NULL.
|
||||
@retval EFI_INVALID_PARAMETER Protocol is NULL.
|
||||
@retval EFI_SUCCESS Get the protocol interface.
|
||||
|
||||
**/
|
||||
@@ -998,7 +998,7 @@ CoreOpenProtocol (
|
||||
*Interface = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Check for invalid UserHandle
|
||||
//
|
||||
@@ -1065,7 +1065,7 @@ CoreOpenProtocol (
|
||||
|
||||
//
|
||||
// This is the protocol interface entry for this protocol
|
||||
//
|
||||
//
|
||||
if (Attributes != EFI_OPEN_PROTOCOL_TEST_PROTOCOL) {
|
||||
*Interface = Prot->Interface;
|
||||
}
|
||||
@@ -1075,7 +1075,7 @@ CoreOpenProtocol (
|
||||
Exclusive = FALSE;
|
||||
for ( Link = Prot->OpenList.ForwardLink; Link != &Prot->OpenList; Link = Link->ForwardLink) {
|
||||
OpenData = CR (Link, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);
|
||||
ExactMatch = (BOOLEAN)((OpenData->AgentHandle == ImageHandle) &&
|
||||
ExactMatch = (BOOLEAN)((OpenData->AgentHandle == ImageHandle) &&
|
||||
(OpenData->Attributes == Attributes) &&
|
||||
(OpenData->ControllerHandle == ControllerHandle));
|
||||
if (OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_DRIVER) {
|
||||
@@ -1131,7 +1131,7 @@ CoreOpenProtocol (
|
||||
}
|
||||
}
|
||||
} while (Disconnect);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER :
|
||||
case EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL :
|
||||
@@ -1174,25 +1174,25 @@ Done:
|
||||
/**
|
||||
Closes a protocol on a handle that was opened using OpenProtocol().
|
||||
|
||||
@param UserHandle The handle for the protocol interface that was
|
||||
previously opened with OpenProtocol(), and is
|
||||
now being closed.
|
||||
@param Protocol The published unique identifier of the protocol.
|
||||
It is the caller's responsibility to pass in a
|
||||
valid GUID.
|
||||
@param AgentHandle The handle of the agent that is closing the
|
||||
protocol interface.
|
||||
@param ControllerHandle If the agent that opened a protocol is a driver
|
||||
that follows the EFI Driver Model, then this
|
||||
parameter is the controller handle that required
|
||||
the protocol interface. If the agent does not
|
||||
follow the EFI Driver Model, then this parameter
|
||||
is optional and may be NULL.
|
||||
@param UserHandle The handle for the protocol interface that was
|
||||
previously opened with OpenProtocol(), and is
|
||||
now being closed.
|
||||
@param Protocol The published unique identifier of the protocol.
|
||||
It is the caller's responsibility to pass in a
|
||||
valid GUID.
|
||||
@param AgentHandle The handle of the agent that is closing the
|
||||
protocol interface.
|
||||
@param ControllerHandle If the agent that opened a protocol is a driver
|
||||
that follows the EFI Driver Model, then this
|
||||
parameter is the controller handle that required
|
||||
the protocol interface. If the agent does not
|
||||
follow the EFI Driver Model, then this parameter
|
||||
is optional and may be NULL.
|
||||
|
||||
@retval EFI_SUCCESS The protocol instance was closed.
|
||||
@retval EFI_INVALID_PARAMETER Handle, AgentHandle or ControllerHandle is not a
|
||||
valid EFI_HANDLE.
|
||||
@retval EFI_NOT_FOUND Can not find the specified protocol or
|
||||
@retval EFI_SUCCESS The protocol instance was closed.
|
||||
@retval EFI_INVALID_PARAMETER Handle, AgentHandle or ControllerHandle is not a
|
||||
valid EFI_HANDLE.
|
||||
@retval EFI_NOT_FOUND Can not find the specified protocol or
|
||||
AgentHandle.
|
||||
|
||||
**/
|
||||
@@ -1202,7 +1202,7 @@ CoreCloseProtocol (
|
||||
IN EFI_HANDLE UserHandle,
|
||||
IN EFI_GUID *Protocol,
|
||||
IN EFI_HANDLE AgentHandle,
|
||||
IN EFI_HANDLE ControllerHandle
|
||||
IN EFI_HANDLE ControllerHandle
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -1253,7 +1253,7 @@ CoreCloseProtocol (
|
||||
OpenData = CR (Link, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);
|
||||
Link = Link->ForwardLink;
|
||||
if ((OpenData->AgentHandle == AgentHandle) && (OpenData->ControllerHandle == ControllerHandle)) {
|
||||
RemoveEntryList (&OpenData->Link);
|
||||
RemoveEntryList (&OpenData->Link);
|
||||
ProtocolInterface->OpenListCount--;
|
||||
CoreFreePool (OpenData);
|
||||
Status = EFI_SUCCESS;
|
||||
@@ -1274,11 +1274,11 @@ Done:
|
||||
/**
|
||||
Return information about Opened protocols in the system
|
||||
|
||||
@param UserHandle The handle to close the protocol interface on
|
||||
@param Protocol The ID of the protocol
|
||||
@param EntryBuffer A pointer to a buffer of open protocol
|
||||
information in the form of
|
||||
EFI_OPEN_PROTOCOL_INFORMATION_ENTRY structures.
|
||||
@param UserHandle The handle to close the protocol interface on
|
||||
@param Protocol The ID of the protocol
|
||||
@param EntryBuffer A pointer to a buffer of open protocol
|
||||
information in the form of
|
||||
EFI_OPEN_PROTOCOL_INFORMATION_ENTRY structures.
|
||||
@param EntryCount Number of EntryBuffer entries
|
||||
|
||||
**/
|
||||
@@ -1319,11 +1319,11 @@ CoreOpenProtocolInformation (
|
||||
//
|
||||
// Count the number of Open Entries
|
||||
//
|
||||
for ( Link = ProtocolInterface->OpenList.ForwardLink, Count = 0;
|
||||
for ( Link = ProtocolInterface->OpenList.ForwardLink, Count = 0;
|
||||
(Link != &ProtocolInterface->OpenList) ;
|
||||
Link = Link->ForwardLink ) {
|
||||
Count++;
|
||||
}
|
||||
}
|
||||
|
||||
ASSERT (Count == ProtocolInterface->OpenListCount);
|
||||
|
||||
@@ -1340,7 +1340,7 @@ CoreOpenProtocolInformation (
|
||||
}
|
||||
|
||||
Status = EFI_SUCCESS;
|
||||
for ( Link = ProtocolInterface->OpenList.ForwardLink, Count = 0;
|
||||
for ( Link = ProtocolInterface->OpenList.ForwardLink, Count = 0;
|
||||
(Link != &ProtocolInterface->OpenList);
|
||||
Link = Link->ForwardLink, Count++ ) {
|
||||
OpenData = CR (Link, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);
|
||||
@@ -1349,11 +1349,11 @@ CoreOpenProtocolInformation (
|
||||
Buffer[Count].ControllerHandle = OpenData->ControllerHandle;
|
||||
Buffer[Count].Attributes = OpenData->Attributes;
|
||||
Buffer[Count].OpenCount = OpenData->OpenCount;
|
||||
}
|
||||
}
|
||||
|
||||
*EntryBuffer = Buffer;
|
||||
*EntryCount = Count;
|
||||
|
||||
|
||||
Done:
|
||||
//
|
||||
// Done. Release the database lock are return
|
||||
@@ -1369,22 +1369,22 @@ Done:
|
||||
Retrieves the list of protocol interface GUIDs that are installed on a handle in a buffer allocated
|
||||
from pool.
|
||||
|
||||
@param UserHandle The handle from which to retrieve the list of
|
||||
protocol interface GUIDs.
|
||||
@param ProtocolBuffer A pointer to the list of protocol interface GUID
|
||||
pointers that are installed on Handle.
|
||||
@param ProtocolBufferCount A pointer to the number of GUID pointers present
|
||||
in ProtocolBuffer.
|
||||
@param UserHandle The handle from which to retrieve the list of
|
||||
protocol interface GUIDs.
|
||||
@param ProtocolBuffer A pointer to the list of protocol interface GUID
|
||||
pointers that are installed on Handle.
|
||||
@param ProtocolBufferCount A pointer to the number of GUID pointers present
|
||||
in ProtocolBuffer.
|
||||
|
||||
@retval EFI_SUCCESS The list of protocol interface GUIDs installed
|
||||
on Handle was returned in ProtocolBuffer. The
|
||||
number of protocol interface GUIDs was returned
|
||||
in ProtocolBufferCount.
|
||||
@retval EFI_INVALID_PARAMETER Handle is NULL.
|
||||
@retval EFI_INVALID_PARAMETER Handle is not a valid EFI_HANDLE.
|
||||
@retval EFI_INVALID_PARAMETER ProtocolBuffer is NULL.
|
||||
@retval EFI_INVALID_PARAMETER ProtocolBufferCount is NULL.
|
||||
@retval EFI_OUT_OF_RESOURCES There is not enough pool memory to store the
|
||||
@retval EFI_SUCCESS The list of protocol interface GUIDs installed
|
||||
on Handle was returned in ProtocolBuffer. The
|
||||
number of protocol interface GUIDs was returned
|
||||
in ProtocolBufferCount.
|
||||
@retval EFI_INVALID_PARAMETER Handle is NULL.
|
||||
@retval EFI_INVALID_PARAMETER Handle is not a valid EFI_HANDLE.
|
||||
@retval EFI_INVALID_PARAMETER ProtocolBuffer is NULL.
|
||||
@retval EFI_INVALID_PARAMETER ProtocolBufferCount is NULL.
|
||||
@retval EFI_OUT_OF_RESOURCES There is not enough pool memory to store the
|
||||
results.
|
||||
|
||||
**/
|
||||
@@ -1423,7 +1423,7 @@ CoreProtocolsPerHandle (
|
||||
ProtocolCount = 0;
|
||||
|
||||
CoreAcquireProtocolLock ();
|
||||
|
||||
|
||||
for (Link = Handle->Protocols.ForwardLink; Link != &Handle->Protocols; Link = Link->ForwardLink) {
|
||||
ProtocolCount++;
|
||||
}
|
||||
@@ -1446,7 +1446,7 @@ CoreProtocolsPerHandle (
|
||||
*ProtocolBufferCount = ProtocolCount;
|
||||
|
||||
for ( Link = Handle->Protocols.ForwardLink, ProtocolCount = 0;
|
||||
Link != &Handle->Protocols;
|
||||
Link != &Handle->Protocols;
|
||||
Link = Link->ForwardLink, ProtocolCount++) {
|
||||
Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);
|
||||
Buffer[ProtocolCount] = &(Prot->Protocol->ProtocolID);
|
||||
@@ -1480,7 +1480,7 @@ CoreGetHandleDatabaseKey (
|
||||
/**
|
||||
Go connect any handles that were created or modified while a image executed.
|
||||
|
||||
@param Key The Key to show that the handle has been
|
||||
@param Key The Key to show that the handle has been
|
||||
created/modified
|
||||
|
||||
**/
|
||||
@@ -1512,7 +1512,7 @@ CoreConnectHandlesByKey (
|
||||
CoreReleaseProtocolLock ();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
for (Link = gHandleList.ForwardLink, Count = 0; Link != &gHandleList; Link = Link->ForwardLink) {
|
||||
Handle = CR (Link, IHANDLE, AllHandles, EFI_HANDLE_SIGNATURE);
|
||||
if (Handle->Key > Key) {
|
||||
@@ -1531,6 +1531,6 @@ CoreConnectHandlesByKey (
|
||||
for (Index = 0; Index < Count; Index++) {
|
||||
CoreConnectController (HandleBuffer[Index], NULL, NULL, TRUE);
|
||||
}
|
||||
|
||||
|
||||
CoreFreePool(HandleBuffer);
|
||||
}
|
||||
|
@@ -30,7 +30,7 @@ typedef struct {
|
||||
PROTOCOL_ENTRY *ProtEntry;
|
||||
} LOCATE_POSITION;
|
||||
|
||||
typedef
|
||||
typedef
|
||||
IHANDLE *
|
||||
(* CORE_GET_NEXT) (
|
||||
IN OUT LOCATE_POSITION *Position,
|
||||
@@ -40,13 +40,12 @@ IHANDLE *
|
||||
/**
|
||||
Routine to get the next Handle, when you are searching for all handles.
|
||||
|
||||
@param Position Information about which Handle to seach for.
|
||||
@param Interface Return the interface structure for the matching
|
||||
protocol.
|
||||
@param Position Information about which Handle to seach for.
|
||||
@param Interface Return the interface structure for the matching
|
||||
protocol.
|
||||
|
||||
@retval IHANDLE An IHANDLE is returned if the next Position is
|
||||
not the end of the list. A NULL_HANDLE is
|
||||
returned if it's the end of the list.
|
||||
@return An pointer to IHANDLE if the next Position is not the end of the list.
|
||||
Otherwise,NULL_HANDLE is returned.
|
||||
|
||||
**/
|
||||
IHANDLE *
|
||||
@@ -59,13 +58,12 @@ CoreGetNextLocateAllHandles (
|
||||
Routine to get the next Handle, when you are searching for register protocol
|
||||
notifies.
|
||||
|
||||
@param Position Information about which Handle to seach for.
|
||||
@param Interface Return the interface structure for the matching
|
||||
protocol.
|
||||
@param Position Information about which Handle to seach for.
|
||||
@param Interface Return the interface structure for the matching
|
||||
protocol.
|
||||
|
||||
@retval IHANDLE An IHANDLE is returned if the next Position is
|
||||
not the end of the list. A NULL_HANDLE is
|
||||
returned if it's the end of the list.
|
||||
@return An pointer to IHANDLE if the next Position is not the end of the list.
|
||||
Otherwise,NULL_HANDLE is returned.
|
||||
|
||||
**/
|
||||
IHANDLE *
|
||||
@@ -77,13 +75,12 @@ CoreGetNextLocateByRegisterNotify (
|
||||
/**
|
||||
Routine to get the next Handle, when you are searching for a given protocol.
|
||||
|
||||
@param Position Information about which Handle to seach for.
|
||||
@param Interface Return the interface structure for the matching
|
||||
protocol.
|
||||
@param Position Information about which Handle to seach for.
|
||||
@param Interface Return the interface structure for the matching
|
||||
protocol.
|
||||
|
||||
@retval IHANDLE An IHANDLE is returned if the next Position is
|
||||
not the end of the list. A NULL_HANDLE is
|
||||
returned if it's the end of the list.
|
||||
@return An pointer to IHANDLE if the next Position is not the end of the list.
|
||||
Otherwise,NULL_HANDLE is returned.
|
||||
|
||||
**/
|
||||
IHANDLE *
|
||||
@@ -96,18 +93,18 @@ CoreGetNextLocateByProtocol (
|
||||
/**
|
||||
Locates the requested handle(s) and returns them in Buffer.
|
||||
|
||||
@param SearchType The type of search to perform to locate the
|
||||
handles
|
||||
@param Protocol The protocol to search for
|
||||
@param SearchKey Dependant on SearchType
|
||||
@param BufferSize On input the size of Buffer. On output the
|
||||
size of data returned.
|
||||
@param Buffer The buffer to return the results in
|
||||
@param SearchType The type of search to perform to locate the
|
||||
handles
|
||||
@param Protocol The protocol to search for
|
||||
@param SearchKey Dependant on SearchType
|
||||
@param BufferSize On input the size of Buffer. On output the
|
||||
size of data returned.
|
||||
@param Buffer The buffer to return the results in
|
||||
|
||||
@retval EFI_BUFFER_TOO_SMALL Buffer too small, required buffer size is
|
||||
returned in BufferSize.
|
||||
@retval EFI_INVALID_PARAMETER Invalid parameter
|
||||
@retval EFI_SUCCESS Successfully found the requested handle(s) and
|
||||
@retval EFI_BUFFER_TOO_SMALL Buffer too small, required buffer size is
|
||||
returned in BufferSize.
|
||||
@retval EFI_INVALID_PARAMETER Invalid parameter
|
||||
@retval EFI_SUCCESS Successfully found the requested handle(s) and
|
||||
returns them in Buffer.
|
||||
|
||||
**/
|
||||
@@ -129,15 +126,15 @@ CoreLocateHandle (
|
||||
IHANDLE *Handle;
|
||||
IHANDLE **ResultBuffer;
|
||||
VOID *Interface;
|
||||
|
||||
|
||||
if (BufferSize == NULL) {
|
||||
Status = EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
|
||||
if ((*BufferSize > 0) && (Buffer == NULL)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
|
||||
GetNext = NULL;
|
||||
|
||||
//
|
||||
@@ -160,11 +157,11 @@ CoreLocateHandle (
|
||||
// Get the search function based on type
|
||||
//
|
||||
switch (SearchType) {
|
||||
case AllHandles:
|
||||
GetNext = CoreGetNextLocateAllHandles;
|
||||
case AllHandles:
|
||||
GetNext = CoreGetNextLocateAllHandles;
|
||||
break;
|
||||
|
||||
case ByRegisterNotify:
|
||||
case ByRegisterNotify:
|
||||
//
|
||||
// Must have SearchKey for locate ByRegisterNotify
|
||||
//
|
||||
@@ -172,10 +169,10 @@ CoreLocateHandle (
|
||||
Status = EFI_INVALID_PARAMETER;
|
||||
break;
|
||||
}
|
||||
GetNext = CoreGetNextLocateByRegisterNotify;
|
||||
GetNext = CoreGetNextLocateByRegisterNotify;
|
||||
break;
|
||||
|
||||
case ByProtocol:
|
||||
case ByProtocol:
|
||||
GetNext = CoreGetNextLocateByProtocol;
|
||||
if (Protocol == NULL) {
|
||||
Status = EFI_INVALID_PARAMETER;
|
||||
@@ -239,15 +236,15 @@ CoreLocateHandle (
|
||||
//
|
||||
if (ResultSize > *BufferSize) {
|
||||
Status = EFI_BUFFER_TOO_SMALL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
*BufferSize = ResultSize;
|
||||
|
||||
if (SearchType == ByRegisterNotify && !EFI_ERROR(Status)) {
|
||||
//
|
||||
// If this is a search by register notify and a handle was
|
||||
// returned, update the register notification position
|
||||
//
|
||||
//
|
||||
ProtNotify = SearchKey;
|
||||
ProtNotify->Position = ProtNotify->Position->ForwardLink;
|
||||
}
|
||||
@@ -262,9 +259,9 @@ CoreLocateHandle (
|
||||
/**
|
||||
Routine to get the next Handle, when you are searching for all handles.
|
||||
|
||||
@param Position Information about which Handle to seach for.
|
||||
@param Interface Return the interface structure for the matching
|
||||
protocol.
|
||||
@param Position Information about which Handle to seach for.
|
||||
@param Interface Return the interface structure for the matching
|
||||
protocol.
|
||||
|
||||
@return An pointer to IHANDLE if the next Position is not the end of the list.
|
||||
Otherwise,NULL_HANDLE is returned.
|
||||
@@ -301,9 +298,9 @@ CoreGetNextLocateAllHandles (
|
||||
Routine to get the next Handle, when you are searching for register protocol
|
||||
notifies.
|
||||
|
||||
@param Position Information about which Handle to seach for.
|
||||
@param Interface Return the interface structure for the matching
|
||||
protocol.
|
||||
@param Position Information about which Handle to seach for.
|
||||
@param Interface Return the interface structure for the matching
|
||||
protocol.
|
||||
|
||||
@return An pointer to IHANDLE if the next Position is not the end of the list.
|
||||
Otherwise,NULL_HANDLE is returned.
|
||||
@@ -318,7 +315,7 @@ CoreGetNextLocateByRegisterNotify (
|
||||
IHANDLE *Handle;
|
||||
PROTOCOL_NOTIFY *ProtNotify;
|
||||
PROTOCOL_INTERFACE *Prot;
|
||||
LIST_ENTRY *Link;
|
||||
LIST_ENTRY *Link;
|
||||
|
||||
Handle = NULL_HANDLE;
|
||||
*Interface = NULL;
|
||||
@@ -339,7 +336,7 @@ CoreGetNextLocateByRegisterNotify (
|
||||
Prot = CR (Link, PROTOCOL_INTERFACE, ByProtocol, PROTOCOL_INTERFACE_SIGNATURE);
|
||||
Handle = (IHANDLE *) Prot->Handle;
|
||||
*Interface = Prot->Interface;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Handle;
|
||||
@@ -349,9 +346,9 @@ CoreGetNextLocateByRegisterNotify (
|
||||
/**
|
||||
Routine to get the next Handle, when you are searching for a given protocol.
|
||||
|
||||
@param Position Information about which Handle to seach for.
|
||||
@param Interface Return the interface structure for the matching
|
||||
protocol.
|
||||
@param Position Information about which Handle to seach for.
|
||||
@param Interface Return the interface structure for the matching
|
||||
protocol.
|
||||
|
||||
@return An pointer to IHANDLE if the next Position is not the end of the list.
|
||||
Otherwise,NULL_HANDLE is returned.
|
||||
@@ -366,7 +363,7 @@ CoreGetNextLocateByProtocol (
|
||||
IHANDLE *Handle;
|
||||
LIST_ENTRY *Link;
|
||||
PROTOCOL_INTERFACE *Prot;
|
||||
|
||||
|
||||
Handle = NULL_HANDLE;
|
||||
*Interface = NULL;
|
||||
for (; ;) {
|
||||
@@ -392,7 +389,7 @@ CoreGetNextLocateByProtocol (
|
||||
*Interface = Prot->Interface;
|
||||
|
||||
//
|
||||
// If this handle has not been returned this request, then
|
||||
// If this handle has not been returned this request, then
|
||||
// return it now
|
||||
//
|
||||
if (Handle->LocateRequest != mEfiLocateHandleRequest) {
|
||||
@@ -408,15 +405,15 @@ CoreGetNextLocateByProtocol (
|
||||
/**
|
||||
Locates the handle to a device on the device path that best matches the specified protocol.
|
||||
|
||||
@param Protocol The protocol to search for.
|
||||
@param DevicePath On input, a pointer to a pointer to the device
|
||||
path. On output, the device path pointer is
|
||||
modified to point to the remaining part of the
|
||||
devicepath.
|
||||
@param Device A pointer to the returned device handle.
|
||||
@param Protocol The protocol to search for.
|
||||
@param DevicePath On input, a pointer to a pointer to the device
|
||||
path. On output, the device path pointer is
|
||||
modified to point to the remaining part of the
|
||||
devicepath.
|
||||
@param Device A pointer to the returned device handle.
|
||||
|
||||
@retval EFI_SUCCESS The resulting handle was returned.
|
||||
@retval EFI_NOT_FOUND No handles matched the search.
|
||||
@retval EFI_SUCCESS The resulting handle was returned.
|
||||
@retval EFI_NOT_FOUND No handles matched the search.
|
||||
@retval EFI_INVALID_PARAMETER One of the parameters has an invalid value.
|
||||
|
||||
**/
|
||||
@@ -438,23 +435,23 @@ CoreLocateDevicePath (
|
||||
EFI_HANDLE Handle;
|
||||
EFI_DEVICE_PATH_PROTOCOL *SourcePath;
|
||||
EFI_DEVICE_PATH_PROTOCOL *TmpDevicePath;
|
||||
|
||||
|
||||
if (Protocol == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
|
||||
if ((DevicePath == NULL) || (*DevicePath == NULL)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
|
||||
if (Device == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
|
||||
*Device = NULL_HANDLE;
|
||||
SourcePath = *DevicePath;
|
||||
SourceSize = CoreDevicePathSize (SourcePath) - sizeof(EFI_DEVICE_PATH_PROTOCOL);
|
||||
|
||||
|
||||
//
|
||||
// The source path can only have 1 instance
|
||||
//
|
||||
@@ -493,7 +490,7 @@ CoreLocateDevicePath (
|
||||
// handles
|
||||
//
|
||||
ASSERT (Size != BestMatch);
|
||||
|
||||
|
||||
//
|
||||
// We've got a match, see if it's the best match so far
|
||||
//
|
||||
@@ -505,9 +502,9 @@ CoreLocateDevicePath (
|
||||
}
|
||||
|
||||
CoreFreePool (Handles);
|
||||
|
||||
|
||||
//
|
||||
// If there wasn't any match, then no parts of the device path was found.
|
||||
// If there wasn't any match, then no parts of the device path was found.
|
||||
// Which is strange since there is likely a "root level" device path in the system.
|
||||
//
|
||||
if (BestMatch == -1) {
|
||||
@@ -528,13 +525,13 @@ CoreLocateDevicePath (
|
||||
to the system. If Retistration is NULL return the first Protocol Interface
|
||||
you find.
|
||||
|
||||
@param Protocol The protocol to search for
|
||||
@param Registration Optional Registration Key returned from
|
||||
RegisterProtocolNotify()
|
||||
@param Interface Return the Protocol interface (instance).
|
||||
@param Protocol The protocol to search for
|
||||
@param Registration Optional Registration Key returned from
|
||||
RegisterProtocolNotify()
|
||||
@param Interface Return the Protocol interface (instance).
|
||||
|
||||
@retval EFI_SUCCESS If a valid Interface is returned
|
||||
@retval EFI_INVALID_PARAMETER Invalid parameter
|
||||
@retval EFI_SUCCESS If a valid Interface is returned
|
||||
@retval EFI_INVALID_PARAMETER Invalid parameter
|
||||
@retval EFI_NOT_FOUND Protocol interface not found
|
||||
|
||||
**/
|
||||
@@ -554,11 +551,11 @@ CoreLocateProtocol (
|
||||
if (Interface == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
|
||||
if (Protocol == NULL) {
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
|
||||
*Interface = NULL;
|
||||
Status = EFI_SUCCESS;
|
||||
|
||||
@@ -568,7 +565,7 @@ CoreLocateProtocol (
|
||||
Position.Protocol = Protocol;
|
||||
Position.SearchKey = Registration;
|
||||
Position.Position = &gHandleList;
|
||||
|
||||
|
||||
//
|
||||
// Lock the protocol database
|
||||
//
|
||||
@@ -589,7 +586,7 @@ CoreLocateProtocol (
|
||||
|
||||
Handle = CoreGetNextLocateByProtocol (&Position, Interface);
|
||||
} else {
|
||||
Handle = CoreGetNextLocateByRegisterNotify (&Position, Interface);
|
||||
Handle = CoreGetNextLocateByRegisterNotify (&Position, Interface);
|
||||
}
|
||||
|
||||
if (Handle == NULL) {
|
||||
@@ -598,7 +595,7 @@ CoreLocateProtocol (
|
||||
//
|
||||
// If this is a search by register notify and a handle was
|
||||
// returned, update the register notification position
|
||||
//
|
||||
//
|
||||
ProtNotify = Registration;
|
||||
ProtNotify->Position = ProtNotify->Position->ForwardLink;
|
||||
}
|
||||
@@ -614,20 +611,20 @@ Done:
|
||||
in a buffer allocated from pool. This is a version of CoreLocateHandle()
|
||||
that allocates a buffer for the caller.
|
||||
|
||||
@param SearchType Specifies which handle(s) are to be returned.
|
||||
@param Protocol Provides the protocol to search by. This
|
||||
parameter is only valid for SearchType
|
||||
ByProtocol.
|
||||
@param SearchKey Supplies the search key depending on the
|
||||
SearchType.
|
||||
@param NumberHandles The number of handles returned in Buffer.
|
||||
@param Buffer A pointer to the buffer to return the requested
|
||||
array of handles that support Protocol.
|
||||
@param SearchType Specifies which handle(s) are to be returned.
|
||||
@param Protocol Provides the protocol to search by. This
|
||||
parameter is only valid for SearchType
|
||||
ByProtocol.
|
||||
@param SearchKey Supplies the search key depending on the
|
||||
SearchType.
|
||||
@param NumberHandles The number of handles returned in Buffer.
|
||||
@param Buffer A pointer to the buffer to return the requested
|
||||
array of handles that support Protocol.
|
||||
|
||||
@retval EFI_SUCCESS The result array of handles was returned.
|
||||
@retval EFI_NOT_FOUND No handles match the search.
|
||||
@retval EFI_OUT_OF_RESOURCES There is not enough pool memory to store the
|
||||
matching results.
|
||||
@retval EFI_SUCCESS The result array of handles was returned.
|
||||
@retval EFI_NOT_FOUND No handles match the search.
|
||||
@retval EFI_OUT_OF_RESOURCES There is not enough pool memory to store the
|
||||
matching results.
|
||||
@retval EFI_INVALID_PARAMETER One or more paramters are not valid.
|
||||
|
||||
**/
|
||||
|
@@ -42,9 +42,9 @@ CoreNotifyProtocolEntry (
|
||||
/**
|
||||
Removes Protocol from the protocol list (but not the handle list).
|
||||
|
||||
@param Handle The handle to remove protocol on.
|
||||
@param Protocol GUID of the protocol to be moved
|
||||
@param Interface The interface of the protocol
|
||||
@param Handle The handle to remove protocol on.
|
||||
@param Protocol GUID of the protocol to be moved
|
||||
@param Interface The interface of the protocol
|
||||
|
||||
@return Protocol Entry
|
||||
|
||||
@@ -92,13 +92,13 @@ CoreRemoveInterfaceFromProtocol (
|
||||
/**
|
||||
Add a new protocol notification record for the request protocol.
|
||||
|
||||
@param Protocol The requested protocol to add the notify
|
||||
registration
|
||||
@param Event The event to signal
|
||||
@param Registration Returns the registration record
|
||||
@param Protocol The requested protocol to add the notify
|
||||
registration
|
||||
@param Event The event to signal
|
||||
@param Registration Returns the registration record
|
||||
|
||||
@retval EFI_INVALID_PARAMETER Invalid parameter
|
||||
@retval EFI_SUCCESS Successfully returned the registration record
|
||||
@retval EFI_INVALID_PARAMETER Invalid parameter
|
||||
@retval EFI_SUCCESS Successfully returned the registration record
|
||||
that has been added
|
||||
|
||||
**/
|
||||
@@ -113,7 +113,7 @@ CoreRegisterProtocolNotify (
|
||||
PROTOCOL_ENTRY *ProtEntry;
|
||||
PROTOCOL_NOTIFY *ProtNotify;
|
||||
EFI_STATUS Status;
|
||||
|
||||
|
||||
if ((Protocol == NULL) || (Event == NULL) || (Registration == NULL)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
@@ -121,7 +121,7 @@ CoreRegisterProtocolNotify (
|
||||
CoreAcquireProtocolLock ();
|
||||
|
||||
ProtNotify = NULL;
|
||||
|
||||
|
||||
//
|
||||
// Get the protocol entry to add the notification too
|
||||
//
|
||||
@@ -134,14 +134,14 @@ CoreRegisterProtocolNotify (
|
||||
//
|
||||
ProtNotify = CoreAllocateBootServicesPool (sizeof(PROTOCOL_NOTIFY));
|
||||
if (ProtNotify != NULL) {
|
||||
|
||||
|
||||
ProtNotify->Signature = PROTOCOL_NOTIFY_SIGNATURE;
|
||||
ProtNotify->Protocol = ProtEntry;
|
||||
ProtNotify->Event = Event;
|
||||
//
|
||||
// start at the begining
|
||||
//
|
||||
ProtNotify->Position = &ProtEntry->Protocols;
|
||||
ProtNotify->Position = &ProtEntry->Protocols;
|
||||
|
||||
InsertTailList (&ProtEntry->Notify, &ProtNotify->Link);
|
||||
}
|
||||
@@ -167,11 +167,11 @@ CoreRegisterProtocolNotify (
|
||||
/**
|
||||
Reinstall a protocol interface on a device handle. The OldInterface for Protocol is replaced by the NewInterface.
|
||||
|
||||
@param UserHandle Handle on which the interface is to be
|
||||
reinstalled
|
||||
@param Protocol The numeric ID of the interface
|
||||
@param OldInterface A pointer to the old interface
|
||||
@param NewInterface A pointer to the new interface
|
||||
@param UserHandle Handle on which the interface is to be
|
||||
reinstalled
|
||||
@param Protocol The numeric ID of the interface
|
||||
@param OldInterface A pointer to the old interface
|
||||
@param NewInterface A pointer to the new interface
|
||||
|
||||
@retval EFI_SUCCESS The protocol interface was installed
|
||||
@retval EFI_NOT_FOUND The OldInterface on the handle was not found
|
||||
@@ -266,19 +266,19 @@ CoreReinstallProtocolInterface (
|
||||
//
|
||||
CoreReleaseProtocolLock ();
|
||||
Status = CoreConnectController (
|
||||
UserHandle,
|
||||
NULL,
|
||||
NULL,
|
||||
UserHandle,
|
||||
NULL,
|
||||
NULL,
|
||||
TRUE
|
||||
);
|
||||
CoreAcquireProtocolLock ();
|
||||
|
||||
|
||||
//
|
||||
// Notify the notification list for this protocol
|
||||
//
|
||||
CoreNotifyProtocolEntry (ProtEntry);
|
||||
|
||||
CoreReleaseProtocolLock ();
|
||||
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
Reference in New Issue
Block a user