TianoCore EDK2 master
Loading...
Searching...
No Matches
Dhcp4Driver.c File Reference
#include "Dhcp4Impl.h"
#include "Dhcp4Driver.h"

Go to the source code of this file.

Functions

EFI_STATUS EFIAPI Dhcp4DriverEntryPoint (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
 
EFI_STATUS EFIAPI Dhcp4DriverBindingSupported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
 
EFI_STATUS EFIAPI DhcpConfigUdpIo (IN UDP_IO *UdpIo, IN VOID *Context)
 
EFI_STATUS Dhcp4CloseService (IN DHCP_SERVICE *DhcpSb)
 
EFI_STATUS Dhcp4CreateService (IN EFI_HANDLE Controller, IN EFI_HANDLE ImageHandle, OUT DHCP_SERVICE **Service)
 
EFI_STATUS EFIAPI Dhcp4DriverBindingStart (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
 
EFI_STATUS EFIAPI Dhcp4DestroyChildEntry (IN LIST_ENTRY *Entry, IN VOID *Context)
 
EFI_STATUS EFIAPI Dhcp4DriverBindingStop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer)
 
VOID DhcpInitProtocol (IN DHCP_SERVICE *DhcpSb, IN OUT DHCP_PROTOCOL *Instance)
 
EFI_STATUS EFIAPI Dhcp4ServiceBindingCreateChild (IN EFI_SERVICE_BINDING_PROTOCOL *This, IN EFI_HANDLE *ChildHandle)
 
EFI_STATUS EFIAPI Dhcp4ServiceBindingDestroyChild (IN EFI_SERVICE_BINDING_PROTOCOL *This, IN EFI_HANDLE ChildHandle)
 

Variables

EFI_DRIVER_BINDING_PROTOCOL gDhcp4DriverBinding
 
EFI_SERVICE_BINDING_PROTOCOL mDhcp4ServiceBindingTemplate
 

Detailed Description

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
Copyright (c) Microsoft Corporation SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file Dhcp4Driver.c.

Function Documentation

◆ Dhcp4CloseService()

EFI_STATUS Dhcp4CloseService ( IN DHCP_SERVICE DhcpSb)

Destroy the DHCP service. The Dhcp4 service may be partly initialized, or partly destroyed. If a resource is destroyed, it is marked as so in case the destroy failed and being called again later.

Parameters
[in]DhcpSbThe DHCP service instance to destroy.
Return values
EFI_SUCCESSAlways return success.

Definition at line 149 of file Dhcp4Driver.c.

◆ Dhcp4CreateService()

EFI_STATUS Dhcp4CreateService ( IN EFI_HANDLE  Controller,
IN EFI_HANDLE  ImageHandle,
OUT DHCP_SERVICE **  Service 
)

Create a new DHCP service binding instance for the controller.

Parameters
[in]ControllerThe controller to install DHCP service binding protocol onto
[in]ImageHandleThe driver's image handle
[out]ServiceThe variable to receive the created DHCP service instance.
Return values
EFI_OUT_OF_RESOURCESFailed to allocate resource .
EFI_SUCCESSThe DHCP service instance is created.
otherOther error occurs.

Definition at line 185 of file Dhcp4Driver.c.

◆ Dhcp4DestroyChildEntry()

EFI_STATUS EFIAPI Dhcp4DestroyChildEntry ( IN LIST_ENTRY Entry,
IN VOID *  Context 
)

Callback function which provided by user to remove one node in NetDestroyLinkList process.

Parameters
[in]EntryThe entry to be removed.
[in]ContextPointer to the callback context corresponds to the Context in NetDestroyLinkList.
Return values
EFI_SUCCESSThe entry has been removed successfully.
OthersFail to remove the entry.

Definition at line 364 of file Dhcp4Driver.c.

◆ Dhcp4DriverBindingStart()

EFI_STATUS EFIAPI Dhcp4DriverBindingStart ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  ControllerHandle,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath  OPTIONAL 
)

Start this driver on ControllerHandle. This service is called by the EFI boot service ConnectController(). In order to make drivers as small as possible, there are a few calling restrictions for this service. ConnectController() must follow these calling restrictions. If any other agent wishes to call Start() it must also follow these calling restrictions.

Parameters
[in]ThisProtocol instance pointer.
[in]ControllerHandleHandle of device to bind driver to
[in]RemainingDevicePathOptional parameter use to pick a specific child device to start.
Return values
EFI_SUCCESSThis driver is added to ControllerHandle
EFI_ALREADY_STARTEDThis driver is already running on ControllerHandle
otherThis driver does not support this device

Definition at line 282 of file Dhcp4Driver.c.

◆ Dhcp4DriverBindingStop()

EFI_STATUS EFIAPI Dhcp4DriverBindingStop ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  ControllerHandle,
IN UINTN  NumberOfChildren,
IN EFI_HANDLE ChildHandleBuffer 
)

Stop this driver on ControllerHandle. This service is called by the EFI boot service DisconnectController(). In order to make drivers as small as possible, there are a few calling restrictions for this service. DisconnectController() must follow these calling restrictions. If any other agent wishes to call Stop() it must also follow these calling restrictions.

Parameters
[in]ThisProtocol instance pointer.
[in]ControllerHandleHandle of device to stop driver on
[in]NumberOfChildrenNumber of Handles in ChildHandleBuffer. If number of children is zero stop the entire bus driver.
[in]ChildHandleBufferList of Child Handles to Stop.
Return values
EFI_SUCCESSThis driver is removed ControllerHandle
otherThis driver was not removed from this device

Definition at line 402 of file Dhcp4Driver.c.

◆ Dhcp4DriverBindingSupported()

EFI_STATUS EFIAPI Dhcp4DriverBindingSupported ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  ControllerHandle,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath  OPTIONAL 
)

Test to see if this driver supports ControllerHandle. This service is called by the EFI boot service ConnectController(). In order to make drivers as small as possible, there are a few calling restrictions for this service. ConnectController() must follow these calling restrictions. If any other agent wishes to call Supported() it must also follow these calling restrictions.

Parameters
[in]ThisProtocol instance pointer.
[in]ControllerHandleHandle of device to test
[in]RemainingDevicePathOptional parameter use to pick a specific child device to start.
Return values
EFI_SUCCESSThis driver supports this device
EFI_ALREADY_STARTEDThis driver is already running on this device
otherThis driver does not support this device

Definition at line 77 of file Dhcp4Driver.c.

◆ Dhcp4DriverEntryPoint()

EFI_STATUS EFIAPI Dhcp4DriverEntryPoint ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE SystemTable 
)

This is the declaration of an EFI image entry point. This entry point is the same for UEFI Applications, UEFI OS Loaders, and UEFI Drivers including both device drivers and bus drivers.

Entry point of the DHCP driver to install various protocols.

Parameters
[in]ImageHandleThe firmware allocated handle for the UEFI image.
[in]SystemTableA pointer to the EFI System Table.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_OUT_OF_RESOURCESThe request could not be completed due to a lack of resources.

Definition at line 42 of file Dhcp4Driver.c.

◆ Dhcp4ServiceBindingCreateChild()

EFI_STATUS EFIAPI Dhcp4ServiceBindingCreateChild ( IN EFI_SERVICE_BINDING_PROTOCOL This,
IN EFI_HANDLE ChildHandle 
)

Creates a child handle and installs a protocol.

The CreateChild() function installs a protocol on ChildHandle. If ChildHandle is a pointer to NULL, then a new handle is created and returned in ChildHandle. If ChildHandle is not a pointer to NULL, then the protocol installs on the existing ChildHandle.

Parameters
ThisPointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
ChildHandlePointer to the handle of the child to create. If it is NULL, then a new handle is created. If it is a pointer to an existing UEFI handle, then the protocol is added to the existing UEFI handle.
Return values
EFI_SUCCESSThe protocol was added to ChildHandle.
EFI_INVALID_PARAMETERChildHandle is NULL.
EFI_OUT_OF_RESOURCESThere are not enough resources available to create the child
otherThe child handle was not created

Definition at line 535 of file Dhcp4Driver.c.

◆ Dhcp4ServiceBindingDestroyChild()

EFI_STATUS EFIAPI Dhcp4ServiceBindingDestroyChild ( IN EFI_SERVICE_BINDING_PROTOCOL This,
IN EFI_HANDLE  ChildHandle 
)

Destroys a child handle with a protocol installed on it.

The DestroyChild() function does the opposite of CreateChild(). It removes a protocol that was installed by CreateChild() from ChildHandle. If the removed protocol is the last protocol on ChildHandle, then ChildHandle is destroyed.

Parameters
ThisPointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
ChildHandleHandle of the child to destroy
Return values
EFI_SUCCESSThe protocol was removed from ChildHandle.
EFI_UNSUPPORTEDChildHandle does not support the protocol that is being removed.
EFI_INVALID_PARAMETERChild handle is NULL.
EFI_ACCESS_DENIEDThe protocol could not be removed from the ChildHandle because its services are being used.
otherThe child handle was not destroyed

Definition at line 629 of file Dhcp4Driver.c.

◆ DhcpConfigUdpIo()

EFI_STATUS EFIAPI DhcpConfigUdpIo ( IN UDP_IO UdpIo,
IN VOID *  Context 
)

Configure the default UDP child to receive all the DHCP traffics on this network interface.

Parameters
[in]UdpIoThe UDP IO to configure
[in]ContextThe context to the function
Return values
EFI_SUCCESSThe UDP IO is successfully configured.
OthersFailed to configure the UDP child.

Definition at line 110 of file Dhcp4Driver.c.

◆ DhcpInitProtocol()

VOID DhcpInitProtocol ( IN DHCP_SERVICE DhcpSb,
IN OUT DHCP_PROTOCOL Instance 
)

Initialize a new DHCP instance.

Parameters
DhcpSbThe dhcp service instance
InstanceThe dhcp instance to initialize

Definition at line 495 of file Dhcp4Driver.c.

Variable Documentation

◆ gDhcp4DriverBinding

EFI_DRIVER_BINDING_PROTOCOL gDhcp4DriverBinding
Initial value:
= {
0xa,
}
EFI_STATUS EFIAPI Dhcp4DriverBindingSupported(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
Definition: Dhcp4Driver.c:77
EFI_STATUS EFIAPI Dhcp4DriverBindingStart(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
Definition: Dhcp4Driver.c:282
EFI_STATUS EFIAPI Dhcp4DriverBindingStop(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer)
Definition: Dhcp4Driver.c:402
#define NULL
Definition: Base.h:319

Definition at line 12 of file Dhcp4Driver.c.

◆ mDhcp4ServiceBindingTemplate

EFI_SERVICE_BINDING_PROTOCOL mDhcp4ServiceBindingTemplate
Initial value:
= {
}
EFI_STATUS EFIAPI Dhcp4ServiceBindingDestroyChild(IN EFI_SERVICE_BINDING_PROTOCOL *This, IN EFI_HANDLE ChildHandle)
Definition: Dhcp4Driver.c:629
EFI_STATUS EFIAPI Dhcp4ServiceBindingCreateChild(IN EFI_SERVICE_BINDING_PROTOCOL *This, IN EFI_HANDLE *ChildHandle)
Definition: Dhcp4Driver.c:535

Definition at line 21 of file Dhcp4Driver.c.