NetworkPkg/Mtftp6Dxe/Mtftp6Driver.c File Reference


Functions

VOID Mtftp6DestroyService (IN MTFTP6_SERVICE *Service)
EFI_STATUS Mtftp6CreateService (IN EFI_HANDLE Controller, IN EFI_HANDLE Image, OUT MTFTP6_SERVICE **Service)
VOID Mtftp6DestroyInstance (IN MTFTP6_INSTANCE *Instance)
EFI_STATUS Mtftp6CreateInstance (IN MTFTP6_SERVICE *Service, OUT MTFTP6_INSTANCE **Instance)
EFI_STATUS EFIAPI Mtftp6DestroyChildEntryInHandleBuffer (IN LIST_ENTRY *Entry, IN VOID *Context)
EFI_STATUS EFIAPI Mtftp6DriverEntryPoint (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS EFIAPI Mtftp6DriverBindingSupported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
EFI_STATUS EFIAPI Mtftp6DriverBindingStart (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
EFI_STATUS EFIAPI Mtftp6DriverBindingStop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer)
EFI_STATUS EFIAPI Mtftp6ServiceBindingCreateChild (IN EFI_SERVICE_BINDING_PROTOCOL *This, IN OUT EFI_HANDLE *ChildHandle)
EFI_STATUS EFIAPI Mtftp6ServiceBindingDestroyChild (IN EFI_SERVICE_BINDING_PROTOCOL *This, IN EFI_HANDLE ChildHandle)

Variables

EFI_DRIVER_BINDING_PROTOCOL gMtftp6DriverBinding
EFI_SERVICE_BINDING_PROTOCOL gMtftp6ServiceBindingTemplate

Detailed Description

Driver Binding functions and Service Binding functions implementation for Mtftp6 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 Mtftp6CreateInstance ( IN MTFTP6_SERVICE Service,
OUT MTFTP6_INSTANCE **  Instance 
)

Create the MTFTP6 instance and initialize it.

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

References _MTFTP6_INSTANCE::BlkList, gMtftp6ProtocolTemplate, _MTFTP6_INSTANCE::InDestroy, _MTFTP6_INSTANCE::Link, _MTFTP6_INSTANCE::Mtftp6, MTFTP6_INSTANCE_SIGNATURE, _MTFTP6_INSTANCE::Service, and _MTFTP6_INSTANCE::Signature.

Referenced by Mtftp6ServiceBindingCreateChild().

EFI_STATUS Mtftp6CreateService ( IN EFI_HANDLE  Controller,
IN EFI_HANDLE  Image,
OUT MTFTP6_SERVICE **  Service 
)

Create then initialize a MTFTP6 service binding instance.

Parameters:
[in] Controller The controller to install the MTFTP6 service binding on.
[in] Image The driver binding image of the MTFTP6 driver.
[out] Service The variable to receive the created service binding instance.
Return values:
EFI_OUT_OF_RESOURCES Failed to allocate resources to create the instance
EFI_DEVICE_ERROR Failed to create a NULL UDP port to keep connection with UDP.
EFI_SUCCESS The service instance is created for the controller.

References _MTFTP6_SERVICE::Children, _MTFTP6_SERVICE::ChildrenNum, _MTFTP6_SERVICE::Controller, _MTFTP6_SERVICE::DummyUdpIo, gMtftp6ServiceBindingTemplate, _MTFTP6_SERVICE::Image, MTFTP6_SERVICE_SIGNATURE, Mtftp6ConfigDummyUdpIo(), Mtftp6OnTimerTick(), _MTFTP6_SERVICE::ServiceBinding, _MTFTP6_SERVICE::Signature, and _MTFTP6_SERVICE::Timer.

Referenced by Mtftp6DriverBindingStart().

EFI_STATUS EFIAPI Mtftp6DestroyChildEntryInHandleBuffer ( 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 _MTFTP6_INSTANCE::Handle, and MTFTP6_INSTANCE_SIGNATURE.

Referenced by Mtftp6DriverBindingStop().

VOID Mtftp6DestroyInstance ( IN MTFTP6_INSTANCE Instance  ) 

Destroy the MTFTP6 instance and recycle the resources.

Parameters:
[in] Instance The pointer to the MTFTP6 instance.

Referenced by Mtftp6ServiceBindingCreateChild(), and Mtftp6ServiceBindingDestroyChild().

VOID Mtftp6DestroyService ( IN MTFTP6_SERVICE Service  ) 

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

Parameters:
[in] Service The MTFTP6 service to be destroyed.

Referenced by Mtftp6DriverBindingStart(), and Mtftp6DriverBindingStop().

EFI_STATUS EFIAPI Mtftp6DriverBindingStart ( IN EFI_DRIVER_BINDING_PROTOCOL *  This,
IN EFI_HANDLE  Controller,
IN EFI_DEVICE_PATH_PROTOCOL *  RemainingDevicePath 
)

Start this driver on Controller. This service is called by the EFI boot service ConnectController(). In order to make drivers as small as possible, there are 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 Protocol instance pointer.
[in] Controller Handle of device to bind driver to.
[in] RemainingDevicePath Optional parameter use to pick a specific child device to start.
Return values:
EFI_SUCCESS This driver is added to Controller.
EFI_ALREADY_STARTED This driver is already running on Controller.
Others This driver does not support this device.

References Mtftp6CreateService(), Mtftp6DestroyService(), _MTFTP6_SERVICE::ServiceBinding, and _MTFTP6_SERVICE::Timer.

EFI_STATUS EFIAPI Mtftp6DriverBindingStop ( IN EFI_DRIVER_BINDING_PROTOCOL *  This,
IN EFI_HANDLE  Controller,
IN UINTN  NumberOfChildren,
IN EFI_HANDLE *  ChildHandleBuffer 
)

Stop this driver on Controller. This service is called by the EFI boot service DisconnectController(). In order to make drivers as small as possible, there are 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] Controller 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 Controller.
EFI_DEVICE_ERROR An unexpected error.
Others This driver was not removed from this device.

References MTFTP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT::ChildHandleBuffer, _MTFTP6_SERVICE::Children, MTFTP6_SERVICE_FROM_THIS, Mtftp6DestroyChildEntryInHandleBuffer(), Mtftp6DestroyService(), MTFTP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT::NumberOfChildren, and MTFTP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT::ServiceBinding.

EFI_STATUS EFIAPI Mtftp6DriverBindingSupported ( IN EFI_DRIVER_BINDING_PROTOCOL *  This,
IN EFI_HANDLE  Controller,
IN EFI_DEVICE_PATH_PROTOCOL *  RemainingDevicePath 
)

Test to see if this driver supports Controller. This service is called by the EFI boot service ConnectController(). In order to make drivers as small as possible, there are 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 Protocol instance pointer.
[in] Controller Handle of device to test
[in] RemainingDevicePath Optional parameter use to pick a specific child. device to start.
Return values:
EFI_SUCCESS This driver supports this device.
Others This driver does not support this device.

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

Entry point of the MTFTP6 driver to install various protocols.

Parameters:
[in] ImageHandle The firmware allocated handle for the UEFI image.
[in] SystemTable The pointer to the EFI System Table.
Return values:
EFI_SUCCESS The operation completed successfully.
EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.

References gMtftp6ComponentName, gMtftp6ComponentName2, and gMtftp6DriverBinding.

EFI_STATUS EFIAPI Mtftp6ServiceBindingCreateChild ( 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.
Others The child handle was not created.

References _MTFTP6_SERVICE::Children, _MTFTP6_SERVICE::ChildrenNum, _MTFTP6_SERVICE::DummyUdpIo, gMtftp6DriverBinding, _MTFTP6_INSTANCE::Handle, _MTFTP6_INSTANCE::Link, _MTFTP6_INSTANCE::Mtftp6, MTFTP6_SERVICE_FROM_THIS, Mtftp6CreateInstance(), and Mtftp6DestroyInstance().

EFI_STATUS EFIAPI Mtftp6ServiceBindingDestroyChild ( 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.
Others The child handle was not destroyed

References _MTFTP6_SERVICE::ChildrenNum, _MTFTP6_SERVICE::DummyUdpIo, gMtftp6DriverBinding, _MTFTP6_INSTANCE::Handle, _MTFTP6_INSTANCE::InDestroy, _MTFTP6_INSTANCE::Link, _MTFTP6_INSTANCE::McastUdpIo, MTFTP6_INSTANCE_FROM_THIS, MTFTP6_SERVICE_FROM_THIS, Mtftp6DestroyInstance(), _MTFTP6_INSTANCE::Service, and _MTFTP6_INSTANCE::UdpIo.


Variable Documentation

EFI_DRIVER_BINDING_PROTOCOL gMtftp6DriverBinding

EFI_SERVICE_BINDING_PROTOCOL gMtftp6ServiceBindingTemplate


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