TianoCore EDK2 master
Loading...
Searching...
No Matches
Mtftp6Driver.c File Reference
#include "Mtftp6Impl.h"

Go to the source code of this file.

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 - 2018, Intel Corporation. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file Mtftp6Driver.c.

Function Documentation

◆ Mtftp6CreateInstance()

EFI_STATUS Mtftp6CreateInstance ( IN MTFTP6_SERVICE Service,
OUT MTFTP6_INSTANCE **  Instance 
)

Create the MTFTP6 instance and initialize it.

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

Definition at line 195 of file Mtftp6Driver.c.

◆ Mtftp6CreateService()

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]ControllerThe controller to install the MTFTP6 service binding on.
[in]ImageThe driver binding image of the MTFTP6 driver.
[out]ServiceThe variable to receive the created service binding instance.
Return values
EFI_OUT_OF_RESOURCESFailed to allocate resources to create the instance
EFI_DEVICE_ERRORFailed to create a NULL UDP port to keep connection with UDP.
EFI_SUCCESSThe service instance is created for the controller.

Definition at line 71 of file Mtftp6Driver.c.

◆ Mtftp6DestroyChildEntryInHandleBuffer()

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]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 239 of file Mtftp6Driver.c.

◆ Mtftp6DestroyInstance()

VOID Mtftp6DestroyInstance ( IN MTFTP6_INSTANCE Instance)

Destroy the MTFTP6 instance and recycle the resources.

Parameters
[in]InstanceThe pointer to the MTFTP6 instance.

Definition at line 147 of file Mtftp6Driver.c.

◆ Mtftp6DestroyService()

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

Definition at line 36 of file Mtftp6Driver.c.

◆ Mtftp6DriverBindingStart()

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]ThisProtocol instance pointer.
[in]ControllerHandle of device to bind driver to.
[in]RemainingDevicePathOptional parameter use to pick a specific child device to start.
Return values
EFI_SUCCESSThis driver is added to Controller.
EFI_ALREADY_STARTEDThis driver is already running on Controller.
OthersThis driver does not support this device.

Definition at line 351 of file Mtftp6Driver.c.

◆ Mtftp6DriverBindingStop()

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]ThisProtocol instance pointer.
[in]ControllerHandle 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 Controller.
EFI_DEVICE_ERRORAn unexpected error.
OthersThis driver was not removed from this device.

Definition at line 447 of file Mtftp6Driver.c.

◆ Mtftp6DriverBindingSupported()

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]ThisProtocol instance pointer.
[in]ControllerHandle of device to test
[in]RemainingDevicePathOptional parameter use to pick a specific child. device to start.
Return values
EFI_SUCCESSThis driver supports this device.
OthersThis driver does not support this device.

Definition at line 315 of file Mtftp6Driver.c.

◆ Mtftp6DriverEntryPoint()

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]ImageHandleThe firmware allocated handle for the UEFI image.
[in]SystemTableThe 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 281 of file Mtftp6Driver.c.

◆ Mtftp6ServiceBindingCreateChild()

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]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.
OthersThe child handle was not created.

Definition at line 537 of file Mtftp6Driver.c.

◆ Mtftp6ServiceBindingDestroyChild()

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]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.
OthersThe child handle was not destroyed

Definition at line 636 of file Mtftp6Driver.c.

Variable Documentation

◆ gMtftp6DriverBinding

EFI_DRIVER_BINDING_PROTOCOL gMtftp6DriverBinding
Initial value:
= {
0xa,
}
#define NULL
Definition: Base.h:319
EFI_STATUS EFIAPI Mtftp6DriverBindingStop(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer)
Definition: Mtftp6Driver.c:447
EFI_STATUS EFIAPI Mtftp6DriverBindingStart(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
Definition: Mtftp6Driver.c:351
EFI_STATUS EFIAPI Mtftp6DriverBindingSupported(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
Definition: Mtftp6Driver.c:315

Definition at line 13 of file Mtftp6Driver.c.

◆ gMtftp6ServiceBindingTemplate

EFI_SERVICE_BINDING_PROTOCOL gMtftp6ServiceBindingTemplate
Initial value:
= {
}
EFI_STATUS EFIAPI Mtftp6ServiceBindingDestroyChild(IN EFI_SERVICE_BINDING_PROTOCOL *This, IN EFI_HANDLE ChildHandle)
Definition: Mtftp6Driver.c:636
EFI_STATUS EFIAPI Mtftp6ServiceBindingCreateChild(IN EFI_SERVICE_BINDING_PROTOCOL *This, IN OUT EFI_HANDLE *ChildHandle)
Definition: Mtftp6Driver.c:537

Definition at line 22 of file Mtftp6Driver.c.