source: mainline/boot/arch/ia64/loader/gefi/inc/efinet.h@ 86018c1

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 86018c1 was 7208b6c, checked in by Jakub Vana <jakub.vana@…>, 17 years ago

Basic IA64 boot and kernel suport for real machines

  • Property mode set to 100644
File size: 9.5 KB
Line 
1#ifndef _EFINET_H
2#define _EFINET_H
3
4
5/*++
6Copyright (c) 1999 Intel Corporation
7
8Module Name:
9 efinet.h
10
11Abstract:
12 EFI Simple Network protocol
13
14Revision History
15--*/
16
17
18///////////////////////////////////////////////////////////////////////////////
19//
20// Simple Network Protocol
21//
22
23#define EFI_SIMPLE_NETWORK_PROTOCOL \
24 { 0xA19832B9, 0xAC25, 0x11D3, {0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D} }
25
26
27INTERFACE_DECL(_EFI_SIMPLE_NETWORK);
28
29///////////////////////////////////////////////////////////////////////////////
30//
31
32typedef struct {
33 //
34 // Total number of frames received. Includes frames with errors and
35 // dropped frames.
36 //
37 UINT64 RxTotalFrames;
38
39 //
40 // Number of valid frames received and copied into receive buffers.
41 //
42 UINT64 RxGoodFrames;
43
44 //
45 // Number of frames below the minimum length for the media.
46 // This would be <64 for ethernet.
47 //
48 UINT64 RxUndersizeFrames;
49
50 //
51 // Number of frames longer than the maxminum length for the
52 // media. This would be >1500 for ethernet.
53 //
54 UINT64 RxOversizeFrames;
55
56 //
57 // Valid frames that were dropped because receive buffers were full.
58 //
59 UINT64 RxDroppedFrames;
60
61 //
62 // Number of valid unicast frames received and not dropped.
63 //
64 UINT64 RxUnicastFrames;
65
66 //
67 // Number of valid broadcast frames received and not dropped.
68 //
69 UINT64 RxBroadcastFrames;
70
71 //
72 // Number of valid mutlicast frames received and not dropped.
73 //
74 UINT64 RxMulticastFrames;
75
76 //
77 // Number of frames w/ CRC or alignment errors.
78 //
79 UINT64 RxCrcErrorFrames;
80
81 //
82 // Total number of bytes received. Includes frames with errors
83 // and dropped frames.
84 //
85 UINT64 RxTotalBytes;
86
87 //
88 // Transmit statistics.
89 //
90 UINT64 TxTotalFrames;
91 UINT64 TxGoodFrames;
92 UINT64 TxUndersizeFrames;
93 UINT64 TxOversizeFrames;
94 UINT64 TxDroppedFrames;
95 UINT64 TxUnicastFrames;
96 UINT64 TxBroadcastFrames;
97 UINT64 TxMulticastFrames;
98 UINT64 TxCrcErrorFrames;
99 UINT64 TxTotalBytes;
100
101 //
102 // Number of collisions detection on this subnet.
103 //
104 UINT64 Collisions;
105
106 //
107 // Number of frames destined for unsupported protocol.
108 //
109 UINT64 UnsupportedProtocol;
110
111} EFI_NETWORK_STATISTICS;
112
113///////////////////////////////////////////////////////////////////////////////
114//
115
116typedef enum {
117 EfiSimpleNetworkStopped,
118 EfiSimpleNetworkStarted,
119 EfiSimpleNetworkInitialized,
120 EfiSimpleNetworkMaxState
121} EFI_SIMPLE_NETWORK_STATE;
122
123///////////////////////////////////////////////////////////////////////////////
124//
125
126#define EFI_SIMPLE_NETWORK_RECEIVE_UNICAST 0x01
127#define EFI_SIMPLE_NETWORK_RECEIVE_MULTICAST 0x02
128#define EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST 0x04
129#define EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS 0x08
130#define EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS_MULTICAST 0x10
131
132///////////////////////////////////////////////////////////////////////////////
133//
134
135#define EFI_SIMPLE_NETWORK_RECEIVE_INTERRUPT 0x01
136#define EFI_SIMPLE_NETWORK_TRANSMIT_INTERRUPT 0x02
137#define EFI_SIMPLE_NETWORK_COMMAND_INTERRUPT 0x04
138#define EFI_SIMPLE_NETWORK_SOFTWARE_INTERRUPT 0x08
139
140///////////////////////////////////////////////////////////////////////////////
141//
142#define MAX_MCAST_FILTER_CNT 16
143typedef struct {
144 UINT32 State;
145 UINT32 HwAddressSize;
146 UINT32 MediaHeaderSize;
147 UINT32 MaxPacketSize;
148 UINT32 NvRamSize;
149 UINT32 NvRamAccessSize;
150 UINT32 ReceiveFilterMask;
151 UINT32 ReceiveFilterSetting;
152 UINT32 MaxMCastFilterCount;
153 UINT32 MCastFilterCount;
154 EFI_MAC_ADDRESS MCastFilter[MAX_MCAST_FILTER_CNT];
155 EFI_MAC_ADDRESS CurrentAddress;
156 EFI_MAC_ADDRESS BroadcastAddress;
157 EFI_MAC_ADDRESS PermanentAddress;
158 UINT8 IfType;
159 BOOLEAN MacAddressChangeable;
160 BOOLEAN MultipleTxSupported;
161 BOOLEAN MediaPresentSupported;
162 BOOLEAN MediaPresent;
163} EFI_SIMPLE_NETWORK_MODE;
164
165///////////////////////////////////////////////////////////////////////////////
166//
167
168typedef
169EFI_STATUS
170(EFIAPI *EFI_SIMPLE_NETWORK_START) (
171 IN struct _EFI_SIMPLE_NETWORK *This
172);
173
174///////////////////////////////////////////////////////////////////////////////
175//
176
177typedef
178EFI_STATUS
179(EFIAPI *EFI_SIMPLE_NETWORK_STOP) (
180 IN struct _EFI_SIMPLE_NETWORK *This
181);
182
183///////////////////////////////////////////////////////////////////////////////
184//
185
186typedef
187EFI_STATUS
188(EFIAPI *EFI_SIMPLE_NETWORK_INITIALIZE) (
189 IN struct _EFI_SIMPLE_NETWORK *This,
190 IN UINTN ExtraRxBufferSize OPTIONAL,
191 IN UINTN ExtraTxBufferSize OPTIONAL
192);
193
194///////////////////////////////////////////////////////////////////////////////
195//
196
197typedef
198EFI_STATUS
199(EFIAPI *EFI_SIMPLE_NETWORK_RESET) (
200 IN struct _EFI_SIMPLE_NETWORK *This,
201 IN BOOLEAN ExtendedVerification
202);
203
204///////////////////////////////////////////////////////////////////////////////
205//
206
207typedef
208EFI_STATUS
209(EFIAPI *EFI_SIMPLE_NETWORK_SHUTDOWN) (
210 IN struct _EFI_SIMPLE_NETWORK *This
211);
212
213///////////////////////////////////////////////////////////////////////////////
214//
215
216typedef
217EFI_STATUS
218(EFIAPI *EFI_SIMPLE_NETWORK_RECEIVE_FILTERS) (
219 IN struct _EFI_SIMPLE_NETWORK *This,
220 IN UINT32 Enable,
221 IN UINT32 Disable,
222 IN BOOLEAN ResetMCastFilter,
223 IN UINTN MCastFilterCnt OPTIONAL,
224 IN EFI_MAC_ADDRESS *MCastFilter OPTIONAL
225);
226
227///////////////////////////////////////////////////////////////////////////////
228//
229
230typedef
231EFI_STATUS
232(EFIAPI *EFI_SIMPLE_NETWORK_STATION_ADDRESS) (
233 IN struct _EFI_SIMPLE_NETWORK *This,
234 IN BOOLEAN Reset,
235 IN EFI_MAC_ADDRESS *New OPTIONAL
236);
237
238///////////////////////////////////////////////////////////////////////////////
239//
240
241typedef
242EFI_STATUS
243(EFIAPI *EFI_SIMPLE_NETWORK_STATISTICS) (
244 IN struct _EFI_SIMPLE_NETWORK *This,
245 IN BOOLEAN Reset,
246 IN OUT UINTN *StatisticsSize OPTIONAL,
247 OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL
248);
249
250///////////////////////////////////////////////////////////////////////////////
251//
252
253typedef
254EFI_STATUS
255(EFIAPI *EFI_SIMPLE_NETWORK_MCAST_IP_TO_MAC) (
256 IN struct _EFI_SIMPLE_NETWORK *This,
257 IN BOOLEAN IPv6,
258 IN EFI_IP_ADDRESS *IP,
259 OUT EFI_MAC_ADDRESS *MAC
260);
261
262///////////////////////////////////////////////////////////////////////////////
263//
264
265typedef
266EFI_STATUS
267(EFIAPI *EFI_SIMPLE_NETWORK_NVDATA) (
268 IN struct _EFI_SIMPLE_NETWORK *This,
269 IN BOOLEAN ReadWrite,
270 IN UINTN Offset,
271 IN UINTN BufferSize,
272 IN OUT VOID *Buffer
273);
274
275///////////////////////////////////////////////////////////////////////////////
276//
277
278typedef
279EFI_STATUS
280(EFIAPI *EFI_SIMPLE_NETWORK_GET_STATUS) (
281 IN struct _EFI_SIMPLE_NETWORK *This,
282 OUT UINT32 *InterruptStatus OPTIONAL,
283 OUT VOID **TxBuf OPTIONAL
284);
285
286///////////////////////////////////////////////////////////////////////////////
287//
288
289typedef
290EFI_STATUS
291(EFIAPI *EFI_SIMPLE_NETWORK_TRANSMIT) (
292 IN struct _EFI_SIMPLE_NETWORK *This,
293 IN UINTN HeaderSize,
294 IN UINTN BufferSize,
295 IN VOID *Buffer,
296 IN EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
297 IN EFI_MAC_ADDRESS *DestAddr OPTIONAL,
298 IN UINT16 *Protocol OPTIONAL
299);
300
301///////////////////////////////////////////////////////////////////////////////
302//
303
304typedef
305EFI_STATUS
306(EFIAPI *EFI_SIMPLE_NETWORK_RECEIVE) (
307 IN struct _EFI_SIMPLE_NETWORK *This,
308 OUT UINTN *HeaderSize OPTIONAL,
309 IN OUT UINTN *BufferSize,
310 OUT VOID *Buffer,
311 OUT EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
312 OUT EFI_MAC_ADDRESS *DestAddr OPTIONAL,
313 OUT UINT16 *Protocol OPTIONAL
314);
315
316///////////////////////////////////////////////////////////////////////////////
317//
318
319#define EFI_SIMPLE_NETWORK_INTERFACE_REVISION 0x00010000
320
321typedef struct _EFI_SIMPLE_NETWORK {
322 UINT64 Revision;
323 EFI_SIMPLE_NETWORK_START Start;
324 EFI_SIMPLE_NETWORK_STOP Stop;
325 EFI_SIMPLE_NETWORK_INITIALIZE Initialize;
326 EFI_SIMPLE_NETWORK_RESET Reset;
327 EFI_SIMPLE_NETWORK_SHUTDOWN Shutdown;
328 EFI_SIMPLE_NETWORK_RECEIVE_FILTERS ReceiveFilters;
329 EFI_SIMPLE_NETWORK_STATION_ADDRESS StationAddress;
330 EFI_SIMPLE_NETWORK_STATISTICS Statistics;
331 EFI_SIMPLE_NETWORK_MCAST_IP_TO_MAC MCastIpToMac;
332 EFI_SIMPLE_NETWORK_NVDATA NvData;
333 EFI_SIMPLE_NETWORK_GET_STATUS GetStatus;
334 EFI_SIMPLE_NETWORK_TRANSMIT Transmit;
335 EFI_SIMPLE_NETWORK_RECEIVE Receive;
336 EFI_EVENT WaitForPacket;
337 EFI_SIMPLE_NETWORK_MODE *Mode;
338} EFI_SIMPLE_NETWORK;
339
340#endif /* _EFINET_H */
Note: See TracBrowser for help on using the repository browser.