|
@@ -22,25 +22,14 @@
|
22
|
22
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
23
|
23
|
*/
|
24
|
24
|
|
25
|
|
-#if 0
|
26
|
|
-
|
27
|
25
|
#include "pxe.h"
|
28
|
26
|
|
29
|
|
-typedef struct {
|
30
|
|
- char dest[ETH_ALEN];
|
31
|
|
- char source[ETH_ALEN];
|
32
|
|
- uint16_t nstype;
|
33
|
|
-} media_header_t;
|
34
|
|
-
|
35
|
|
-static const char broadcast_mac[] = { 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF };
|
36
|
|
-
|
37
|
27
|
/* PXENV_UNDI_STARTUP
|
38
|
28
|
*
|
39
|
29
|
* Status: working
|
40
|
30
|
*/
|
41
|
31
|
PXENV_EXIT_t pxenv_undi_startup ( struct s_PXENV_UNDI_STARTUP *undi_startup ) {
|
42
|
32
|
DBG ( "PXENV_UNDI_STARTUP" );
|
43
|
|
- ENSURE_MIDWAY(undi_startup);
|
44
|
33
|
|
45
|
34
|
undi_startup->Status = PXENV_STATUS_SUCCESS;
|
46
|
35
|
return PXENV_EXIT_SUCCESS;
|
|
@@ -52,7 +41,6 @@ PXENV_EXIT_t pxenv_undi_startup ( struct s_PXENV_UNDI_STARTUP *undi_startup ) {
|
52
|
41
|
*/
|
53
|
42
|
PXENV_EXIT_t pxenv_undi_cleanup ( struct s_PXENV_UNDI_CLEANUP *undi_cleanup ) {
|
54
|
43
|
DBG ( "PXENV_UNDI_CLEANUP" );
|
55
|
|
- ENSURE_CAN_UNLOAD ( undi_cleanup );
|
56
|
44
|
|
57
|
45
|
undi_cleanup->Status = PXENV_STATUS_SUCCESS;
|
58
|
46
|
return PXENV_EXIT_SUCCESS;
|
|
@@ -65,7 +53,6 @@ PXENV_EXIT_t pxenv_undi_cleanup ( struct s_PXENV_UNDI_CLEANUP *undi_cleanup ) {
|
65
|
53
|
PXENV_EXIT_t pxenv_undi_initialize ( struct s_PXENV_UNDI_INITIALIZE
|
66
|
54
|
*undi_initialize ) {
|
67
|
55
|
DBG ( "PXENV_UNDI_INITIALIZE" );
|
68
|
|
- ENSURE_MIDWAY ( undi_initialize );
|
69
|
56
|
|
70
|
57
|
undi_initialize->Status = PXENV_STATUS_SUCCESS;
|
71
|
58
|
return PXENV_EXIT_SUCCESS;
|
|
@@ -79,9 +66,6 @@ PXENV_EXIT_t pxenv_undi_reset_adapter ( struct s_PXENV_UNDI_RESET
|
79
|
66
|
*undi_reset_adapter ) {
|
80
|
67
|
DBG ( "PXENV_UNDI_RESET_ADAPTER" );
|
81
|
68
|
|
82
|
|
- ENSURE_MIDWAY ( undi_reset_adapter );
|
83
|
|
- ENSURE_READY ( undi_reset_adapter );
|
84
|
|
-
|
85
|
69
|
undi_reset_adapter->Status = PXENV_STATUS_SUCCESS;
|
86
|
70
|
return PXENV_EXIT_SUCCESS;
|
87
|
71
|
}
|
|
@@ -93,7 +77,6 @@ PXENV_EXIT_t pxenv_undi_reset_adapter ( struct s_PXENV_UNDI_RESET
|
93
|
77
|
PXENV_EXIT_t pxenv_undi_shutdown ( struct s_PXENV_UNDI_SHUTDOWN
|
94
|
78
|
*undi_shutdown ) {
|
95
|
79
|
DBG ( "PXENV_UNDI_SHUTDOWN" );
|
96
|
|
- ENSURE_MIDWAY ( undi_shutdown );
|
97
|
80
|
|
98
|
81
|
undi_shutdown->Status = PXENV_STATUS_SUCCESS;
|
99
|
82
|
return PXENV_EXIT_SUCCESS;
|
|
@@ -105,13 +88,14 @@ PXENV_EXIT_t pxenv_undi_shutdown ( struct s_PXENV_UNDI_SHUTDOWN
|
105
|
88
|
*/
|
106
|
89
|
PXENV_EXIT_t pxenv_undi_open ( struct s_PXENV_UNDI_OPEN *undi_open ) {
|
107
|
90
|
DBG ( "PXENV_UNDI_OPEN" );
|
108
|
|
- ENSURE_READY ( undi_open );
|
109
|
91
|
|
|
92
|
+#if 0
|
110
|
93
|
/* PXESPEC: This is where we choose to enable interrupts.
|
111
|
94
|
* Can't actually find where we're meant to in the PXE spec,
|
112
|
95
|
* but this should work.
|
113
|
96
|
*/
|
114
|
97
|
eth_irq ( ENABLE );
|
|
98
|
+#endif
|
115
|
99
|
|
116
|
100
|
undi_open->Status = PXENV_STATUS_SUCCESS;
|
117
|
101
|
return PXENV_EXIT_SUCCESS;
|
|
@@ -123,7 +107,6 @@ PXENV_EXIT_t pxenv_undi_open ( struct s_PXENV_UNDI_OPEN *undi_open ) {
|
123
|
107
|
*/
|
124
|
108
|
PXENV_EXIT_t pxenv_undi_close ( struct s_PXENV_UNDI_CLOSE *undi_close ) {
|
125
|
109
|
DBG ( "PXENV_UNDI_CLOSE" );
|
126
|
|
- ENSURE_MIDWAY ( undi_close );
|
127
|
110
|
|
128
|
111
|
undi_close->Status = PXENV_STATUS_SUCCESS;
|
129
|
112
|
return PXENV_EXIT_SUCCESS;
|
|
@@ -140,11 +123,10 @@ PXENV_EXIT_t pxenv_undi_transmit ( struct s_PXENV_UNDI_TRANSMIT
|
140
|
123
|
unsigned int type;
|
141
|
124
|
unsigned int length;
|
142
|
125
|
const char *data;
|
143
|
|
- media_header_t *media_header;
|
144
|
126
|
|
145
|
127
|
DBG ( "PXENV_UNDI_TRANSMIT" );
|
146
|
|
- ENSURE_READY ( undi_transmit );
|
147
|
128
|
|
|
129
|
+#if 0
|
148
|
130
|
/* We support only the "immediate" portion of the TBD. Who
|
149
|
131
|
* knows what Intel's "engineers" were smoking when they came
|
150
|
132
|
* up with the array of transmit data blocks...
|
|
@@ -187,6 +169,7 @@ PXENV_EXIT_t pxenv_undi_transmit ( struct s_PXENV_UNDI_TRANSMIT
|
187
|
169
|
|
188
|
170
|
/* Send the packet */
|
189
|
171
|
eth_transmit ( dest, type, length, data );
|
|
172
|
+#endif
|
190
|
173
|
|
191
|
174
|
undi_transmit->Status = PXENV_STATUS_SUCCESS;
|
192
|
175
|
return PXENV_EXIT_SUCCESS;
|
|
@@ -200,7 +183,7 @@ PXENV_EXIT_t
|
200
|
183
|
pxenv_undi_set_mcast_address ( struct s_PXENV_UNDI_SET_MCAST_ADDRESS
|
201
|
184
|
*undi_set_mcast_address ) {
|
202
|
185
|
DBG ( "PXENV_UNDI_SET_MCAST_ADDRESS" );
|
203
|
|
- /* ENSURE_READY ( undi_set_mcast_address ); */
|
|
186
|
+
|
204
|
187
|
undi_set_mcast_address->Status = PXENV_STATUS_UNSUPPORTED;
|
205
|
188
|
return PXENV_EXIT_FAILURE;
|
206
|
189
|
}
|
|
@@ -213,8 +196,8 @@ PXENV_EXIT_t
|
213
|
196
|
pxenv_undi_set_station_address ( struct s_PXENV_UNDI_SET_STATION_ADDRESS
|
214
|
197
|
*undi_set_station_address ) {
|
215
|
198
|
DBG ( "PXENV_UNDI_SET_STATION_ADDRESS" );
|
216
|
|
- ENSURE_READY ( undi_set_station_address );
|
217
|
199
|
|
|
200
|
+#if 0
|
218
|
201
|
/* We don't offer a facility to set the MAC address; this
|
219
|
202
|
* would require adding extra code to all the Etherboot
|
220
|
203
|
* drivers, for very little benefit. If we're setting it to
|
|
@@ -227,6 +210,8 @@ pxenv_undi_set_station_address ( struct s_PXENV_UNDI_SET_STATION_ADDRESS
|
227
|
210
|
undi_set_station_address->Status = PXENV_STATUS_SUCCESS;
|
228
|
211
|
return PXENV_EXIT_SUCCESS;
|
229
|
212
|
}
|
|
213
|
+#endif
|
|
214
|
+
|
230
|
215
|
undi_set_station_address->Status = PXENV_STATUS_UNSUPPORTED;
|
231
|
216
|
return PXENV_EXIT_FAILURE;
|
232
|
217
|
}
|
|
@@ -240,7 +225,7 @@ PXENV_EXIT_t
|
240
|
225
|
pxenv_undi_set_packet_filter ( struct s_PXENV_UNDI_SET_PACKET_FILTER
|
241
|
226
|
*undi_set_packet_filter ) {
|
242
|
227
|
DBG ( "PXENV_UNDI_SET_PACKET_FILTER" );
|
243
|
|
- /* ENSURE_READY ( undi_set_packet_filter ); */
|
|
228
|
+
|
244
|
229
|
undi_set_packet_filter->Status = PXENV_STATUS_UNSUPPORTED;
|
245
|
230
|
return PXENV_EXIT_FAILURE;
|
246
|
231
|
}
|
|
@@ -252,8 +237,8 @@ pxenv_undi_set_packet_filter ( struct s_PXENV_UNDI_SET_PACKET_FILTER
|
252
|
237
|
PXENV_EXIT_t pxenv_undi_get_information ( struct s_PXENV_UNDI_GET_INFORMATION
|
253
|
238
|
*undi_get_information ) {
|
254
|
239
|
DBG ( "PXENV_UNDI_GET_INFORMATION" );
|
255
|
|
- ENSURE_READY ( undi_get_information );
|
256
|
240
|
|
|
241
|
+#if 0
|
257
|
242
|
undi_get_information->BaseIo = nic.ioaddr;
|
258
|
243
|
undi_get_information->IntNumber = nic.irqno;
|
259
|
244
|
/* Cheat: assume all cards can cope with this */
|
|
@@ -276,6 +261,8 @@ PXENV_EXIT_t pxenv_undi_get_information ( struct s_PXENV_UNDI_GET_INFORMATION
|
276
|
261
|
*/
|
277
|
262
|
undi_get_information->RxBufCt = 1;
|
278
|
263
|
undi_get_information->TxBufCt = 1;
|
|
264
|
+#endif
|
|
265
|
+
|
279
|
266
|
undi_get_information->Status = PXENV_STATUS_SUCCESS;
|
280
|
267
|
return PXENV_EXIT_SUCCESS;
|
281
|
268
|
}
|
|
@@ -288,7 +275,7 @@ PXENV_EXIT_t pxenv_undi_get_information ( struct s_PXENV_UNDI_GET_INFORMATION
|
288
|
275
|
PXENV_EXIT_t pxenv_undi_get_statistics ( struct s_PXENV_UNDI_GET_STATISTICS
|
289
|
276
|
*undi_get_statistics ) {
|
290
|
277
|
DBG ( "PXENV_UNDI_GET_STATISTICS" );
|
291
|
|
- /* ENSURE_READY ( undi_get_statistics ); */
|
|
278
|
+
|
292
|
279
|
undi_get_statistics->Status = PXENV_STATUS_UNSUPPORTED;
|
293
|
280
|
return PXENV_EXIT_FAILURE;
|
294
|
281
|
}
|
|
@@ -301,7 +288,7 @@ PXENV_EXIT_t pxenv_undi_get_statistics ( struct s_PXENV_UNDI_GET_STATISTICS
|
301
|
288
|
PXENV_EXIT_t pxenv_undi_clear_statistics ( struct s_PXENV_UNDI_CLEAR_STATISTICS
|
302
|
289
|
*undi_clear_statistics ) {
|
303
|
290
|
DBG ( "PXENV_UNDI_CLEAR_STATISTICS" );
|
304
|
|
- /* ENSURE_READY ( undi_clear_statistics ); */
|
|
291
|
+
|
305
|
292
|
undi_clear_statistics->Status = PXENV_STATUS_UNSUPPORTED;
|
306
|
293
|
return PXENV_EXIT_FAILURE;
|
307
|
294
|
}
|
|
@@ -314,7 +301,7 @@ PXENV_EXIT_t pxenv_undi_clear_statistics ( struct s_PXENV_UNDI_CLEAR_STATISTICS
|
314
|
301
|
PXENV_EXIT_t pxenv_undi_initiate_diags ( struct s_PXENV_UNDI_INITIATE_DIAGS
|
315
|
302
|
*undi_initiate_diags ) {
|
316
|
303
|
DBG ( "PXENV_UNDI_INITIATE_DIAGS" );
|
317
|
|
- /* ENSURE_READY ( undi_initiate_diags ); */
|
|
304
|
+
|
318
|
305
|
undi_initiate_diags->Status = PXENV_STATUS_UNSUPPORTED;
|
319
|
306
|
return PXENV_EXIT_FAILURE;
|
320
|
307
|
}
|
|
@@ -326,9 +313,11 @@ PXENV_EXIT_t pxenv_undi_initiate_diags ( struct s_PXENV_UNDI_INITIATE_DIAGS
|
326
|
313
|
PXENV_EXIT_t pxenv_undi_force_interrupt ( struct s_PXENV_UNDI_FORCE_INTERRUPT
|
327
|
314
|
*undi_force_interrupt ) {
|
328
|
315
|
DBG ( "PXENV_UNDI_FORCE_INTERRUPT" );
|
329
|
|
- ENSURE_READY ( undi_force_interrupt );
|
330
|
316
|
|
|
317
|
+#if 0
|
331
|
318
|
eth_irq ( FORCE );
|
|
319
|
+#endif
|
|
320
|
+
|
332
|
321
|
undi_force_interrupt->Status = PXENV_STATUS_SUCCESS;
|
333
|
322
|
return PXENV_EXIT_SUCCESS;
|
334
|
323
|
}
|
|
@@ -341,7 +330,7 @@ PXENV_EXIT_t
|
341
|
330
|
pxenv_undi_get_mcast_address ( struct s_PXENV_UNDI_GET_MCAST_ADDRESS
|
342
|
331
|
*undi_get_mcast_address ) {
|
343
|
332
|
DBG ( "PXENV_UNDI_GET_MCAST_ADDRESS" );
|
344
|
|
- /* ENSURE_READY ( undi_get_mcast_address ); */
|
|
333
|
+
|
345
|
334
|
undi_get_mcast_address->Status = PXENV_STATUS_UNSUPPORTED;
|
346
|
335
|
return PXENV_EXIT_FAILURE;
|
347
|
336
|
}
|
|
@@ -352,14 +341,11 @@ pxenv_undi_get_mcast_address ( struct s_PXENV_UNDI_GET_MCAST_ADDRESS
|
352
|
341
|
*/
|
353
|
342
|
PXENV_EXIT_t pxenv_undi_get_nic_type ( struct s_PXENV_UNDI_GET_NIC_TYPE
|
354
|
343
|
*undi_get_nic_type ) {
|
355
|
|
-#warning "device probing mechanism has changed completely"
|
|
344
|
+ DBG ( "PXENV_UNDI_GET_NIC_TYPE" );
|
356
|
345
|
|
|
346
|
+#warning "device probing mechanism has changed completely"
|
357
|
347
|
#if 0
|
358
|
|
- struct dev *dev = &dev;
|
359
|
|
-
|
360
|
|
- DBG ( "PXENV_UNDI_GET_NIC_TYPE" );
|
361
|
|
- ENSURE_READY ( undi_get_nic_type );
|
362
|
|
-
|
|
348
|
+ struct dev *dev = &dev;
|
363
|
349
|
if ( dev->to_probe == PROBE_PCI ) {
|
364
|
350
|
struct pci_device *pci = &dev->state.pci.dev;
|
365
|
351
|
|
|
@@ -408,8 +394,8 @@ PXENV_EXIT_t pxenv_undi_get_nic_type ( struct s_PXENV_UNDI_GET_NIC_TYPE
|
408
|
394
|
PXENV_EXIT_t pxenv_undi_get_iface_info ( struct s_PXENV_UNDI_GET_IFACE_INFO
|
409
|
395
|
*undi_get_iface_info ) {
|
410
|
396
|
DBG ( "PXENV_UNDI_GET_IFACE_INFO" );
|
411
|
|
- ENSURE_READY ( undi_get_iface_info );
|
412
|
397
|
|
|
398
|
+#if 0
|
413
|
399
|
/* Just hand back some info, doesn't really matter what it is.
|
414
|
400
|
* Most PXE stacks seem to take this approach.
|
415
|
401
|
*/
|
|
@@ -418,6 +404,8 @@ PXENV_EXIT_t pxenv_undi_get_iface_info ( struct s_PXENV_UNDI_GET_IFACE_INFO
|
418
|
404
|
undi_get_iface_info->ServiceFlags = 0;
|
419
|
405
|
memset ( undi_get_iface_info->Reserved, 0,
|
420
|
406
|
sizeof(undi_get_iface_info->Reserved) );
|
|
407
|
+#endif
|
|
408
|
+
|
421
|
409
|
undi_get_iface_info->Status = PXENV_STATUS_SUCCESS;
|
422
|
410
|
return PXENV_EXIT_SUCCESS;
|
423
|
411
|
}
|
|
@@ -428,6 +416,8 @@ PXENV_EXIT_t pxenv_undi_get_iface_info ( struct s_PXENV_UNDI_GET_IFACE_INFO
|
428
|
416
|
*/
|
429
|
417
|
PXENV_EXIT_t pxenv_undi_get_state ( struct s_PXENV_UNDI_GET_STATE
|
430
|
418
|
*undi_get_state ) {
|
|
419
|
+ DBG ( "PXENV_UNDI_GET_STATE" );
|
|
420
|
+
|
431
|
421
|
undi_get_state->Status = PXENV_STATUS_UNSUPPORTED;
|
432
|
422
|
return PXENV_EXIT_FAILURE;
|
433
|
423
|
};
|
|
@@ -437,9 +427,9 @@ PXENV_EXIT_t pxenv_undi_get_state ( struct s_PXENV_UNDI_GET_STATE
|
437
|
427
|
* Status: working
|
438
|
428
|
*/
|
439
|
429
|
PXENV_EXIT_t pxenv_undi_isr ( struct s_PXENV_UNDI_ISR *undi_isr ) {
|
440
|
|
- media_header_t *media_header = (media_header_t*)nic.packet;
|
441
|
|
-
|
442
|
430
|
DBG ( "PXENV_UNDI_ISR" );
|
|
431
|
+
|
|
432
|
+#if 0
|
443
|
433
|
/* We can't call ENSURE_READY, because this could be being
|
444
|
434
|
* called as part of an interrupt service routine. Instead,
|
445
|
435
|
* we should simply die if we're not READY.
|
|
@@ -534,9 +524,8 @@ PXENV_EXIT_t pxenv_undi_isr ( struct s_PXENV_UNDI_ISR *undi_isr ) {
|
534
|
524
|
undi_isr->Status = PXENV_STATUS_UNDI_INVALID_PARAMETER;
|
535
|
525
|
return PXENV_EXIT_FAILURE;
|
536
|
526
|
}
|
|
527
|
+#endif
|
537
|
528
|
|
538
|
529
|
undi_isr->Status = PXENV_STATUS_SUCCESS;
|
539
|
530
|
return PXENV_EXIT_SUCCESS;
|
540
|
531
|
}
|
541
|
|
-
|
542
|
|
-#endif
|