NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c File Reference


Functions

EFI_HANDLE PxeBcGetNicByIp4Children (IN EFI_HANDLE ControllerHandle)
EFI_HANDLE PxeBcGetNicByIp6Children (IN EFI_HANDLE ControllerHandle)
VOID PxeBcDestroyIp4Children (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN PXEBC_PRIVATE_DATA *Private)
VOID PxeBcDestroyIp6Children (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN PXEBC_PRIVATE_DATA *Private)
EFI_STATUS PxeBcCheckIpv6Support (IN EFI_HANDLE ControllerHandle, IN PXEBC_PRIVATE_DATA *Private, OUT BOOLEAN *Ipv6Support)
EFI_STATUS PxeBcCreateIp4Children (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN PXEBC_PRIVATE_DATA *Private)
EFI_STATUS PxeBcCreateIp6Children (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN PXEBC_PRIVATE_DATA *Private)
EFI_STATUS EFIAPI PxeBcDriverEntryPoint (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS EFIAPI PxeBcSupported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath, IN UINT8 IpVersion)
EFI_STATUS EFIAPI PxeBcStart (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath, IN UINT8 IpVersion)
EFI_STATUS EFIAPI PxeBcStop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer, IN UINT8 IpVersion)
EFI_STATUS EFIAPI PxeBcIp4DriverBindingSupported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
EFI_STATUS EFIAPI PxeBcIp4DriverBindingStart (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
EFI_STATUS EFIAPI PxeBcIp4DriverBindingStop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer)
EFI_STATUS EFIAPI PxeBcIp6DriverBindingSupported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
EFI_STATUS EFIAPI PxeBcIp6DriverBindingStart (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
EFI_STATUS EFIAPI PxeBcIp6DriverBindingStop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer)

Variables

EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp4DriverBinding
EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp6DriverBinding

Detailed Description

Driver Binding functions implementationfor for UefiPxeBc Driver.

(C) Copyright 2014 Hewlett-Packard Development Company, L.P.
Copyright (c) 2007 - 2015, 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 PxeBcCheckIpv6Support ( IN EFI_HANDLE  ControllerHandle,
IN PXEBC_PRIVATE_DATA Private,
OUT BOOLEAN *  Ipv6Support 
)

Check whether UNDI protocol supports IPv6.

Parameters:
[in] ControllerHandle Controller handle.
[in] Private Pointer to PXEBC_PRIVATE_DATA.
[out] Ipv6Support TRUE if UNDI supports IPv6.
Return values:
EFI_SUCCESS Get the result whether UNDI supports IPv6 by NII or AIP protocol successfully.
EFI_NOT_FOUND Don't know whether UNDI supports IPv6 since NII or AIP is not available.

Referenced by PxeBcCreateIp6Children().

EFI_STATUS PxeBcCreateIp4Children ( IN EFI_DRIVER_BINDING_PROTOCOL *  This,
IN EFI_HANDLE  ControllerHandle,
IN PXEBC_PRIVATE_DATA Private 
)

Create the opened instances based on IPv4.

Parameters:
[in] This Pointer to EFI_DRIVER_BINDING_PROTOCOL.
[in] ControllerHandle Handle of the child to destroy.
[in] Private Handle Pointer to PXEBC_PRIVATE_DATA.
Return values:
EFI_SUCCESS The instances based on IPv4 were all created successfully.
Others An unexpected error occurred.

References gLoadFileProtocolTemplate, PXEBC_DEFAULT_LIFETIME, PXEBC_VIRTUAL_NIC_SIGNATURE, and PxeBcDestroyIp4Children().

Referenced by PxeBcStart().

EFI_STATUS PxeBcCreateIp6Children ( IN EFI_DRIVER_BINDING_PROTOCOL *  This,
IN EFI_HANDLE  ControllerHandle,
IN PXEBC_PRIVATE_DATA Private 
)

Create the opened instances based on IPv6.

Parameters:
[in] This Pointer to EFI_DRIVER_BINDING_PROTOCOL.
[in] ControllerHandle Handle of the child to destroy.
[in] Private Handle Pointer to PXEBC_PRIVATE_DATA.
Return values:
EFI_SUCCESS The instances based on IPv6 were all created successfully.
Others An unexpected error occurred.

References gLoadFileProtocolTemplate, PXEBC_DEFAULT_HOPLIMIT, PXEBC_DEFAULT_LIFETIME, PXEBC_VIRTUAL_NIC_SIGNATURE, PxeBcCheckIpv6Support(), and PxeBcDestroyIp6Children().

Referenced by PxeBcStart().

VOID PxeBcDestroyIp4Children ( IN EFI_DRIVER_BINDING_PROTOCOL *  This,
IN PXEBC_PRIVATE_DATA Private 
)

Destroy the opened instances based on IPv4.

Parameters:
[in] This Pointer to the EFI_DRIVER_BINDING_PROTOCOL.
[in] Private Pointer to PXEBC_PRIVATE_DATA.

Referenced by PxeBcCreateIp4Children(), PxeBcStart(), and PxeBcStop().

VOID PxeBcDestroyIp6Children ( IN EFI_DRIVER_BINDING_PROTOCOL *  This,
IN PXEBC_PRIVATE_DATA Private 
)

Destroy the opened instances based on IPv6.

Parameters:
[in] This Pointer to the EFI_DRIVER_BINDING_PROTOCOL.
[in] Private Pointer to PXEBC_PRIVATE_DATA.

Referenced by PxeBcCreateIp6Children(), PxeBcStart(), and PxeBcStop().

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

The entry point for UefiPxeBc driver that installs the driver binding and component name protocol on its image.

Parameters:
[in] ImageHandle The Image handle of the driver.
[in] SystemTable The system table.
Returns:
EFI_SUCCESS

Others

References gPxeBcComponentName, gPxeBcComponentName2, gPxeBcIp4DriverBinding, and gPxeBcIp6DriverBinding.

EFI_HANDLE PxeBcGetNicByIp4Children ( IN EFI_HANDLE  ControllerHandle  ) 

Get the Nic handle using any child handle in the IPv4 stack.

Parameters:
[in] ControllerHandle Pointer to child handle over IPv4.
Returns:
NicHandle The pointer to the Nic handle.

Referenced by PxeBcComponentNameGetControllerName(), and PxeBcStop().

EFI_HANDLE PxeBcGetNicByIp6Children ( IN EFI_HANDLE  ControllerHandle  ) 

Get the Nic handle using any child handle in the IPv6 stack.

Parameters:
[in] ControllerHandle Pointer to child handle over IPv6.
Returns:
NicHandle The pointer to the Nic handle.

Referenced by PxeBcComponentNameGetControllerName(), and PxeBcStop().

EFI_STATUS EFIAPI PxeBcIp4DriverBindingStart ( 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 used 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 PxeBcStart().

EFI_STATUS EFIAPI PxeBcIp4DriverBindingStop ( 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.
Others This driver was not removed from this device.

References PxeBcStop().

EFI_STATUS EFIAPI PxeBcIp4DriverBindingSupported ( 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 used to pick a specific child device to be started.
Return values:
EFI_SUCCESS This driver supports this device.
EFI_UNSUPPORTED This driver does not support this device.

References PxeBcSupported().

EFI_STATUS EFIAPI PxeBcIp6DriverBindingStart ( 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 used 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 PxeBcStart().

EFI_STATUS EFIAPI PxeBcIp6DriverBindingStop ( 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.
Others This driver was not removed from this device.

References PxeBcStop().

EFI_STATUS EFIAPI PxeBcIp6DriverBindingSupported ( 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.
EFI_UNSUPPORTED This driver does not support this device.

References PxeBcSupported().

EFI_STATUS EFIAPI PxeBcStart ( IN EFI_DRIVER_BINDING_PROTOCOL *  This,
IN EFI_HANDLE  ControllerHandle,
IN EFI_DEVICE_PATH_PROTOCOL *  RemainingDevicePath,
IN UINT8  IpVersion 
)

Start this driver on ControllerHandle. This is the worker function for PxeBcIp4(6)DriverBindingStart.

Parameters:
[in] This The pointer to the driver binding protocol.
[in] ControllerHandle The handle of device to be started.
[in] RemainingDevicePath Optional parameter used to pick a specific child device to be started.
[in] IpVersion IP_VERSION_4 or IP_VERSION_6.
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 _PXEBC_PRIVATE_DATA::Controller, _PXEBC_PRIVATE_DATA::DevicePath, gPxeBcProtocolTemplate, _PXEBC_PRIVATE_DATA::Id, _PXEBC_PRIVATE_DATA::Image, _PXEBC_PRIVATE_DATA::Mode, _PXEBC_PRIVATE_DATA::Nii, _PXEBC_PRIVATE_DATA::PxeBc, PXEBC_PRIVATE_DATA_FROM_ID, PXEBC_PRIVATE_DATA_SIGNATURE, PxeBcCreateIp4Children(), PxeBcCreateIp6Children(), PxeBcDestroyIp4Children(), PxeBcDestroyIp6Children(), _PXEBC_PRIVATE_DATA::Signature, and _PXEBC_PRIVATE_DATA::Snp.

Referenced by PxeBcIp4DriverBindingStart(), and PxeBcIp6DriverBindingStart().

EFI_STATUS EFIAPI PxeBcStop ( IN EFI_DRIVER_BINDING_PROTOCOL *  This,
IN EFI_HANDLE  ControllerHandle,
IN UINTN  NumberOfChildren,
IN EFI_HANDLE *  ChildHandleBuffer,
IN UINT8  IpVersion 
)

Stop this driver on ControllerHandle. This is the worker function for PxeBcIp4(6)DriverBindingStop.

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.
[in] IpVersion IP_VERSION_4 or IP_VERSION_6.
Return values:
EFI_SUCCESS This driver was removed ControllerHandle.
EFI_DEVICE_ERROR An unexpected system or network error occurred.
Others This driver was not removed from this device

References _PXEBC_PRIVATE_DATA::Controller, _PXEBC_PRIVATE_DATA::Id, _PXEBC_PRIVATE_DATA::Ip4Nic, _PXEBC_PRIVATE_DATA::Ip6Nic, _PXEBC_VIRTUAL_NIC::Private, _PXEBC_PRIVATE_DATA::PxeBc, PXEBC_PRIVATE_DATA_FROM_ID, PXEBC_VIRTUAL_NIC_FROM_LOADFILE, PxeBcDestroyIp4Children(), PxeBcDestroyIp6Children(), PxeBcGetNicByIp4Children(), and PxeBcGetNicByIp6Children().

Referenced by PxeBcIp4DriverBindingStop(), and PxeBcIp6DriverBindingStop().

EFI_STATUS EFIAPI PxeBcSupported ( IN EFI_DRIVER_BINDING_PROTOCOL *  This,
IN EFI_HANDLE  ControllerHandle,
IN EFI_DEVICE_PATH_PROTOCOL *  RemainingDevicePath,
IN UINT8  IpVersion 
)

Test to see if this driver supports ControllerHandle. This is the worker function for PxeBcIp4(6)DriverBindingSupported.

Parameters:
[in] This The pointer to the driver binding protocol.
[in] ControllerHandle The handle of device to be tested.
[in] RemainingDevicePath Optional parameter used to pick a specific child device to be started.
[in] IpVersion IP_VERSION_4 or IP_VERSION_6.
Return values:
EFI_SUCCESS This driver supports this device.
EFI_UNSUPPORTED This driver does not support this device.

Referenced by PxeBcIp4DriverBindingSupported(), and PxeBcIp6DriverBindingSupported().


Variable Documentation

EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp4DriverBinding

EFI_DRIVER_BINDING_PROTOCOL gPxeBcIp6DriverBinding


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