NetworkPkg/Dhcp6Dxe/Dhcp6Driver.c File Reference


Functions

EFI_STATUS EFIAPI Dhcp6ConfigureUdpIo (IN UDP_IO *UdpIo, IN VOID *Context)
VOID Dhcp6DestroyService (IN OUT DHCP6_SERVICE *Service)
EFI_STATUS Dhcp6CreateService (IN EFI_HANDLE Controller, IN EFI_HANDLE ImageHandle, OUT DHCP6_SERVICE **Service)
VOID Dhcp6DestroyInstance (IN OUT DHCP6_INSTANCE *Instance)
EFI_STATUS Dhcp6CreateInstance (IN DHCP6_SERVICE *Service, OUT DHCP6_INSTANCE **Instance)
EFI_STATUS EFIAPI Dhcp6DestroyChildEntry (IN LIST_ENTRY *Entry, IN VOID *Context)
EFI_STATUS EFIAPI Dhcp6DriverEntryPoint (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS EFIAPI Dhcp6DriverBindingSupported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
EFI_STATUS EFIAPI Dhcp6DriverBindingStart (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
EFI_STATUS EFIAPI Dhcp6DriverBindingStop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer)
EFI_STATUS EFIAPI Dhcp6ServiceBindingCreateChild (IN EFI_SERVICE_BINDING_PROTOCOL *This, IN OUT EFI_HANDLE *ChildHandle)
EFI_STATUS EFIAPI Dhcp6ServiceBindingDestroyChild (IN EFI_SERVICE_BINDING_PROTOCOL *This, IN EFI_HANDLE ChildHandle)

Variables

EFI_DRIVER_BINDING_PROTOCOL gDhcp6DriverBinding
EFI_SERVICE_BINDING_PROTOCOL gDhcp6ServiceBindingTemplate

Detailed Description

Driver Binding functions and Service Binding functions implementationfor for Dhcp6 Driver.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.


Function Documentation

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

Configure the default Udp6Io to receive all the DHCP6 traffic on this network interface.

Parameters:
[in] UdpIo The pointer to Udp6Io to be configured.
[in] Context The pointer to the context.
Return values:
EFI_SUCCESS The Udp6Io is successfully configured.
Others Failed to configure the Udp6Io.

References DHCP6_PORT_CLIENT.

Referenced by Dhcp6CreateService().

EFI_STATUS Dhcp6CreateInstance ( IN DHCP6_SERVICE Service,
OUT DHCP6_INSTANCE **  Instance 
)

Create the Dhcp6 instance and initialize it.

Parameters:
[in] Service The pointer to the Dhcp6 service.
[out] Instance The pointer to the Dhcp6 instance.
Return values:
EFI_SUCCESS The Dhcp6 instance is created.
EFI_OUT_OF_RESOURCES Failed to allocate resources.

References _DHCP6_INSTANCE::Dhcp6, DHCP6_INSTANCE_SIGNATURE, Dhcp6OnTimerTick(), gDhcp6ProtocolTemplate, _DHCP6_INSTANCE::InDestroy, _DHCP6_INSTANCE::InfList, _DHCP6_INSTANCE::MediaPresent, _DHCP6_INSTANCE::Service, _DHCP6_INSTANCE::Signature, _DHCP6_INSTANCE::Timer, _DHCP6_INSTANCE::TxList, and _DHCP6_INSTANCE::UdpSts.

Referenced by Dhcp6ServiceBindingCreateChild().

EFI_STATUS Dhcp6CreateService ( IN EFI_HANDLE  Controller,
IN EFI_HANDLE  ImageHandle,
OUT DHCP6_SERVICE **  Service 
)

Create a new Dhcp6 service for the Nic controller.

Parameters:
[in] Controller The controller to be installed DHCP6 service binding protocol.
[in] ImageHandle The image handle of the Dhcp6 driver.
[out] Service The return pointer of the new Dhcp6 service.
Return values:
EFI_SUCCESS The Dhcp6 service is created successfully.
EFI_DEVICE_ERROR An unexpected system or network error occurred.
EFI_OUT_OF_RESOURCES Failed to allocate resource.

References _DHCP6_SERVICE::Child, _DHCP6_SERVICE::ClientId, _DHCP6_SERVICE::Controller, DHCP6_SERVICE_SIGNATURE, Dhcp6ConfigureUdpIo(), Dhcp6GenerateClientId(), gDhcp6ServiceBindingTemplate, _DHCP6_SERVICE::Image, _DHCP6_SERVICE::Ip6Cfg, _DHCP6_SERVICE::ServiceBinding, _DHCP6_SERVICE::Signature, _DHCP6_SERVICE::Snp, _DHCP6_SERVICE::UdpIo, and _DHCP6_SERVICE::Xid.

Referenced by Dhcp6DriverBindingStart().

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

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

Parameters:
[in] Entry The entry to be removed.
[in] Context Pointer to the callback context corresponds to the Context in NetDestroyLinkList.
Return values:
EFI_SUCCESS The entry has been removed successfully.
Others Fail to remove the entry.

References DHCP6_INSTANCE_SIGNATURE, and _DHCP6_INSTANCE::Handle.

Referenced by Dhcp6DriverBindingStop().

VOID Dhcp6DestroyInstance ( IN OUT DHCP6_INSTANCE Instance  ) 

Destroy the Dhcp6 instance and recycle the resources.

Parameters:
[in,out] Instance The pointer to the Dhcp6 instance.

References DHCP6_PACKET_ALL, Dhcp6CleanupConfigData(), and Dhcp6CleanupRetry().

Referenced by Dhcp6ServiceBindingCreateChild(), and Dhcp6ServiceBindingDestroyChild().

VOID Dhcp6DestroyService ( IN OUT DHCP6_SERVICE Service  ) 

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

Parameters:
[in,out] Service The pointer to Dhcp6 service to be destroyed.

Referenced by Dhcp6DriverBindingStart(), and Dhcp6DriverBindingStop().

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

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] This The pointer to the driver binding protocol.
[in] ControllerHandle The handle of device to be started.
[in] RemainingDevicePath Optional parameter use to pick a specific child device to be started.
Return values:
EFI_SUCCESS This driver is installed to ControllerHandle.
EFI_ALREADY_STARTED This driver is already running on ControllerHandle.
other This driver does not support this device.

References Dhcp6CreateService(), Dhcp6DestroyService(), and _DHCP6_SERVICE::ServiceBinding.

EFI_STATUS EFIAPI Dhcp6DriverBindingStop ( 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] This Protocol instance pointer.
[in] ControllerHandle Handle of device to stop driver on
[in] NumberOfChildren Number of Handles in ChildHandleBuffer. If number of children is zero stop the entire bus driver.
[in] ChildHandleBuffer List of Child Handles to Stop.
Return values:
EFI_SUCCESS This driver is removed ControllerHandle
EFI_DEVICE_ERROR An unexpected system or network error occurred.
other This driver was not removed from this device

References _DHCP6_SERVICE::Child, DHCP6_SERVICE_FROM_THIS, Dhcp6DestroyChildEntry(), and Dhcp6DestroyService().

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

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] This The pointer to the driver binding protocol.
[in] ControllerHandle The handle of device to be tested.
[in] RemainingDevicePath Optional parameter use to pick a specific child device to be started.
Return values:
EFI_SUCCESS This driver supports this device.
Others This driver does not support this device.

EFI_STATUS EFIAPI Dhcp6DriverEntryPoint ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE *  SystemTable 
)

Entry point of the DHCP6 driver to install various protocols.

Parameters:
[in] ImageHandle The handle of the UEFI image file.
[in] SystemTable The pointer to the EFI System Table.
Return values:
EFI_SUCCESS The operation completed successfully.
Others Unexpected error occurs.

References gDhcp6ComponentName, gDhcp6ComponentName2, and gDhcp6DriverBinding.

EFI_STATUS EFIAPI Dhcp6ServiceBindingCreateChild ( IN EFI_SERVICE_BINDING_PROTOCOL *  This,
IN OUT 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:
[in] This Pointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
[in,out] ChildHandle Pointer 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_SUCCES The protocol was added to ChildHandle.
EFI_INVALID_PARAMETER ChildHandle is NULL.
other The child handle was not created.

References _DHCP6_SERVICE::Child, _DHCP6_INSTANCE::Dhcp6, DHCP6_SERVICE_FROM_THIS, Dhcp6CreateInstance(), Dhcp6DestroyInstance(), gDhcp6DriverBinding, _DHCP6_INSTANCE::Handle, _DHCP6_INSTANCE::Link, _DHCP6_SERVICE::NumOfChild, _DHCP6_INSTANCE::Timer, and _DHCP6_SERVICE::UdpIo.

EFI_STATUS EFIAPI Dhcp6ServiceBindingDestroyChild ( 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:
[in] This Pointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
[in] ChildHandle Handle of the child to destroy
Return values:
EFI_SUCCES The protocol was removed from ChildHandle.
EFI_UNSUPPORTED ChildHandle does not support the protocol that is being removed.
EFI_INVALID_PARAMETER Child handle is NULL.
EFI_ACCESS_DENIED The protocol could not be removed from the ChildHandle because its services are being used.
other The child handle was not destroyed

References DHCP6_INSTANCE_FROM_THIS, DHCP6_SERVICE_FROM_THIS, Dhcp6DestroyInstance(), gDhcp6DriverBinding, _DHCP6_INSTANCE::InDestroy, _DHCP6_INSTANCE::Link, _DHCP6_SERVICE::NumOfChild, _DHCP6_INSTANCE::Service, and _DHCP6_SERVICE::UdpIo.


Variable Documentation

EFI_DRIVER_BINDING_PROTOCOL gDhcp6DriverBinding

EFI_SERVICE_BINDING_PROTOCOL gDhcp6ServiceBindingTemplate


Generated on Mon Sep 28 08:49:05 2015 for NetworkPkg[ALL] by  doxygen 1.5.7.1