Parcourir la source

Allow linking by converting all functions to stubs

tags/v0.9.3
Michael Brown il y a 18 ans
Parent
révision
17ecfd1d67
1 fichiers modifiés avec 30 ajouts et 41 suppressions
  1. 30
    41
      src/interface/pxe/pxe_undi.c

+ 30
- 41
src/interface/pxe/pxe_undi.c Voir le fichier

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

Chargement…
Annuler
Enregistrer