Functions | |
VOID EFIAPI | IpSec2InstalledCallback (IN EFI_EVENT Event, IN VOID *Context) |
EFI_STATUS EFIAPI | Ip6DriverEntryPoint (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) |
EFI_STATUS EFIAPI | Ip6DriverBindingSupported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath) |
EFI_STATUS | Ip6CleanService (IN IP6_SERVICE *IpSb) |
EFI_STATUS | Ip6CreateService (IN EFI_HANDLE Controller, IN EFI_HANDLE ImageHandle, OUT IP6_SERVICE **Service) |
EFI_STATUS EFIAPI | Ip6DriverBindingStart (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath) |
EFI_STATUS EFIAPI | Ip6DestroyChildEntryInHandleBuffer (IN LIST_ENTRY *Entry, IN VOID *Context) |
EFI_STATUS EFIAPI | Ip6DriverBindingStop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer) |
EFI_STATUS EFIAPI | Ip6ServiceBindingCreateChild (IN EFI_SERVICE_BINDING_PROTOCOL *This, IN EFI_HANDLE *ChildHandle) |
EFI_STATUS EFIAPI | Ip6ServiceBindingDestroyChild (IN EFI_SERVICE_BINDING_PROTOCOL *This, IN EFI_HANDLE ChildHandle) |
Variables | |
EFI_DRIVER_BINDING_PROTOCOL | gIp6DriverBinding |
BOOLEAN | mIpSec2Installed = FALSE |
Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
(C) Copyright 2015 Hewlett-Packard Development Company, L.P.
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.
EFI_STATUS Ip6CleanService | ( | IN IP6_SERVICE * | IpSb | ) |
Clean up an IP6 service binding instance. It releases all the resource allocated by the instance. The instance may be partly initialized, or partly destroyed. If a resource is destroyed, it is marked as that in case the destroy failed and being called again later.
[in] | IpSb | The IP6 service binding instance to clean up. |
EFI_SUCCESS | The resource used by the instance are cleaned up. | |
Others | Failed to clean up some of the resources. |
References IP6_LINK_LOCAL_SCOPE, Ip6CleanAssembleTable(), Ip6CleanDefaultRouterList(), Ip6CleanInterface(), Ip6CleanPrefixListTable(), Ip6CleanRouteTable(), Ip6ConfigCleanInstance(), Ip6FreeNeighborEntry(), Ip6LeaveGroup(), and Ip6SetToAllNodeMulticast().
Referenced by Ip6CreateService(), Ip6DriverBindingStart(), and Ip6DriverBindingStop().
EFI_STATUS Ip6CreateService | ( | IN EFI_HANDLE | Controller, | |
IN EFI_HANDLE | ImageHandle, | |||
OUT IP6_SERVICE ** | Service | |||
) |
Create a new IP6 driver service binding protocol.
[in] | Controller | The controller that has MNP service binding installed. |
[in] | ImageHandle | The IP6 driver's image handle. |
[out] | Service | The variable to receive the newly created IP6 service. |
EFI_OUT_OF_RESOURCES | Failed to allocate some resources. | |
EFI_SUCCESS | A new IP6 service binding private is created. |
References _IP6_SERVICE::Assemble, _IP6_SERVICE::AutonomousPrefix, _IP6_SERVICE::BaseReachableTime, IP6_LINK_RX_TOKEN::CallBack, _IP6_SERVICE::Children, IP6_LINK_RX_TOKEN::Context, _IP6_SERVICE::Controller, _IP6_SERVICE::CurHopLimit, IP6_CONFIG_DATA_ITEM::Data, _IP6_CONFIG_INSTANCE::DataItem, IP6_CONFIG_DATA_ITEM::DataSize, _IP6_SERVICE::DefaultInterface, _IP6_SERVICE::DefaultRouterList, _IP6_SERVICE::Dhcp6NeedInfoRequest, _IP6_SERVICE::Dhcp6NeedStart, _IP6_SERVICE::FasterTimer, IP6_MLD_SERVICE_DATA::Groups, _IP6_SERVICE::Image, _IP6_SERVICE::InterfaceId, _IP6_SERVICE::InterfaceIdLen, _IP6_SERVICE::Interfaces, IP6_ETHER_PROTO, IP6_HOP_LIMIT, IP6_IF_ID_LEN, IP6_LINK_RX_SIGNATURE, IP6_MAX_RTR_SOLICITATIONS, IP6_MIN_LINK_MTU, IP6_REACHABLE_TIME, IP6_RETRANS_TIMER, IP6_SERVICE_SIGNATURE, IP6_SERVICE_UNSTARTED, Ip6CleanService(), Ip6ConfigInitInstance(), _IP6_SERVICE::Ip6ConfigInstance, Ip6CreateAssembleTable(), Ip6CreateInterface(), Ip6CreateRouteTable(), Ip6InitMld(), Ip6NdFasterTimerTicking(), Ip6OnFrameReceived(), Ip6ServiceBindingCreateChild(), Ip6ServiceBindingDestroyChild(), Ip6ServiceConfigMnp(), Ip6TimerTicking(), Ip6UpdateReachableTime(), _IP6_INTERFACE::Link, _IP6_SERVICE::LinkLocalAddr, _IP6_SERVICE::LinkLocalDadFail, _IP6_SERVICE::LinkLocalOk, _IP6_SERVICE::LinkMTU, _IP6_SERVICE::MacString, _IP6_SERVICE::MaxPacketSize, _IP6_SERVICE::MldCtrl, IP6_MLD_SERVICE_DATA::Mldv1QuerySeen, _IP6_SERVICE::Mnp, _IP6_SERVICE::MnpChildHandle, _IP6_SERVICE::MnpConfigData, IP6_LINK_RX_TOKEN::MnpToken, _IP6_SERVICE::NeighborTable, _IP6_SERVICE::NumChildren, _IP6_SERVICE::OldMaxPacketSize, _IP6_SERVICE::OnlinkPrefix, IP6_CONFIG_DATA::Ptr, _IP6_SERVICE::RecvRequest, _IP6_SERVICE::RetransTimer, _IP6_SERVICE::RoundRobin, _IP6_SERVICE::RouterAdvertiseReceived, _IP6_SERVICE::RouteTable, _IP6_SERVICE::ServiceBinding, IP6_CONFIG_DATA_ITEM::SetData, IP6_LINK_RX_TOKEN::Signature, _IP6_SERVICE::Signature, _IP6_SERVICE::SnpMode, _IP6_SERVICE::SolicitTimer, _IP6_SERVICE::State, _IP6_SERVICE::Ticks, and _IP6_SERVICE::Timer.
Referenced by Ip6DriverBindingStart().
EFI_STATUS EFIAPI Ip6DestroyChildEntryInHandleBuffer | ( | IN LIST_ENTRY * | Entry, | |
IN VOID * | Context | |||
) |
Callback function which provided by user to remove one node in NetDestroyLinkList process.
[in] | Entry | The entry to be removed. |
[in] | Context | Pointer to the callback context corresponds to the Context in NetDestroyLinkList. |
EFI_SUCCESS | The entry has been removed successfully. | |
Others | Fail to remove the entry. |
References _IP6_PROTOCOL::Handle, and IP6_PROTOCOL_SIGNATURE.
Referenced by Ip6DriverBindingStop().
EFI_STATUS EFIAPI Ip6DriverBindingStart | ( | IN EFI_DRIVER_BINDING_PROTOCOL * | This, | |
IN EFI_HANDLE | ControllerHandle, | |||
IN EFI_DEVICE_PATH_PROTOCOL * | RemainingDevicePath | |||
) |
Start this driver on ControllerHandle.
[in] | This | Protocol instance pointer. |
[in] | ControllerHandle | Handle of device to bind driver to. |
[in] | RemainingDevicePath | Optional parameter used to pick a specific child device to start. |
EFI_SUCCES | This driver is added to ControllerHandle. | |
EFI_ALREADY_STARTED | This driver is already running on ControllerHandle. | |
other | This driver does not support this device. |
References _IP6_SERVICE::FasterTimer, IP6_ONE_SECOND_IN_MS, IP6_TIMER_INTERVAL_IN_MS, Ip6AcceptFrame(), Ip6CleanService(), _IP6_CONFIG_INSTANCE::Ip6Config, _IP6_SERVICE::Ip6ConfigInstance, Ip6CreateService(), Ip6ReceiveFrame(), mIp6Id, _IP6_SERVICE::ServiceBinding, and _IP6_SERVICE::Timer.
EFI_STATUS EFIAPI Ip6DriverBindingStop | ( | IN EFI_DRIVER_BINDING_PROTOCOL * | This, | |
IN EFI_HANDLE | ControllerHandle, | |||
IN UINTN | NumberOfChildren, | |||
IN EFI_HANDLE * | ChildHandleBuffer | |||
) |
Stop this driver on ControllerHandle.
[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 | An array of child handles to be freed. May be NULL if NumberOfChildren is 0. |
EFI_SUCCESS | The device was stopped. | |
EFI_DEVICE_ERROR | The device could not be stopped due to a device error. |
References IP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT::ChildHandleBuffer, _IP6_SERVICE::Children, _IP6_CONFIG_INSTANCE::Dhcp6Event, IP6_SERVICE_DESTROY, IP6_SERVICE_FROM_PROTOCOL, Ip6CleanService(), _IP6_CONFIG_INSTANCE::Ip6Config, Ip6ConfigDestroyDhcp6(), _IP6_SERVICE::Ip6ConfigInstance, Ip6DestroyChildEntryInHandleBuffer(), IP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT::NumberOfChildren, IP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT::ServiceBinding, and _IP6_SERVICE::State.
EFI_STATUS EFIAPI Ip6DriverBindingSupported | ( | IN EFI_DRIVER_BINDING_PROTOCOL * | This, | |
IN EFI_HANDLE | ControllerHandle, | |||
IN EFI_DEVICE_PATH_PROTOCOL * | RemainingDevicePath | |||
) |
Test to see if this driver supports ControllerHandle.
[in] | This | Protocol instance pointer. |
[in] | ControllerHandle | Handle of device to test. |
[in] | RemainingDevicePath | Optional parameter use to pick a specific child device to start. |
EFI_SUCCESS | This driver supports this device. | |
EFI_ALREADY_STARTED | This driver is already running on this device. | |
other | This driver does not support this device. |
EFI_STATUS EFIAPI Ip6DriverEntryPoint | ( | 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.
The entry point for IP6 driver which installs the driver binding and component name protocol on its image.
[in] | ImageHandle | The firmware allocated handle for the UEFI image. |
[in] | SystemTable | A pointer to the EFI System Table. |
EFI_SUCCESS | The operation completed successfully. | |
EFI_OUT_OF_RESOURCES | The request could not be completed due to a lack of resources. |
References gIp6ComponentName, gIp6ComponentName2, gIp6DriverBinding, and IpSec2InstalledCallback().
EFI_STATUS EFIAPI Ip6ServiceBindingCreateChild | ( | IN EFI_SERVICE_BINDING_PROTOCOL * | This, | |
IN EFI_HANDLE * | ChildHandle | |||
) |
Creates a child handle with a set of I/O services.
[in] | This | Protocol instance pointer. |
[in] | ChildHandle | Pointer to the handle of the child to create. If it is NULL, then a new handle is created. If it is not NULL, then the I/O services are added to the existing child handle. |
EFI_SUCCES | The child handle was created with the I/O services. | |
EFI_OUT_OF_RESOURCES | There are not enough resources availabe to create the child. | |
other | The child handle was not created. |
References _IP6_SERVICE::Children, gIp6DriverBinding, _IP6_PROTOCOL::Handle, IP6_SERVICE_FROM_PROTOCOL, Ip6CleanProtocol(), Ip6InitProtocol(), _IP6_PROTOCOL::Ip6Proto, _IP6_PROTOCOL::Link, _IP6_SERVICE::LinkLocalDadFail, _IP6_SERVICE::MnpChildHandle, and _IP6_SERVICE::NumChildren.
Referenced by Ip6CreateService().
EFI_STATUS EFIAPI Ip6ServiceBindingDestroyChild | ( | IN EFI_SERVICE_BINDING_PROTOCOL * | This, | |
IN EFI_HANDLE | ChildHandle | |||
) |
Destroys a child handle with a set of I/O services.
[in] | This | Protocol instance pointer. |
[in] | ChildHandle | Handle of the child to destroy. |
EFI_SUCCES | The I/O services were removed from the child handle. | |
EFI_UNSUPPORTED | The child handle does not support the I/O services that are being removed. | |
EFI_INVALID_PARAMETER | Child handle is NULL. | |
EFI_ACCESS_DENIED | The child handle could not be destroyed because its I/O services are being used. | |
other | The child handle was not destroyed. |
References gIp6DriverBinding, _IP6_PROTOCOL::InDestroy, IP6_INSTANCE_FROM_PROTOCOL, IP6_SERVICE_FROM_PROTOCOL, Ip6CleanProtocol(), _IP6_PROTOCOL::Ip6Proto, _IP6_PROTOCOL::Link, _IP6_SERVICE::MnpChildHandle, _IP6_SERVICE::NumChildren, and _IP6_PROTOCOL::Service.
Referenced by Ip6CreateService().
VOID EFIAPI IpSec2InstalledCallback | ( | IN EFI_EVENT | Event, | |
IN VOID * | Context | |||
) |
Callback function for IpSec2 Protocol install.
[in] | Event | Event whose notification function is being invoked |
[in] | Context | Pointer to the notification function's context |
References mIpSec2Installed.
Referenced by Ip6DriverEntryPoint().
EFI_DRIVER_BINDING_PROTOCOL gIp6DriverBinding |
Initial value:
{ Ip6DriverBindingSupported, Ip6DriverBindingStart, Ip6DriverBindingStop, 0xa, NULL, NULL }
Referenced by Ip6DriverEntryPoint(), Ip6ServiceBindingCreateChild(), and Ip6ServiceBindingDestroyChild().
BOOLEAN mIpSec2Installed = FALSE |
Referenced by Ip6IpSecProcessPacket(), and IpSec2InstalledCallback().