TianoCore EDK2 master
Loading...
Searching...
No Matches
Ip6Driver.c File Reference
#include "Ip6Impl.h"

Go to the source code of this file.

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 OPTIONAL)
 
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 OPTIONAL)
 
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 OPTIONAL)
 
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
 

Detailed Description

The driver binding and service binding protocol for IP6 driver.

Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved.
(C) Copyright 2015 Hewlett-Packard Development Company, L.P.
Copyright (c) Microsoft Corporation SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file Ip6Driver.c.

Function Documentation

◆ Ip6CleanService()

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.

Parameters
[in]IpSbThe IP6 service binding instance to clean up.
Return values
EFI_SUCCESSThe resource used by the instance are cleaned up.
OthersFailed to clean up some of the resources.

Definition at line 145 of file Ip6Driver.c.

◆ Ip6CreateService()

EFI_STATUS Ip6CreateService ( IN EFI_HANDLE  Controller,
IN EFI_HANDLE  ImageHandle,
OUT IP6_SERVICE **  Service 
)

Create a new IP6 driver service binding protocol.

Parameters
[in]ControllerThe controller that has MNP service binding installed.
[in]ImageHandleThe IP6 driver's image handle.
[out]ServiceThe variable to receive the newly created IP6 service.
Return values
EFI_OUT_OF_RESOURCESFailed to allocate some resources.
EFI_SUCCESSA new IP6 service binding private is created.

Definition at line 259 of file Ip6Driver.c.

◆ Ip6DestroyChildEntryInHandleBuffer()

EFI_STATUS EFIAPI Ip6DestroyChildEntryInHandleBuffer ( 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 702 of file Ip6Driver.c.

◆ Ip6DriverBindingStart()

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

Start this driver on ControllerHandle.

Parameters
[in]ThisProtocol instance pointer.
[in]ControllerHandleHandle of device to bind driver to.
[in]RemainingDevicePathOptional parameter used 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 513 of file Ip6Driver.c.

◆ Ip6DriverBindingStop()

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

Stop this driver on ControllerHandle.

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]ChildHandleBufferAn array of child handles to be freed. May be NULL if NumberOfChildren is 0.
Return values
EFI_SUCCESSThe device was stopped.
EFI_DEVICE_ERRORThe device could not be stopped due to a device error.

Definition at line 744 of file Ip6Driver.c.

◆ Ip6DriverBindingSupported()

EFI_STATUS EFIAPI Ip6DriverBindingSupported ( 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.

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 112 of file Ip6Driver.c.

◆ Ip6DriverEntryPoint()

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.

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 72 of file Ip6Driver.c.

◆ Ip6ServiceBindingCreateChild()

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.

Parameters
[in]ThisProtocol instance pointer.
[in]ChildHandlePointer 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.
Return values
EFI_SUCCESSThe child handle was created with the I/O services.
EFI_OUT_OF_RESOURCESThere are not enough resources available to create the child.
otherThe child handle was not created.

Definition at line 845 of file Ip6Driver.c.

◆ Ip6ServiceBindingDestroyChild()

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.

Parameters
[in]ThisProtocol instance pointer.
[in]ChildHandleHandle of the child to destroy.
Return values
EFI_SUCCESSThe I/O services were removed from the child handle.
EFI_UNSUPPORTEDThe child handle does not support the I/O services that are being removed.
EFI_INVALID_PARAMETERChild handle is NULL.
EFI_ACCESS_DENIEDThe child handle could not be destroyed because its I/O services are being used.
otherThe child handle was not destroyed.

Definition at line 950 of file Ip6Driver.c.

◆ IpSec2InstalledCallback()

VOID EFIAPI IpSec2InstalledCallback ( IN EFI_EVENT  Event,
IN VOID *  Context 
)

Callback function for IpSec2 Protocol install.

Parameters
[in]EventEvent whose notification function is being invoked
[in]ContextPointer to the notification function's context

Definition at line 33 of file Ip6Driver.c.

Variable Documentation

◆ gIp6DriverBinding

EFI_DRIVER_BINDING_PROTOCOL gIp6DriverBinding
Initial value:
= {
0xa,
}
EFI_STATUS EFIAPI Ip6DriverBindingStart(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
Definition: Ip6Driver.c:513
EFI_STATUS EFIAPI Ip6DriverBindingSupported(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
Definition: Ip6Driver.c:112
EFI_STATUS EFIAPI Ip6DriverBindingStop(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer OPTIONAL)
Definition: Ip6Driver.c:744
#define NULL
Definition: Base.h:319

Definition at line 13 of file Ip6Driver.c.

◆ mIpSec2Installed

BOOLEAN mIpSec2Installed = FALSE

Definition at line 22 of file Ip6Driver.c.