TianoCore EDK2 master
Loading...
Searching...
No Matches
Dhcp6Driver.c File Reference
#include "Dhcp6Impl.h"

Go to the source code of this file.

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 OPTIONAL)
 
EFI_STATUS EFIAPI Dhcp6DriverBindingStart (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
 
EFI_STATUS EFIAPI Dhcp6DriverBindingStop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer OPTIONAL)
 
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 implementation for Dhcp6 Driver.

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

Definition in file Dhcp6Driver.c.

Function Documentation

◆ Dhcp6ConfigureUdpIo()

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]UdpIoThe pointer to Udp6Io to be configured.
[in]ContextThe pointer to the context.
Return values
EFI_SUCCESSThe Udp6Io is successfully configured.
OthersFailed to configure the Udp6Io.

Definition at line 40 of file Dhcp6Driver.c.

◆ Dhcp6CreateInstance()

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

Create the Dhcp6 instance and initialize it.

Parameters
[in]ServiceThe pointer to the Dhcp6 service.
[out]InstanceThe pointer to the Dhcp6 instance.
Return values
EFI_SUCCESSThe Dhcp6 instance is created.
EFI_OUT_OF_RESOURCESFailed to allocate resources.

Definition at line 271 of file Dhcp6Driver.c.

◆ Dhcp6CreateService()

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]ControllerThe controller to be installed DHCP6 service binding protocol.
[in]ImageHandleThe image handle of the Dhcp6 driver.
[out]ServiceThe return pointer of the new Dhcp6 service.
Return values
EFI_SUCCESSThe Dhcp6 service is created successfully.
EFI_DEVICE_ERRORAn unexpected system or network error occurred.
EFI_OUT_OF_RESOURCESFailed to allocate resource.

Definition at line 118 of file Dhcp6Driver.c.

◆ Dhcp6DestroyChildEntry()

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]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 338 of file Dhcp6Driver.c.

◆ Dhcp6DestroyInstance()

VOID Dhcp6DestroyInstance ( IN OUT DHCP6_INSTANCE Instance)

Destroy the Dhcp6 instance and recycle the resources.

Parameters
[in,out]InstanceThe pointer to the Dhcp6 instance.

Definition at line 220 of file Dhcp6Driver.c.

◆ Dhcp6DestroyService()

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]ServiceThe pointer to Dhcp6 service to be destroyed.

Definition at line 84 of file Dhcp6Driver.c.

◆ Dhcp6DriverBindingStart()

EFI_STATUS EFIAPI Dhcp6DriverBindingStart ( 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]ThisThe pointer to the driver binding protocol.
[in]ControllerHandleThe handle of device to be started.
[in]RemainingDevicePathOptional parameter use to pick a specific child device to be started.
Return values
EFI_SUCCESSThis driver is installed to ControllerHandle.
EFI_ALREADY_STARTEDThis driver is already running on ControllerHandle.
otherThis driver does not support this device.

Definition at line 438 of file Dhcp6Driver.c.

◆ Dhcp6DriverBindingStop()

EFI_STATUS EFIAPI Dhcp6DriverBindingStop ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  ControllerHandle,
IN UINTN  NumberOfChildren,
IN EFI_HANDLE *ChildHandleBuffer  OPTIONAL 
)

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
EFI_DEVICE_ERRORAn unexpected system or network error occurred.
otherThis driver was not removed from this device

Definition at line 514 of file Dhcp6Driver.c.

◆ Dhcp6DriverBindingSupported()

EFI_STATUS EFIAPI Dhcp6DriverBindingSupported ( 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]ThisThe pointer to the driver binding protocol.
[in]ControllerHandleThe handle of device to be tested.
[in]RemainingDevicePathOptional parameter use to pick a specific child device to be started.
Return values
EFI_SUCCESSThis driver supports this device.
OthersThis driver does not support this device.

Definition at line 402 of file Dhcp6Driver.c.

◆ Dhcp6DriverEntryPoint()

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]ImageHandleThe handle of the UEFI image file.
[in]SystemTableThe pointer to the EFI System Table.
Return values
EFI_SUCCESSThe operation completed successfully.
OthersUnexpected error occurs.

Definition at line 368 of file Dhcp6Driver.c.

◆ Dhcp6ServiceBindingCreateChild()

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]ThisPointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
[in,out]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.
otherThe child handle was not created.

Definition at line 611 of file Dhcp6Driver.c.

◆ Dhcp6ServiceBindingDestroyChild()

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]ThisPointer to the EFI_SERVICE_BINDING_PROTOCOL instance.
[in]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 724 of file Dhcp6Driver.c.

Variable Documentation

◆ gDhcp6DriverBinding

EFI_DRIVER_BINDING_PROTOCOL gDhcp6DriverBinding
Initial value:
= {
0xa,
}
EFI_STATUS EFIAPI Dhcp6DriverBindingStop(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer OPTIONAL)
Definition: Dhcp6Driver.c:514
EFI_STATUS EFIAPI Dhcp6DriverBindingSupported(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
Definition: Dhcp6Driver.c:402
EFI_STATUS EFIAPI Dhcp6DriverBindingStart(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
Definition: Dhcp6Driver.c:438
#define NULL
Definition: Base.h:319

Definition at line 13 of file Dhcp6Driver.c.

◆ gDhcp6ServiceBindingTemplate

EFI_SERVICE_BINDING_PROTOCOL gDhcp6ServiceBindingTemplate
Initial value:
= {
}
EFI_STATUS EFIAPI Dhcp6ServiceBindingCreateChild(IN EFI_SERVICE_BINDING_PROTOCOL *This, IN OUT EFI_HANDLE *ChildHandle)
Definition: Dhcp6Driver.c:611
EFI_STATUS EFIAPI Dhcp6ServiceBindingDestroyChild(IN EFI_SERVICE_BINDING_PROTOCOL *This, IN EFI_HANDLE ChildHandle)
Definition: Dhcp6Driver.c:724

Definition at line 22 of file Dhcp6Driver.c.