1. Enabled SetIpFilter() in UefiPxeBcDxe module.

2. Ported Arp() in UefiPxeBcDxe module.
3. Sync tracker: enabled unload() for PxeBcDxe module.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4813 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
vanjeff
2008-03-10 06:55:15 +00:00
parent 9e77c2c3b7
commit 8d285ec0ce
8 changed files with 377 additions and 25 deletions

View File

@@ -2344,6 +2344,41 @@ PxeBcDriverStop (
return Status;
}
EFI_STATUS
EFIAPI
PxeBcUnload (
IN EFI_HANDLE ImageHandle
)
{
EFI_STATUS Status;
UINTN DeviceHandleCount;
EFI_HANDLE *DeviceHandleBuffer;
UINTN Index;
Status = gBS->LocateHandleBuffer (
AllHandles,
NULL,
NULL,
&DeviceHandleCount,
&DeviceHandleBuffer
);
if (!EFI_ERROR (Status)) {
for (Index = 0; Index < DeviceHandleCount; Index++) {
Status = gBS->DisconnectController (
DeviceHandleBuffer[Index],
mPxeBcDriverBinding.DriverBindingHandle,
NULL
);
}
if (DeviceHandleBuffer != NULL) {
gBS->FreePool (DeviceHandleBuffer);
}
}
return Status;
}
/**
Initialize the base code drivers and install the driver binding
@@ -2360,7 +2395,8 @@ InitializeBCDriver (
IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
EFI_STATUS Status;
EFI_LOADED_IMAGE_PROTOCOL *LoadedImage;
//
// Initialize EFI library
@@ -2374,6 +2410,17 @@ InitializeBCDriver (
&gPxeBcComponentName2
);
Status = gBS->HandleProtocol (
ImageHandle,
&gEfiLoadedImageProtocolGuid,
(VOID **) &LoadedImage
);
if (EFI_ERROR (Status)) {
return Status;
} else {
LoadedImage->Unload = PxeBcUnload;
}
InitArpHeader ();
OptionsStrucInit ();