TianoCore EDK2 master
Loading...
Searching...
No Matches
DriverBinding.h
Go to the documentation of this file.
1
8#ifndef DRIVER_BINDING_H_
9#define DRIVER_BINDING_H_
10
13#include <Library/UefiLib.h>
15#include <Library/DebugLib.h>
17#include <Library/PcdLib.h>
19#include <Library/UefiUsbLib.h>
20#include <Protocol/UsbIo.h>
23
24#define NETWORK_COMMON_DRIVER_VERSION 1
25#define NETWORK_COMMON_POLLING_INTERVAL 0x10
26#define RX_BUFFER_COUNT 32
27#define TX_BUFFER_COUNT 32
28#define MEMORY_REQUIRE 0
29
30#define UNDI_DEV_SIGNATURE SIGNATURE_32('u','n','d','i')
31#define UNDI_DEV_FROM_THIS(a) CR(a, NIC_DEVICE, NiiProtocol, UNDI_DEV_SIGNATURE)
32#define UNDI_DEV_FROM_NIC(a) CR(a, NIC_DEVICE, NicInfo, UNDI_DEV_SIGNATURE)
33
34#pragma pack(1)
35typedef struct {
36 UINT8 DestAddr[PXE_HWADDR_LEN_ETHER];
37 UINT8 SrcAddr[PXE_HWADDR_LEN_ETHER];
38 UINT16 Protocol;
40#pragma pack()
41
42typedef struct {
43 UINTN Signature;
45 EFI_HANDLE DeviceHandle;
46 EFI_DEVICE_PATH_PROTOCOL *BaseDevPath;
48 NIC_DATA NicInfo;
49 VOID *ReceiveBuffer;
51
52typedef VOID (*API_FUNC)(
53 PXE_CDB *,
54 NIC_DATA *
55 );
56
57extern PXE_SW_UNDI *gPxe;
58extern NIC_DEVICE *gLanDeviceList[MAX_LAN_INTERFACE];
59extern EFI_COMPONENT_NAME2_PROTOCOL gNetworkCommonComponentName2;
60
62EFIAPI
65 IN EFI_HANDLE ControllerHandle,
66 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
67 );
68
70EFIAPI
73 IN EFI_HANDLE ControllerHandle,
74 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
75 );
76
78EFIAPI
81 IN EFI_HANDLE ControllerHandle,
82 IN UINTN NumberOfChildren,
83 IN EFI_HANDLE *ChildHandleBuffer
84 );
85
86VOID
88 OUT PXE_SW_UNDI *PxeSw
89 );
90
91VOID
93 IN NIC_DATA *Nic,
94 IN OUT PXE_SW_UNDI *PxeSw
95 );
96
98EFIAPI
100 IN UINT64 Cdb
101 );
102
103UINTN
104MapIt (
105 IN NIC_DATA *Nic,
106 IN UINT64 MemAddr,
107 IN UINT32 Size,
108 IN UINT32 Direction,
109 OUT UINT64 MappedAddr
110 );
111
112VOID
113UnMapIt (
114 IN NIC_DATA *Nic,
115 IN UINT64 MemAddr,
116 IN UINT32 Size,
117 IN UINT32 Direction,
118 IN UINT64 MappedAddr
119 );
120
121VOID
123 IN PXE_CDB *Cdb,
124 IN NIC_DATA *Nic
125 );
126
127VOID
128UndiStart (
129 IN PXE_CDB *Cdb,
130 IN NIC_DATA *Nic
131 );
132
133VOID
134UndiStop (
135 IN PXE_CDB *Cdb,
136 IN NIC_DATA *Nic
137 );
138
139VOID
141 IN PXE_CDB *Cdb,
142 IN NIC_DATA *Nic
143 );
144
145VOID
147 IN PXE_CDB *Cdb,
148 IN NIC_DATA *Nic
149 );
150
151VOID
153 IN PXE_CDB *Cdb,
154 IN OUT NIC_DATA *Nic
155 );
156
157VOID
158UndiReset (
159 IN PXE_CDB *Cdb,
160 IN NIC_DATA *Nic
161 );
162
163VOID
165 IN PXE_CDB *Cdb,
166 IN OUT NIC_DATA *Nic
167 );
168
169VOID
171 IN PXE_CDB *Cdb,
172 IN NIC_DATA *Nic
173 );
174
175VOID
177 IN PXE_CDB *Cdb,
178 IN NIC_DATA *Nic
179 );
180
181VOID
183 IN PXE_CDB *Cdb,
184 IN NIC_DATA *Nic
185 );
186
187VOID
189 IN PXE_CDB *Cdb,
190 IN NIC_DATA *Nic
191 );
192
193VOID
195 IN OUT PXE_CDB *Cdb,
196 IN NIC_DATA *Nic
197 );
198
199VOID
201 IN PXE_CDB *Cdb,
202 IN NIC_DATA *Nic
203 );
204
205VOID
207 IN PXE_CDB *Cdb,
208 IN NIC_DATA *Nic
209 );
210
211VOID
213 IN PXE_CDB *Cdb,
214 IN NIC_DATA *Nic
215 );
216
217VOID
219 IN PXE_CDB *Cdb,
220 IN NIC_DATA *Nic
221 );
222
223VOID
225 IN PXE_CDB *Cdb,
226 IN NIC_DATA *Nic
227 );
228
229UINT16
231 IN PXE_CDB *Cdb,
232 IN OUT NIC_DATA *Nic
233 );
234
235UINT16
236Transmit (
237 IN PXE_CDB *Cdb,
238 IN OUT NIC_DATA *Nic,
239 IN UINT64 CpbAddr,
240 IN UINT16 OpFlags
241 );
242
243UINT16
244Receive (
245 IN PXE_CDB *Cdb,
246 IN OUT NIC_DATA *Nic,
247 IN UINT64 CpbAddr,
248 IN OUT UINT64 DbAddr
249 );
250
251UINT16
252SetFilter (
253 IN NIC_DATA *Nic,
254 IN UINT16 SetFilter,
255 IN UINT64 CpbAddr,
256 IN UINT32 CpbSize
257 );
258
259UINT16
261 IN NIC_DATA *Nic,
262 IN UINT64 DbAddr,
263 IN UINT16 DbSize
264 );
265
266#endif
UINT64 UINTN
VOID UndiStatistics(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:941
VOID PxeStructInit(OUT PXE_SW_UNDI *PxeSw)
Definition: PxeFunction.c:1641
VOID UndiGetInitInfo(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:268
EFI_STATUS EFIAPI UndiApiEntry(IN UINT64 Cdb)
Definition: PxeFunction.c:1716
EFI_STATUS EFIAPI NetworkCommonDriverStop(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer)
VOID UndiInterruptEnable(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:667
VOID UnMapIt(IN NIC_DATA *Nic, IN UINT64 MemAddr, IN UINT32 Size, IN UINT32 Direction, IN UINT64 MappedAddr)
Definition: PxeFunction.c:1786
VOID UndiGetConfigInfo(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:338
VOID UndiReceive(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:1473
VOID UndiShutdown(IN PXE_CDB *Cdb, IN OUT NIC_DATA *Nic)
Definition: PxeFunction.c:614
VOID UndiTransmit(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:1308
VOID UndiStationAddress(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:871
VOID UpdateNicNum(IN NIC_DATA *Nic, IN OUT PXE_SW_UNDI *PxeSw)
Definition: PxeFunction.c:1681
VOID UndiStart(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:106
UINT16 Initialize(IN PXE_CDB *Cdb, IN OUT NIC_DATA *Nic)
Definition: PxeFunction.c:492
UINT16 Statistics(IN NIC_DATA *Nic, IN UINT64 DbAddr, IN UINT16 DbSize)
Definition: PxeFunction.c:995
EFI_STATUS EFIAPI NetworkCommonSupported(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
Definition: DriverBinding.c:97
VOID UndiNvData(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:1103
VOID UndiReceiveFilter(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:695
UINT16 SetFilter(IN NIC_DATA *Nic, IN UINT16 SetFilter, IN UINT64 CpbAddr, IN UINT32 CpbSize)
Definition: PxeFunction.c:804
EFI_STATUS EFIAPI NetworkCommonDriverStart(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
UINTN MapIt(IN NIC_DATA *Nic, IN UINT64 MemAddr, IN UINT32 Size, IN UINT32 Direction, OUT UINT64 MappedAddr)
Definition: PxeFunction.c:1746
VOID UndiFillHeader(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:1225
VOID UndiStop(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:201
VOID UndiInitialize(IN PXE_CDB *Cdb, IN OUT NIC_DATA *Nic)
Definition: PxeFunction.c:390
VOID UndiReset(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:550
VOID UndiGetStatus(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:1131
VOID UndiMcastIp2Mac(IN OUT PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:1032
VOID UndiGetState(IN PXE_CDB *Cdb, IN NIC_DATA *Nic)
Definition: PxeFunction.c:63
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33