#include "Dhcp4Impl.h"\r
#include "Dhcp4Driver.h"\r
\r
-EFI_DRIVER_BINDING_PROTOCOL gDhcp4DriverBinding = {\r
+EFI_DRIVER_BINDING_PROTOCOL gDhcp4DriverBinding = {\r
Dhcp4DriverBindingSupported,\r
Dhcp4DriverBindingStart,\r
Dhcp4DriverBindingStop,\r
NULL\r
};\r
\r
-EFI_SERVICE_BINDING_PROTOCOL mDhcp4ServiceBindingTemplate = {\r
+EFI_SERVICE_BINDING_PROTOCOL mDhcp4ServiceBindingTemplate = {\r
Dhcp4ServiceBindingCreateChild,\r
Dhcp4ServiceBindingDestroyChild\r
};\r
EFI_STATUS\r
EFIAPI\r
Dhcp4DriverEntryPoint (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
return EfiLibInstallDriverBindingComponentName2 (\r
);\r
}\r
\r
-\r
/**\r
Test to see if this driver supports ControllerHandle. This service\r
is called by the EFI boot service ConnectController(). In\r
return Status;\r
}\r
\r
-\r
-\r
/**\r
Configure the default UDP child to receive all the DHCP traffics\r
on this network interface.\r
EFI_STATUS\r
EFIAPI\r
DhcpConfigUdpIo (\r
- IN UDP_IO *UdpIo,\r
- IN VOID *Context\r
+ IN UDP_IO *UdpIo,\r
+ IN VOID *Context\r
)\r
{\r
- EFI_UDP4_CONFIG_DATA UdpConfigData;\r
-\r
- UdpConfigData.AcceptBroadcast = TRUE;\r
- UdpConfigData.AcceptPromiscuous = FALSE;\r
- UdpConfigData.AcceptAnyPort = FALSE;\r
- UdpConfigData.AllowDuplicatePort = TRUE;\r
- UdpConfigData.TypeOfService = 0;\r
- UdpConfigData.TimeToLive = 64;\r
- UdpConfigData.DoNotFragment = FALSE;\r
- UdpConfigData.ReceiveTimeout = 0;\r
- UdpConfigData.TransmitTimeout = 0;\r
-\r
- UdpConfigData.UseDefaultAddress = FALSE;\r
- UdpConfigData.StationPort = DHCP_CLIENT_PORT;\r
- UdpConfigData.RemotePort = DHCP_SERVER_PORT;\r
+ EFI_UDP4_CONFIG_DATA UdpConfigData;\r
+\r
+ UdpConfigData.AcceptBroadcast = TRUE;\r
+ UdpConfigData.AcceptPromiscuous = FALSE;\r
+ UdpConfigData.AcceptAnyPort = FALSE;\r
+ UdpConfigData.AllowDuplicatePort = TRUE;\r
+ UdpConfigData.TypeOfService = 0;\r
+ UdpConfigData.TimeToLive = 64;\r
+ UdpConfigData.DoNotFragment = FALSE;\r
+ UdpConfigData.ReceiveTimeout = 0;\r
+ UdpConfigData.TransmitTimeout = 0;\r
+\r
+ UdpConfigData.UseDefaultAddress = FALSE;\r
+ UdpConfigData.StationPort = DHCP_CLIENT_PORT;\r
+ UdpConfigData.RemotePort = DHCP_SERVER_PORT;\r
\r
ZeroMem (&UdpConfigData.StationAddress, sizeof (EFI_IPv4_ADDRESS));\r
ZeroMem (&UdpConfigData.SubnetMask, sizeof (EFI_IPv4_ADDRESS));\r
ZeroMem (&UdpConfigData.RemoteAddress, sizeof (EFI_IPv4_ADDRESS));\r
\r
- return UdpIo->Protocol.Udp4->Configure (UdpIo->Protocol.Udp4, &UdpConfigData);;\r
+ return UdpIo->Protocol.Udp4->Configure (UdpIo->Protocol.Udp4, &UdpConfigData);\r
}\r
\r
-\r
-\r
/**\r
Destroy the DHCP service. The Dhcp4 service may be partly initialized,\r
or partly destroyed. If a resource is destroyed, it is marked as so in\r
**/\r
EFI_STATUS\r
Dhcp4CloseService (\r
- IN DHCP_SERVICE *DhcpSb\r
+ IN DHCP_SERVICE *DhcpSb\r
)\r
{\r
DhcpCleanLease (DhcpSb);\r
return EFI_SUCCESS;\r
}\r
\r
-\r
-\r
/**\r
Create a new DHCP service binding instance for the controller.\r
\r
**/\r
EFI_STATUS\r
Dhcp4CreateService (\r
- IN EFI_HANDLE Controller,\r
- IN EFI_HANDLE ImageHandle,\r
- OUT DHCP_SERVICE **Service\r
+ IN EFI_HANDLE Controller,\r
+ IN EFI_HANDLE ImageHandle,\r
+ OUT DHCP_SERVICE **Service\r
)\r
{\r
- DHCP_SERVICE *DhcpSb;\r
- EFI_STATUS Status;\r
+ DHCP_SERVICE *DhcpSb;\r
+ EFI_STATUS Status;\r
\r
- *Service = NULL;\r
- DhcpSb = AllocateZeroPool (sizeof (DHCP_SERVICE));\r
+ *Service = NULL;\r
+ DhcpSb = AllocateZeroPool (sizeof (DHCP_SERVICE));\r
\r
if (DhcpSb == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- DhcpSb->Signature = DHCP_SERVICE_SIGNATURE;\r
- DhcpSb->ServiceState = DHCP_UNCONFIGED;\r
- DhcpSb->Controller = Controller;\r
- DhcpSb->Image = ImageHandle;\r
+ DhcpSb->Signature = DHCP_SERVICE_SIGNATURE;\r
+ DhcpSb->ServiceState = DHCP_UNCONFIGED;\r
+ DhcpSb->Controller = Controller;\r
+ DhcpSb->Image = ImageHandle;\r
InitializeListHead (&DhcpSb->Children);\r
- DhcpSb->DhcpState = Dhcp4Stopped;\r
- DhcpSb->Xid = NET_RANDOM (NetRandomInitSeed ());\r
+ DhcpSb->DhcpState = Dhcp4Stopped;\r
+ DhcpSb->Xid = NET_RANDOM (NetRandomInitSeed ());\r
CopyMem (\r
&DhcpSb->ServiceBinding,\r
&mDhcp4ServiceBindingTemplate,\r
goto ON_ERROR;\r
}\r
\r
- DhcpSb->HwLen = (UINT8) DhcpSb->UdpIo->SnpMode.HwAddressSize;\r
+ DhcpSb->HwLen = (UINT8)DhcpSb->UdpIo->SnpMode.HwAddressSize;\r
DhcpSb->HwType = DhcpSb->UdpIo->SnpMode.IfType;\r
CopyMem (&DhcpSb->Mac, &DhcpSb->UdpIo->SnpMode.CurrentAddress, sizeof (DhcpSb->Mac));\r
\r
- *Service = DhcpSb;\r
+ *Service = DhcpSb;\r
return EFI_SUCCESS;\r
\r
ON_ERROR:\r
return Status;\r
}\r
\r
-\r
/**\r
Start this driver on ControllerHandle. This service is called by the\r
EFI boot service ConnectController(). In order to make\r
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL\r
)\r
{\r
- DHCP_SERVICE *DhcpSb;\r
- EFI_STATUS Status;\r
+ DHCP_SERVICE *DhcpSb;\r
+ EFI_STATUS Status;\r
\r
//\r
// First: test for the DHCP4 Protocol\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
ASSERT (DhcpSb != NULL);\r
\r
//\r
if (EFI_ERROR (Status)) {\r
goto ON_ERROR;\r
}\r
+\r
Status = gBS->SetTimer (DhcpSb->Timer, TimerPeriodic, TICKS_PER_SECOND);\r
\r
if (EFI_ERROR (Status)) {\r
EFI_STATUS\r
EFIAPI\r
Dhcp4DestroyChildEntry (\r
- IN LIST_ENTRY *Entry,\r
- IN VOID *Context\r
+ IN LIST_ENTRY *Entry,\r
+ IN VOID *Context\r
)\r
{\r
- DHCP_PROTOCOL *Instance;\r
- EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding;\r
+ DHCP_PROTOCOL *Instance;\r
+ EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding;\r
\r
- if (Entry == NULL || Context == NULL) {\r
+ if ((Entry == NULL) || (Context == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Instance = NET_LIST_USER_STRUCT_S (Entry, DHCP_PROTOCOL, Link, DHCP_PROTOCOL_SIGNATURE);\r
- ServiceBinding = (EFI_SERVICE_BINDING_PROTOCOL *) Context;\r
+ Instance = NET_LIST_USER_STRUCT_S (Entry, DHCP_PROTOCOL, Link, DHCP_PROTOCOL_SIGNATURE);\r
+ ServiceBinding = (EFI_SERVICE_BINDING_PROTOCOL *)Context;\r
\r
return ServiceBinding->DestroyChild (ServiceBinding, Instance->Handle);\r
}\r
\r
-\r
/**\r
Stop this driver on ControllerHandle. This service is called by the\r
EFI boot service DisconnectController(). In order to\r
return EFI_SUCCESS;\r
}\r
\r
- Status = gBS->OpenProtocol (\r
+ Status = gBS->OpenProtocol (\r
NicHandle,\r
&gEfiDhcp4ServiceBindingProtocolGuid,\r
- (VOID **) &ServiceBinding,\r
+ (VOID **)&ServiceBinding,\r
This->DriverBindingHandle,\r
NicHandle,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
//\r
// Destroy all the children instances before destroy the service.\r
//\r
- List = &DhcpSb->Children;\r
+ List = &DhcpSb->Children;\r
Status = NetDestroyLinkList (\r
List,\r
Dhcp4DestroyChildEntry,\r
ServiceBinding,\r
&ListLength\r
);\r
- if (EFI_ERROR (Status) || ListLength != 0) {\r
+ if (EFI_ERROR (Status) || (ListLength != 0)) {\r
Status = EFI_DEVICE_ERROR;\r
}\r
}\r
\r
- if (NumberOfChildren == 0 && !IsListEmpty (&DhcpSb->Children)) {\r
+ if ((NumberOfChildren == 0) && !IsListEmpty (&DhcpSb->Children)) {\r
Status = EFI_DEVICE_ERROR;\r
}\r
\r
- if (NumberOfChildren == 0 && IsListEmpty (&DhcpSb->Children)) {\r
+ if ((NumberOfChildren == 0) && IsListEmpty (&DhcpSb->Children)) {\r
//\r
// Destroy the service itself if no child instance left.\r
//\r
FreeUnicodeStringTable (gDhcpControllerNameTable);\r
gDhcpControllerNameTable = NULL;\r
}\r
+\r
FreePool (DhcpSb);\r
\r
Status = EFI_SUCCESS;\r
return Status;\r
}\r
\r
-\r
/**\r
Initialize a new DHCP instance.\r
\r
**/\r
VOID\r
DhcpInitProtocol (\r
- IN DHCP_SERVICE *DhcpSb,\r
- IN OUT DHCP_PROTOCOL *Instance\r
+ IN DHCP_SERVICE *DhcpSb,\r
+ IN OUT DHCP_PROTOCOL *Instance\r
)\r
{\r
- Instance->Signature = DHCP_PROTOCOL_SIGNATURE;\r
+ Instance->Signature = DHCP_PROTOCOL_SIGNATURE;\r
CopyMem (&Instance->Dhcp4Protocol, &mDhcp4ProtocolTemplate, sizeof (Instance->Dhcp4Protocol));\r
InitializeListHead (&Instance->Link);\r
- Instance->Handle = NULL;\r
- Instance->Service = DhcpSb;\r
- Instance->InDestroy = FALSE;\r
- Instance->CompletionEvent = NULL;\r
- Instance->RenewRebindEvent = NULL;\r
- Instance->Token = NULL;\r
- Instance->UdpIo = NULL;\r
- Instance->ElaspedTime = 0;\r
+ Instance->Handle = NULL;\r
+ Instance->Service = DhcpSb;\r
+ Instance->InDestroy = FALSE;\r
+ Instance->CompletionEvent = NULL;\r
+ Instance->RenewRebindEvent = NULL;\r
+ Instance->Token = NULL;\r
+ Instance->UdpIo = NULL;\r
+ Instance->ElaspedTime = 0;\r
NetbufQueInit (&Instance->ResponseQueue);\r
}\r
\r
-\r
/**\r
Creates a child handle and installs a protocol.\r
\r
IN EFI_HANDLE *ChildHandle\r
)\r
{\r
- DHCP_SERVICE *DhcpSb;\r
- DHCP_PROTOCOL *Instance;\r
- EFI_STATUS Status;\r
- EFI_TPL OldTpl;\r
- VOID *Udp4;\r
+ DHCP_SERVICE *DhcpSb;\r
+ DHCP_PROTOCOL *Instance;\r
+ EFI_STATUS Status;\r
+ EFI_TPL OldTpl;\r
+ VOID *Udp4;\r
\r
if ((This == NULL) || (ChildHandle == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
return Status;\r
}\r
\r
- Instance->Handle = *ChildHandle;\r
+ Instance->Handle = *ChildHandle;\r
\r
//\r
// Open the Udp4 protocol BY_CHILD.\r
Status = gBS->OpenProtocol (\r
DhcpSb->UdpIo->UdpHandle,\r
&gEfiUdp4ProtocolGuid,\r
- (VOID **) &Udp4,\r
+ (VOID **)&Udp4,\r
gDhcp4DriverBinding.DriverBindingHandle,\r
Instance->Handle,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Destroys a child handle with a protocol installed on it.\r
\r
IN EFI_HANDLE ChildHandle\r
)\r
{\r
- DHCP_SERVICE *DhcpSb;\r
- DHCP_PROTOCOL *Instance;\r
- EFI_DHCP4_PROTOCOL *Dhcp;\r
- EFI_TPL OldTpl;\r
- EFI_STATUS Status;\r
+ DHCP_SERVICE *DhcpSb;\r
+ DHCP_PROTOCOL *Instance;\r
+ EFI_DHCP4_PROTOCOL *Dhcp;\r
+ EFI_TPL OldTpl;\r
+ EFI_STATUS Status;\r
\r
if ((This == NULL) || (ChildHandle == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
Status = gBS->OpenProtocol (\r
ChildHandle,\r
&gEfiDhcp4ProtocolGuid,\r
- (VOID **) &Dhcp,\r
+ (VOID **)&Dhcp,\r
gDhcp4DriverBinding.DriverBindingHandle,\r
ChildHandle,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
return EFI_UNSUPPORTED;\r
}\r
\r
- Instance = DHCP_INSTANCE_FROM_THIS (Dhcp);\r
- DhcpSb = DHCP_SERVICE_FROM_THIS (This);\r
+ Instance = DHCP_INSTANCE_FROM_THIS (Dhcp);\r
+ DhcpSb = DHCP_SERVICE_FROM_THIS (This);\r
\r
if (Instance->Service != DhcpSb) {\r
return EFI_INVALID_PARAMETER;\r
return EFI_SUCCESS;\r
}\r
\r
- OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
+ OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
Instance->InDestroy = TRUE;\r
\r
//\r