mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-12-18 15:27:48 +01:00
132 lines
4.1 KiB
C
132 lines
4.1 KiB
C
|
/** @file
|
||
|
Mtftp drivers function header.
|
||
|
|
||
|
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||
|
|
||
|
**/
|
||
|
|
||
|
#ifndef __EFI_MTFTP4_DRIVER_H__
|
||
|
#define __EFI_MTFTP4_DRIVER_H__
|
||
|
|
||
|
#include <Uefi.h>
|
||
|
|
||
|
#include <Protocol/ServiceBinding.h>
|
||
|
|
||
|
#include <Library/NetLib.h>
|
||
|
#include <Library/UefiLib.h>
|
||
|
#include <Library/UefiDriverEntryPoint.h>
|
||
|
|
||
|
extern EFI_COMPONENT_NAME_PROTOCOL gMtftp4ComponentName;
|
||
|
extern EFI_COMPONENT_NAME2_PROTOCOL gMtftp4ComponentName2;
|
||
|
extern EFI_DRIVER_BINDING_PROTOCOL gMtftp4DriverBinding;
|
||
|
extern EFI_UNICODE_STRING_TABLE *gMtftp4ControllerNameTable;
|
||
|
|
||
|
/**
|
||
|
Test whether MTFTP driver support this controller.
|
||
|
|
||
|
@param This The MTFTP driver binding instance
|
||
|
@param Controller The controller to test
|
||
|
@param RemainingDevicePath The remaining device path
|
||
|
|
||
|
@retval EFI_SUCCESS The controller has UDP service binding protocol
|
||
|
installed, MTFTP can support it.
|
||
|
@retval Others MTFTP can't support the controller.
|
||
|
|
||
|
**/
|
||
|
EFI_STATUS
|
||
|
EFIAPI
|
||
|
Mtftp4DriverBindingSupported (
|
||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||
|
IN EFI_HANDLE Controller,
|
||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Start the MTFTP driver on this controller.
|
||
|
|
||
|
MTFTP driver will install a MTFTP SERVICE BINDING protocol on the supported
|
||
|
controller, which can be used to create/destroy MTFTP children.
|
||
|
|
||
|
@param This The MTFTP driver binding protocol.
|
||
|
@param Controller The controller to manage.
|
||
|
@param RemainingDevicePath Remaining device path.
|
||
|
|
||
|
@retval EFI_ALREADY_STARTED The MTFTP service binding protocol has been
|
||
|
started on the controller.
|
||
|
@retval EFI_SUCCESS The MTFTP service binding is installed on the
|
||
|
controller.
|
||
|
|
||
|
**/
|
||
|
EFI_STATUS
|
||
|
EFIAPI
|
||
|
Mtftp4DriverBindingStart (
|
||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||
|
IN EFI_HANDLE Controller,
|
||
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Stop the MTFTP driver on controller. The controller is a UDP
|
||
|
child handle.
|
||
|
|
||
|
@param This The MTFTP driver binding protocol
|
||
|
@param Controller The controller to stop
|
||
|
@param NumberOfChildren The number of children
|
||
|
@param ChildHandleBuffer The array of the child handle.
|
||
|
|
||
|
@retval EFI_SUCCESS The driver is stopped on the controller.
|
||
|
@retval EFI_DEVICE_ERROR Failed to stop the driver on the controller.
|
||
|
|
||
|
**/
|
||
|
EFI_STATUS
|
||
|
EFIAPI
|
||
|
Mtftp4DriverBindingStop (
|
||
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||
|
IN EFI_HANDLE Controller,
|
||
|
IN UINTN NumberOfChildren,
|
||
|
IN EFI_HANDLE *ChildHandleBuffer
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Create a MTFTP child for the service binding instance, then
|
||
|
install the MTFTP protocol to the ChildHandle.
|
||
|
|
||
|
@param This The MTFTP service binding instance.
|
||
|
@param ChildHandle The Child handle to install the MTFTP protocol.
|
||
|
|
||
|
@retval EFI_INVALID_PARAMETER The parameter is invalid.
|
||
|
@retval EFI_OUT_OF_RESOURCES Failed to allocate resource for the new child.
|
||
|
@retval EFI_SUCCESS The child is successfully create.
|
||
|
|
||
|
**/
|
||
|
EFI_STATUS
|
||
|
EFIAPI
|
||
|
Mtftp4ServiceBindingCreateChild (
|
||
|
IN EFI_SERVICE_BINDING_PROTOCOL *This,
|
||
|
IN EFI_HANDLE *ChildHandle
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Destroy one of the service binding's child.
|
||
|
|
||
|
@param This The service binding instance
|
||
|
@param ChildHandle The child handle to destroy
|
||
|
|
||
|
@retval EFI_INVALID_PARAMETER The parameter is invaid.
|
||
|
@retval EFI_UNSUPPORTED The child may have already been destroyed.
|
||
|
@retval EFI_SUCCESS The child is destroyed and removed from the
|
||
|
parent's child list.
|
||
|
|
||
|
**/
|
||
|
EFI_STATUS
|
||
|
EFIAPI
|
||
|
Mtftp4ServiceBindingDestroyChild (
|
||
|
IN EFI_SERVICE_BINDING_PROTOCOL *This,
|
||
|
IN EFI_HANDLE ChildHandle
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
#endif
|