]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/MnpDxe/MnpImpl.h
1, Add missing header file reference in source code section
[mirror_edk2.git] / MdeModulePkg / Universal / Network / MnpDxe / MnpImpl.h
CommitLineData
83cbd279 1/** @file\r
2\r
3ec64ac5 3Copyright (c) 2005 - 2008, Intel Corporation\r
83cbd279 4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12Module Name:\r
13\r
14 MnpImpl.h\r
15\r
16Abstract:\r
17\r
18\r
19**/\r
20\r
21#ifndef _MNP_IMPL_H_\r
22#define _MNP_IMPL_H_\r
23\r
24#include "MnpDriver.h"\r
83cbd279 25\r
26#define NET_ETHER_FCS_SIZE 4\r
27\r
36ee91ca 28#define MNP_SYS_POLL_INTERVAL (50 * TICKS_PER_MS) // 50 milliseconds\r
83cbd279 29#define MNP_TIMEOUT_CHECK_INTERVAL (50 * TICKS_PER_MS) // 50 milliseconds\r
30#define MNP_TX_TIMEOUT_TIME (500 * TICKS_PER_MS) // 500 milliseconds\r
31#define MNP_INIT_NET_BUFFER_NUM 512\r
32#define MNP_NET_BUFFER_INCREASEMENT 64\r
33#define MNP_MAX_NET_BUFFER_NUM 65536\r
34\r
35#define MNP_MAX_RCVD_PACKET_QUE_SIZE 256\r
36\r
37#define MNP_RECEIVE_UNICAST 0x01\r
38#define MNP_RECEIVE_BROADCAST 0x02\r
39\r
40#define UNICAST_PACKET MNP_RECEIVE_UNICAST\r
41#define BROADCAST_PACKET MNP_RECEIVE_BROADCAST\r
42\r
43#define MNP_INSTANCE_DATA_SIGNATURE EFI_SIGNATURE_32 ('M', 'n', 'p', 'I')\r
44\r
45#define MNP_INSTANCE_DATA_FROM_THIS(a) \\r
46 CR ( \\r
47 (a), \\r
48 MNP_INSTANCE_DATA, \\r
49 ManagedNetwork, \\r
50 MNP_INSTANCE_DATA_SIGNATURE \\r
51 )\r
52\r
53typedef struct _MNP_INSTANCE_DATA {\r
54 UINT32 Signature;\r
55\r
56 MNP_SERVICE_DATA *MnpServiceData;\r
57\r
58 EFI_HANDLE Handle;\r
59\r
e48e37fc 60 LIST_ENTRY InstEntry;\r
83cbd279 61\r
62 EFI_MANAGED_NETWORK_PROTOCOL ManagedNetwork;\r
63\r
64 BOOLEAN Configured;\r
65 BOOLEAN Destroyed;\r
66\r
e48e37fc 67 LIST_ENTRY GroupCtrlBlkList;\r
83cbd279 68\r
69 NET_MAP RxTokenMap;\r
70\r
e48e37fc 71 LIST_ENTRY RxDeliveredPacketQueue;\r
72 LIST_ENTRY RcvdPacketQueue;\r
83cbd279 73 UINTN RcvdPacketQueueSize;\r
74\r
75 EFI_MANAGED_NETWORK_CONFIG_DATA ConfigData;\r
76\r
77 UINT8 ReceiveFilter;\r
78} MNP_INSTANCE_DATA;\r
79\r
80typedef struct _MNP_GROUP_ADDRESS {\r
e48e37fc 81 LIST_ENTRY AddrEntry;\r
83cbd279 82 EFI_MAC_ADDRESS Address;\r
83 INTN RefCnt;\r
84} MNP_GROUP_ADDRESS;\r
85\r
86typedef struct _MNP_GROUP_CONTROL_BLOCK {\r
e48e37fc 87 LIST_ENTRY CtrlBlkEntry;\r
83cbd279 88 MNP_GROUP_ADDRESS *GroupAddress;\r
89} MNP_GROUP_CONTROL_BLOCK;\r
90\r
91typedef struct _MNP_RXDATA_WRAP {\r
e48e37fc 92 LIST_ENTRY WrapEntry;\r
83cbd279 93 MNP_INSTANCE_DATA *Instance;\r
94 EFI_MANAGED_NETWORK_RECEIVE_DATA RxData;\r
95 NET_BUF *Nbuf;\r
96 UINT64 TimeoutTick;\r
97} MNP_RXDATA_WRAP;\r
98\r
99EFI_STATUS\r
100MnpInitializeServiceData (\r
101 IN MNP_SERVICE_DATA *MnpServiceData,\r
102 IN EFI_HANDLE ImageHandle,\r
103 IN EFI_HANDLE ControllerHandle\r
104 );\r
105\r
106VOID\r
107MnpFlushServiceData (\r
3ec64ac5 108 IN MNP_SERVICE_DATA *MnpServiceData,\r
109 IN EFI_HANDLE ImageHandle\r
83cbd279 110 );\r
111\r
112VOID\r
113MnpInitializeInstanceData (\r
114 IN MNP_SERVICE_DATA *MnpServiceData,\r
115 IN MNP_INSTANCE_DATA *Instance\r
116 );\r
117\r
118EFI_STATUS\r
119MnpTokenExist (\r
120 IN NET_MAP *Map,\r
121 IN NET_MAP_ITEM *Item,\r
122 IN VOID *Arg\r
123 );\r
124\r
125EFI_STATUS\r
126MnpCancelTokens (\r
127 IN NET_MAP *Map,\r
128 IN NET_MAP_ITEM *Item,\r
129 IN VOID *Arg\r
130 );\r
131\r
132VOID\r
133MnpFlushRcvdDataQueue (\r
134 IN MNP_INSTANCE_DATA *Instance\r
135 );\r
136\r
137EFI_STATUS\r
138MnpConfigureInstance (\r
139 IN MNP_INSTANCE_DATA *Instance,\r
140 IN EFI_MANAGED_NETWORK_CONFIG_DATA *ConfigData OPTIONAL\r
141 );\r
142\r
143EFI_STATUS\r
144MnpGroupOp (\r
145 IN MNP_INSTANCE_DATA *Instance,\r
146 IN BOOLEAN JoinFlag,\r
147 IN EFI_MAC_ADDRESS *MacAddr OPTIONAL,\r
148 IN MNP_GROUP_CONTROL_BLOCK *CtrlBlk OPTIONAL\r
149 );\r
150\r
151BOOLEAN\r
152MnpIsValidTxToken (\r
153 IN MNP_INSTANCE_DATA *Instance,\r
154 IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token\r
155 );\r
156\r
157VOID\r
158MnpBuildTxPacket (\r
159 IN MNP_SERVICE_DATA *MnpServiceData,\r
160 IN EFI_MANAGED_NETWORK_TRANSMIT_DATA *TxData,\r
161 OUT UINT8 **PktBuf,\r
162 OUT UINT32 *PktLen\r
163 );\r
164\r
165EFI_STATUS\r
166MnpSyncSendPacket (\r
167 IN MNP_SERVICE_DATA *MnpServiceData,\r
168 IN UINT8 *Packet,\r
169 IN UINT32 Length,\r
170 IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token\r
171 );\r
172\r
173EFI_STATUS\r
174MnpInstanceDeliverPacket (\r
175 IN MNP_INSTANCE_DATA *Instance\r
176 );\r
177\r
178VOID\r
179EFIAPI\r
180MnpRecycleRxData (\r
181 IN EFI_EVENT Event,\r
182 IN VOID *Context\r
183 );\r
184\r
185EFI_STATUS\r
186MnpReceivePacket (\r
187 IN MNP_SERVICE_DATA *MnpServiceData\r
188 );\r
189\r
190NET_BUF *\r
191MnpAllocNbuf (\r
192 IN MNP_SERVICE_DATA *MnpServiceData\r
193 );\r
194\r
195VOID\r
196MnpFreeNbuf (\r
197 IN MNP_SERVICE_DATA *MnpServiceData,\r
198 IN NET_BUF *Nbuf\r
199 );\r
200\r
201VOID\r
202EFIAPI\r
203MnpCheckPacketTimeout (\r
204 IN EFI_EVENT Event,\r
205 IN VOID *Context\r
206 );\r
207\r
208VOID\r
209EFIAPI\r
210MnpSystemPoll (\r
211 IN EFI_EVENT Event,\r
212 IN VOID *Context\r
213 );\r
214\r
215EFI_STATUS\r
216EFIAPI\r
217MnpGetModeData (\r
218 IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
219 OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,\r
220 OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL\r
221 );\r
222\r
223EFI_STATUS\r
224EFIAPI\r
225MnpConfigure (\r
226 IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
227 IN EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL\r
228 );\r
229\r
230EFI_STATUS\r
231EFIAPI\r
232MnpMcastIpToMac (\r
233 IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
234 IN BOOLEAN Ipv6Flag,\r
235 IN EFI_IP_ADDRESS *IpAddress,\r
236 OUT EFI_MAC_ADDRESS *MacAddress\r
237 );\r
238\r
239EFI_STATUS\r
240EFIAPI\r
241MnpGroups (\r
242 IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
243 IN BOOLEAN JoinFlag,\r
244 IN EFI_MAC_ADDRESS *MacAddress OPTIONAL\r
245 );\r
246\r
247EFI_STATUS\r
248EFIAPI\r
249MnpTransmit (\r
250 IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
251 IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token\r
252 );\r
253\r
254EFI_STATUS\r
255EFIAPI\r
256MnpCancel (\r
257 IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
258 IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token OPTIONAL\r
259 );\r
260\r
261EFI_STATUS\r
262EFIAPI\r
263MnpReceive (\r
264 IN EFI_MANAGED_NETWORK_PROTOCOL *This,\r
265 IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN *Token\r
266 );\r
267\r
268EFI_STATUS\r
269EFIAPI\r
270MnpPoll (\r
271 IN EFI_MANAGED_NETWORK_PROTOCOL *This\r
272 );\r
273\r
274#endif\r