]> git.proxmox.com Git - mirror_edk2.git/blob - NetworkPkg/Mtftp4Dxe/Mtftp4Driver.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / NetworkPkg / Mtftp4Dxe / Mtftp4Driver.h
1 /** @file
2 Mtftp drivers function header.
3
4 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 **/
8
9 #ifndef __EFI_MTFTP4_DRIVER_H__
10 #define __EFI_MTFTP4_DRIVER_H__
11
12 #include <Uefi.h>
13
14 #include <Protocol/ServiceBinding.h>
15
16 #include <Library/NetLib.h>
17 #include <Library/UefiLib.h>
18 #include <Library/UefiDriverEntryPoint.h>
19
20 extern EFI_COMPONENT_NAME_PROTOCOL gMtftp4ComponentName;
21 extern EFI_COMPONENT_NAME2_PROTOCOL gMtftp4ComponentName2;
22 extern EFI_DRIVER_BINDING_PROTOCOL gMtftp4DriverBinding;
23 extern EFI_UNICODE_STRING_TABLE *gMtftp4ControllerNameTable;
24
25 /**
26 Test whether MTFTP driver support this controller.
27
28 @param This The MTFTP driver binding instance
29 @param Controller The controller to test
30 @param RemainingDevicePath The remaining device path
31
32 @retval EFI_SUCCESS The controller has UDP service binding protocol
33 installed, MTFTP can support it.
34 @retval Others MTFTP can't support the controller.
35
36 **/
37 EFI_STATUS
38 EFIAPI
39 Mtftp4DriverBindingSupported (
40 IN EFI_DRIVER_BINDING_PROTOCOL *This,
41 IN EFI_HANDLE Controller,
42 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
43 );
44
45 /**
46 Start the MTFTP driver on this controller.
47
48 MTFTP driver will install a MTFTP SERVICE BINDING protocol on the supported
49 controller, which can be used to create/destroy MTFTP children.
50
51 @param This The MTFTP driver binding protocol.
52 @param Controller The controller to manage.
53 @param RemainingDevicePath Remaining device path.
54
55 @retval EFI_ALREADY_STARTED The MTFTP service binding protocol has been
56 started on the controller.
57 @retval EFI_SUCCESS The MTFTP service binding is installed on the
58 controller.
59
60 **/
61 EFI_STATUS
62 EFIAPI
63 Mtftp4DriverBindingStart (
64 IN EFI_DRIVER_BINDING_PROTOCOL *This,
65 IN EFI_HANDLE Controller,
66 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
67 );
68
69 /**
70 Stop the MTFTP driver on controller. The controller is a UDP
71 child handle.
72
73 @param This The MTFTP driver binding protocol
74 @param Controller The controller to stop
75 @param NumberOfChildren The number of children
76 @param ChildHandleBuffer The array of the child handle.
77
78 @retval EFI_SUCCESS The driver is stopped on the controller.
79 @retval EFI_DEVICE_ERROR Failed to stop the driver on the controller.
80
81 **/
82 EFI_STATUS
83 EFIAPI
84 Mtftp4DriverBindingStop (
85 IN EFI_DRIVER_BINDING_PROTOCOL *This,
86 IN EFI_HANDLE Controller,
87 IN UINTN NumberOfChildren,
88 IN EFI_HANDLE *ChildHandleBuffer
89 );
90
91 /**
92 Create a MTFTP child for the service binding instance, then
93 install the MTFTP protocol to the ChildHandle.
94
95 @param This The MTFTP service binding instance.
96 @param ChildHandle The Child handle to install the MTFTP protocol.
97
98 @retval EFI_INVALID_PARAMETER The parameter is invalid.
99 @retval EFI_OUT_OF_RESOURCES Failed to allocate resource for the new child.
100 @retval EFI_SUCCESS The child is successfully create.
101
102 **/
103 EFI_STATUS
104 EFIAPI
105 Mtftp4ServiceBindingCreateChild (
106 IN EFI_SERVICE_BINDING_PROTOCOL *This,
107 IN EFI_HANDLE *ChildHandle
108 );
109
110 /**
111 Destroy one of the service binding's child.
112
113 @param This The service binding instance
114 @param ChildHandle The child handle to destroy
115
116 @retval EFI_INVALID_PARAMETER The parameter is invalid.
117 @retval EFI_UNSUPPORTED The child may have already been destroyed.
118 @retval EFI_SUCCESS The child is destroyed and removed from the
119 parent's child list.
120
121 **/
122 EFI_STATUS
123 EFIAPI
124 Mtftp4ServiceBindingDestroyChild (
125 IN EFI_SERVICE_BINDING_PROTOCOL *This,
126 IN EFI_HANDLE ChildHandle
127 );
128
129 #endif