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:
@@ -141,6 +141,7 @@ PxeBcDriverBindingStart (
|
||||
UINTN Index;
|
||||
EFI_STATUS Status;
|
||||
|
||||
CpuDeadLoop ();
|
||||
Private = AllocateZeroPool (sizeof (PXEBC_PRIVATE_DATA));
|
||||
if (Private == NULL) {
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
@@ -176,6 +177,28 @@ PxeBcDriverBindingStart (
|
||||
goto ON_ERROR;
|
||||
}
|
||||
|
||||
Status = NetLibCreateServiceChild (
|
||||
ControllerHandle,
|
||||
This->DriverBindingHandle,
|
||||
&gEfiArpServiceBindingProtocolGuid,
|
||||
&Private->ArpChild
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto ON_ERROR;
|
||||
}
|
||||
|
||||
Status = gBS->OpenProtocol (
|
||||
Private->ArpChild,
|
||||
&gEfiArpProtocolGuid,
|
||||
(VOID **) &Private->Arp,
|
||||
This->DriverBindingHandle,
|
||||
ControllerHandle,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto ON_ERROR;
|
||||
}
|
||||
|
||||
Status = NetLibCreateServiceChild (
|
||||
ControllerHandle,
|
||||
This->DriverBindingHandle,
|
||||
@@ -247,7 +270,7 @@ PxeBcDriverBindingStart (
|
||||
}
|
||||
|
||||
ZeroMem (&Private->Udp4CfgData, sizeof (EFI_UDP4_CONFIG_DATA));
|
||||
Private->Udp4CfgData.AcceptBroadcast = TRUE;
|
||||
Private->Udp4CfgData.AcceptBroadcast = FALSE;
|
||||
Private->Udp4CfgData.AcceptPromiscuous = FALSE;
|
||||
Private->Udp4CfgData.AcceptAnyPort = FALSE;
|
||||
Private->Udp4CfgData.AllowDuplicatePort = TRUE;
|
||||
@@ -322,6 +345,22 @@ ON_ERROR:
|
||||
);
|
||||
}
|
||||
|
||||
if (Private->ArpChild != NULL) {
|
||||
gBS->CloseProtocol (
|
||||
Private->ArpChild,
|
||||
&gEfiArpProtocolGuid,
|
||||
This->DriverBindingHandle,
|
||||
ControllerHandle
|
||||
);
|
||||
|
||||
NetLibDestroyServiceChild (
|
||||
ControllerHandle,
|
||||
This->DriverBindingHandle,
|
||||
&gEfiArpServiceBindingProtocolGuid,
|
||||
Private->ArpChild
|
||||
);
|
||||
}
|
||||
|
||||
gBS->FreePool (Private);
|
||||
|
||||
return Status;
|
||||
@@ -433,6 +472,19 @@ PxeBcDriverBindingStop (
|
||||
Private->Mtftp4Child
|
||||
);
|
||||
|
||||
gBS->CloseProtocol (
|
||||
Private->ArpChild,
|
||||
&gEfiArpProtocolGuid,
|
||||
This->DriverBindingHandle,
|
||||
NicHandle
|
||||
);
|
||||
NetLibDestroyServiceChild (
|
||||
NicHandle,
|
||||
This->DriverBindingHandle,
|
||||
&gEfiArpServiceBindingProtocolGuid,
|
||||
Private->ArpChild
|
||||
);
|
||||
|
||||
gBS->FreePool (Private);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user