Add UDP parameter structures
[people/xl0/gpxe.git] / src / include / pxe_api.h
1 #ifndef PXE_API_H
2 #define PXE_API_H
3
4 /** @file
5  *
6  * Preboot eXecution Environment (PXE) API
7  *
8  */
9
10 #include "pxe_types.h"
11
12 /** @addtogroup pxe Preboot eXecution Environment (PXE) API
13  *  @{
14  */
15
16 /** @defgroup pxe_preboot_api PXE Preboot API
17  *
18  * General high-level functions: #PXENV_UNLOAD_STACK, #PXENV_START_UNDI etc.
19  *
20  * @{
21  */
22
23 /** @defgroup pxenv_unload_stack PXENV_UNLOAD_STACK
24  *
25  *  UNLOAD BASE CODE STACK
26  *
27  *  @{
28  */
29
30 /** PXE API function code for pxenv_unload_stack() */
31 #define PXENV_UNLOAD_STACK              0x0070
32
33 /** Parameter block for pxenv_unload_stack() */
34 struct s_PXENV_UNLOAD_STACK {
35         PXENV_STATUS_t Status;                  /**< PXE status code */
36         UINT8_t reserved[10];                   /**< Must be zero */
37 } PACKED;
38
39 typedef struct s_PXENV_UNLOAD_STACK PXENV_UNLOAD_STACK_t;
40
41 extern PXENV_EXIT_t pxenv_unload_stack ( struct s_PXENV_UNLOAD_STACK
42                                          *unload_stack );
43
44 /** @} */ /* pxenv_unload_stack */
45
46 /** @defgroup pxenv_get_cached_info PXENV_GET_CACHED_INFO
47  *
48  *  GET CACHED INFO
49  *
50  *  @{
51  */
52
53 /** PXE API function code for pxenv_get_cached_info() */
54 #define PXENV_GET_CACHED_INFO           0x0071
55
56 /** The client's DHCPDISCOVER packet */
57 #define PXENV_PACKET_TYPE_DHCP_DISCOVER 1
58
59 /** The DHCP server's DHCPACK packet */
60 #define PXENV_PACKET_TYPE_DHCP_ACK      2
61
62 /** The Boot Server's Discover Reply packet
63  *
64  * This packet contains DHCP option 60 set to "PXEClient", a valid
65  * boot file name, and may or may not contain MTFTP options.
66  */
67 #define PXENV_PACKET_TYPE_CACHED_REPLY  3
68
69 /** Parameter block for pxenv_get_cached_info() */
70 struct s_PXENV_GET_CACHED_INFO {
71         PXENV_STATUS_t Status;                  /**< PXE status code */
72         /** Packet type.
73          *
74          * Valid values are #PXENV_PACKET_TYPE_DHCP_DISCOVER,
75          * #PXENV_PACKET_TYPE_DHCP_ACK or #PXENV_PACKET_TYPE_CACHED_REPLY
76          */
77         UINT16_t PacketType;
78         UINT16_t BufferSize;                    /**< Buffer size */
79         SEGOFF16_t Buffer;                      /**< Buffer address */
80         UINT16_t BufferLimit                    /**< Maximum buffer size */
81 } PACKED;
82
83 typedef struct s_PXENV_GET_CACHED_INFO PXENV_GET_CACHED_INFO_t;
84
85 extern PXENV_EXIT_t pxenv_get_cached_info ( struct s_PXENV_GET_CACHED_INFO
86                                             *get_cached_info );
87
88 /** @} */ /* pxenv_get_cached_info */
89
90 /** @defgroup pxenv_restart_tftp PXENV_RESTART_TFTP
91  *
92  *  RESTART TFTP
93  *
94  *  @{
95  */
96
97 /** PXE API function code for pxenv_restart_tftp() */
98 #define PXENV_RESTART_TFTP              0x0073
99
100 /** Parameter block for pxenv_restart_tftp() */
101 struct s_PXENV_RESTART_TFTP {
102 } PACKED;
103
104 typedef struct s_PXENV_RESTART_TFTP PXENV_RESTART_TFTP_t;
105
106 extern PXENV_EXIT_t pxenv_restart_tftp ( struct s_PXENV_TFTP_READ_FILE
107                                          *restart_tftp );
108
109 /** @} */ /* pxenv_restart_tftp */
110
111 /** @defgroup pxenv_start_undi PXENV_START_UNDI
112  *
113  *  START UNDI
114  *
115  *  @{
116  */
117
118 /** PXE API function code for pxenv_start_undi() */
119 #define PXENV_START_UNDI                0x0000
120
121 /** Parameter block for pxenv_start_undi() */
122 struct s_PXENV_START_UNDI {
123 } PACKED;
124
125 typedef struct s_PXENV_START_UNDI PXENV_START_UNDI_t;
126
127 extern PXENV_EXIT_t pxenv_start_undi ( struct s_PXENV_START_UNDI *start_undi );
128
129 /** @} */ /* pxenv_start_undi */
130
131 /** @defgroup pxenv_stop_undi PXENV_STOP_UNDI
132  *
133  *  STOP UNDI
134  *
135  *  @{
136  */
137
138 /** PXE API function code for pxenv_stop_undi() */
139 #define PXENV_STOP_UNDI                 0x0015
140
141 /** Parameter block for pxenv_stop_undi() */
142 struct s_PXENV_STOP_UNDI {
143 } PACKED;
144
145 typedef struct s_PXENV_STOP_UNDI PXENV_STOP_UNDI_t;
146
147 extern PXENV_EXIT_t pxenv_stop_undi ( struct s_PXENV_STOP_UNDI *stop_undi );
148
149 /** @} */ /* pxenv_stop_undi */
150
151 /** @defgroup pxenv_start_base PXENV_START_BASE
152  *
153  *  START BASE
154  *
155  *  @{
156  */
157
158 /** PXE API function code for pxenv_start_base() */
159 #define PXENV_START_BASE                0x0075
160
161 /** Parameter block for pxenv_start_base() */
162 struct s_PXENV_START_BASE {
163 } PACKED;
164
165 typedef struct s_PXENV_START_BASE PXENV_START_BASE_t;
166
167 extern PXENV_EXIT_t pxenv_start_base ( struct s_PXENV_START_BASE *start_base );
168
169 /** @} */ /* pxenv_start_base */
170
171 /** @defgroup pxenv_stop_base PXENV_STOP_BASE
172  *
173  *  STOP BASE
174  *
175  *  @{
176  */
177
178 /** PXE API function code for pxenv_stop_base() */
179 #define PXENV_STOP_BASE                 0x0076
180
181 /** Parameter block for pxenv_stop_base() */
182 struct s_PXENV_STOP_BASE {
183 } PACKED;
184
185 typedef struct s_PXENV_STOP_BASE PXENV_STOP_BASE_t;
186
187 extern PXENV_EXIT_t pxenv_stop_base ( struct s_PXENV_STOP_BASE *stop_base );
188
189 /** @} */ /* pxenv_stop_base */
190
191 /** @} */ /* pxe_preboot_api */
192
193 /** @defgroup pxe_tftp_api PXE TFTP API
194  *
195  * Download files via TFTP or MTFTP
196  *
197  * @{
198  */
199
200 /** @defgroup pxenv_tftp_open PXENV_TFTP_OPEN
201  *
202  *  TFTP OPEN
203  *
204  *  @{
205  */
206
207 /** PXE API function code for pxenv_tftp_open() */
208 #define PXENV_TFTP_OPEN                 0x0020
209
210 /** Parameter block for pxenv_tftp_open() */
211 struct s_PXENV_TFTP_OPEN {
212 } PACKED;
213
214 typedef struct s_PXENV_TFTP_OPEN PXENV_TFTP_OPEN_t;
215
216 extern PXENV_EXIT_t pxenv_tftp_open ( struct s_PXENV_TFTP_OPEN *tftp_open );
217
218 /** @} */ /* pxenv_tftp_open */
219
220 /** @defgroup pxenv_tftp_close PXENV_TFTP_CLOSE
221  *
222  *  TFTP CLOSE
223  *
224  *  @{
225  */
226
227 /** PXE API function code for pxenv_tftp_close() */
228 #define PXENV_TFTP_CLOSE                0x0021
229
230 /** Parameter block for pxenv_tftp_close() */
231 struct s_PXENV_TFTP_CLOSE {
232 } PACKED;
233
234 typedef struct s_PXENV_TFTP_CLOSE PXENV_TFTP_CLOSE_t;
235
236 extern PXENV_EXIT_t pxenv_tftp_close ( struct s_PXENV_TFTP_CLOSE *tftp_close );
237
238 /** @} */ /* pxenv_tftp_close */
239
240 /** @defgroup pxenv_tftp_read PXENV_TFTP_READ
241  *
242  *  TFTP READ
243  *
244  *  @{
245  */
246
247 /** PXE API function code for pxenv_tftp_read() */
248 #define PXENV_TFTP_READ                 0x0022
249
250 /** Parameter block for pxenv_tftp_read() */
251 struct s_PXENV_TFTP_READ {
252 } PACKED;
253
254 typedef struct s_PXENV_TFTP_READ PXENV_TFTP_READ_t;
255
256 extern PXENV_EXIT_t pxenv_tftp_read ( struct s_PXENV_TFTP_READ *tftp_read );
257
258 /** @} */ /* pxenv_tftp_read */
259
260 /** @defgroup pxenv_tftp_read_file PXENV_TFTP_READ_FILE
261  *
262  *  TFTP/MTFTP READ FILE
263  *
264  *  @{
265  */
266
267 /** PXE API function code for pxenv_tftp_read_file() */
268 #define PXENV_TFTP_READ_FILE            0x0023
269
270 /** Parameter block for pxenv_tftp_read_file() */
271 struct s_PXENV_TFTP_READ_FILE {
272 } PACKED;
273
274 typedef struct s_PXENV_TFTP_READ_FILE PXENV_TFTP_READ_FILE_t;
275
276 extern PXENV_EXIT_t pxenv_tftp_read_file ( struct s_PXENV_TFTP_READ_FILE
277                                            *tftp_read_file );
278
279 /** @} */ /* pxenv_tftp_read_file */
280
281 /** @defgroup pxenv_tftp_get_fsize PXENV_TFTP_GET_FSIZE
282  *
283  *  TFTP GET FILE SIZE
284  *
285  *  @{
286  */
287
288 /** PXE API function code for pxenv_tftp_get_fsize() */
289 #define PXENV_TFTP_GET_FSIZE            0x0025
290
291 /** Parameter block for pxenv_tftp_get_fsize() */
292 struct s_PXENV_TFTP_GET_FSIZE {
293 } PACKED;
294
295 typedef struct s_PXENV_TFTP_GET_FSIZE PXENV_TFTP_GET_FSIZE_t;
296
297 extern PXENV_EXIT_t pxenv_tftp_get_fsize ( struct s_PXENV_TFTP_GET_FSIZE
298                                            *get_fsize );
299
300 /** @} */ /* pxenv_tftp_get_fsize */
301
302 /** @} */ /* pxe_tftp_api */
303
304 /** @defgroup pxe_udp_api PXE UDP API
305  *
306  * Transmit and receive UDP packets
307  *
308  * @{
309  */
310
311 /** @defgroup pxenv_udp_open PXENV_UDP_OPEN
312  *
313  *  UDP OPEN
314  *
315  *  @{
316  */
317
318 /** PXE API function code for pxenv_udp_open() */
319 #define PXENV_UDP_OPEN                  0x0030
320
321 /** Parameter block for pxenv_udp_open() */
322 struct s_PXENV_UDP_OPEN {
323         PXENV_STATUS_t  Status;         /**< PXE status code */
324         IP4_t           src_ip;         /**< IP address of this station */
325 } PACKED;
326
327 typedef struct s_PXENV_UDP_OPEN PXENV_UDP_OPEN_t;
328
329 extern PXENV_EXIT_t pxenv_udp_open ( struct s_PXENV_UDP_OPEN *udp_open );
330
331 /** @} */ /* pxenv_udp_open */
332
333 /** @defgroup pxenv_udp_close PXENV_UDP_CLOSE
334  *
335  *  UDP CLOSE
336  *
337  *  @{
338  */
339
340 /** PXE API function code for pxenv_udp_close() */
341 #define PXENV_UDP_CLOSE                 0x0031
342
343 /** Parameter block for pxenv_udp_close() */
344 struct s_PXENV_UDP_CLOSE {
345         PXENV_STATUS_t  Status;         /**< PXE status code */
346 } PACKED;
347
348 typedef struct s_PXENV_UDP_CLOSE PXENV_UDP_CLOSE_t;
349
350 extern PXENV_EXIT_t pxenv_udp_close ( struct s_PXENV_UDP_CLOSE *udp_close );
351
352 /** @} */ /* pxenv_udp_close */
353
354 /** @defgroup pxenv_udp_write PXENV_UDP_WRITE
355  *
356  *  UDP WRITE
357  *
358  *  @{
359  */
360
361 /** PXE API function code for pxenv_udp_write() */
362 #define PXENV_UDP_WRITE                 0x0033
363
364 /** Parameter block for pxenv_udp_write() */
365 struct s_PXENV_UDP_WRITE {
366         PXENV_STATUS_t  Status;         /**< PXE status code */
367         IP4_t           ip;             /**< Destination IP address */
368         IP4_t           gw;             /**< Gateway IP address */
369         UDP_PORT_t      src_port;       /**< Source UDP port */
370         UDP_PORT_t      dst_port;       /**< Destination UDP port */
371         UINT16_t        buffer_size;    /**< UDP payload buffer size */
372         SEGOFF16_t      buffer;         /**< UDP payload buffer address */
373 } PACKED;
374
375 typedef struct s_PXENV_UDP_WRITE PXENV_UDP_WRITE_t;
376
377 extern PXENV_EXIT_t pxenv_udp_write ( struct s_PXENV_UDP_WRITE *udp_write );
378
379 /** @} */ /* pxenv_udp_write */
380
381 /** @defgroup pxenv_udp_read PXENV_UDP_READ
382  *
383  *  UDP READ
384  *
385  *  @{
386  */
387
388 /** PXE API function code for pxenv_udp_read() */
389 #define PXENV_UDP_READ                  0x0032
390
391 /** Parameter block for pxenv_udp_read() */
392 struct s_PXENV_UDP_READ {
393         PXENV_STATUS_t  Status;         /**< PXE status code */
394         IP4_t           src_ip;         /**< Source IP address */
395         IP4_t           dest_ip;        /**< Destination IP address */
396         UDP_PORT_t      s_port;         /**< Source UDP port */
397         UDP_PORT_t      d_port;         /**< Destination UDP port */
398         UINT16_t        buffer_size;    /**< UDP payload buffer size */
399         SEGOFF16_t      buffer;         /**< UDP payload buffer address */
400 } PACKED;
401
402 typedef struct s_PXENV_UDP_READ PXENV_UDP_READ_t;
403
404 extern PXENV_EXIT_t pxenv_udp_read ( struct s_PXENV_UDP_READ *udp_read );
405
406 /** @} */ /* pxenv_udp_read */
407
408 /** @} */ /* pxe_udp_api */
409
410 /** @defgroup pxe_undi_api PXE UNDI API
411  *
412  * Direct control of the network interface card
413  *
414  * @{
415  */
416
417 /** @defgroup pxenv_undi_startup PXENV_UNDI_STARTUP
418  *
419  *  UNDI STARTUP
420  *
421  *  @{
422  */
423
424 /** PXE API function code for pxenv_undi_startup() */
425 #define PXENV_UNDI_STARTUP              0x0001
426
427 /** Parameter block for pxenv_undi_startup() */
428 struct s_PXENV_UNDI_STARTUP {
429 } PACKED;
430
431 typedef struct s_PXENV_UNDI_STARTUP PXENV_UNDI_STARTUP_t;
432
433 extern PXENV_EXIT_t pxenv_undi_startup ( struct s_PXENV_UNDI_STARTUP
434                                          *undi_startup );
435
436 /** @} */ /* pxenv_undi_startup */
437
438 /** @defgroup pxenv_undi_cleanup PXENV_UNDI_CLEANUP
439  *
440  *  UNDI CLEANUP
441  *
442  *  @{
443  */
444
445 /** PXE API function code for pxenv_undi_cleanup() */
446 #define PXENV_UNDI_CLEANUP              0x0002
447
448 /** Parameter block for pxenv_undi_cleanup() */
449 struct s_PXENV_UNDI_CLEANUP {
450 } PACKED;
451
452 typedef struct s_PXENV_UNDI_CLEANUP PXENV_UNDI_CLEANUP_t;
453
454 extern PXENV_EXIT_t pxenv_undi_cleanup ( struct s_PXENV_UNDI_CLEANUP
455                                          *undi_cleanup );
456
457 /** @} */ /* pxenv_undi_cleanup */
458
459 /** @defgroup pxenv_undi_initialize PXENV_UNDI_INITIALIZE
460  *
461  *  UNDI INITIALIZE
462  *
463  *  @{
464  */
465
466 /** PXE API function code for pxenv_undi_initialize() */
467 #define PXENV_UNDI_INITIALIZE           0x0003
468
469 /** Parameter block for pxenv_undi_initialize() */
470 struct s_PXENV_UNDI_INITIALIZE {
471 } PACKED;
472
473 typedef struct s_PXENV_UNDI_INITIALIZE PXENV_UNDI_INITIALIZE_t;
474
475 extern PXENV_EXIT_t pxenv_undi_initialize ( struct s_PXENV_UNDI_INITIALIZE
476                                             *undi_initialize );
477
478 /** @} */ /* pxenv_undi_initialize */
479
480 /** @defgroup pxenv_undi_reset_adapter PXENV_UNDI_RESET_ADAPTER
481  *
482  *  UNDI RESET ADAPTER
483  *
484  *  @{
485  */
486
487 /** PXE API function code for pxenv_undi_reset_adapter() */
488 #define PXENV_UNDI_RESET_ADAPTER        0x0004
489
490 /** Parameter block for pxenv_undi_reset_adapter() */
491 struct s_PXENV_UNDI_RESET_ADAPTER {
492 } PACKED;
493
494 typedef struct s_PXENV_UNDI_RESET_ADAPTER PXENV_UNDI_RESET_ADAPTER_t;
495
496 extern PXENV_EXIT_t pxenv_undi_reset_adapter ( struct s_PXENV_UNDI_RESET
497                                                *undi_reset_adapter );
498
499 /** @} */ /* pxenv_undi_reset_adapter */
500
501 /** @defgroup pxenv_undi_shutdown PXENV_UNDI_SHUTDOWN
502  *
503  *  UNDI SHUTDOWN
504  *
505  *  @{
506  */
507
508 /** PXE API function code for pxenv_undi_shutdown() */
509 #define PXENV_UNDI_SHUTDOWN             0x0005
510
511 /** Parameter block for pxenv_undi_shutdown() */
512 struct s_PXENV_UNDI_SHUTDOWN {
513 } PACKED;
514
515 typedef struct s_PXENV_UNDI_SHUTDOWN PXENV_UNDI_SHUTDOWN_t;
516
517 extern PXENV_EXIT_t pxenv_undi_shutdown ( struct s_PXENV_UNDI_SHUTDOWN
518                                           *undi_shutdown );
519
520 /** @} */ /* pxenv_undi_shutdown */
521
522 /** @defgroup pxenv_undi_open PXENV_UNDI_OPEN
523  *
524  *  UNDI OPEN
525  *
526  *  @{
527  */
528
529 /** PXE API function code for pxenv_undi_open() */
530 #define PXENV_UNDI_OPEN                 0x0006
531
532 /** Parameter block for pxenv_undi_open() */
533 struct s_PXENV_UNDI_OPEN {
534 } PACKED;
535
536 typedef struct s_PXENV_UNDI_OPEN PXENV_UNDI_OPEN_t;
537
538 extern PXENV_EXIT_t pxenv_undi_open ( struct s_PXENV_UNDI_OPEN *undi_open );
539
540 /** @} */ /* pxenv_undi_open */
541
542 /** @defgroup pxenv_undi_close PXENV_UNDI_CLOSE
543  *
544  *  UNDI CLOSE
545  *
546  *  @{
547  */
548
549 /** PXE API function code for pxenv_undi_close() */
550 #define PXENV_UNDI_CLOSE                0x0007
551
552 /** Parameter block for pxenv_undi_close() */
553 struct s_PXENV_UNDI_CLOSE {
554 } PACKED;
555
556 typedef struct s_PXENV_UNDI_CLOSE PXENV_UNDI_CLOSE_t;
557
558 extern PXENV_EXIT_t pxenv_undi_close ( struct s_PXENV_UNDI_CLOSE *undi_close );
559
560 /** @} */ /* pxenv_undi_close */
561
562 /** @defgroup pxenv_undi_transmit PXENV_UNDI_TRANSMIT
563  *
564  *  UNDI TRANSMIT PACKET
565  *
566  *  @{
567  */
568
569 /** PXE API function code for pxenv_undi_transmit() */
570 #define PXENV_UNDI_TRANSMIT             0x0008
571
572 /** Parameter block for pxenv_undi_transmit() */
573 struct s_PXENV_UNDI_TRANSMIT {
574 } PACKED;
575
576 typedef struct s_PXENV_UNDI_TRANSMIT PXENV_UNDI_TRANSMIT_t;
577
578 extern PXENV_EXIT_t pxenv_undi_transmit ( struct s_PXENV_UNDI_TRANSMIT
579                                           *undi_transmit );
580
581 /** @} */ /* pxenv_undi_transmit */
582
583 /** @defgroup pxenv_undi_set_mcast_address PXENV_UNDI_SET_MCAST_ADDRESS
584  *
585  *  UNDI SET MULTICAST ADDRESS
586  *
587  *  @{
588  */
589
590 /** PXE API function code for pxenv_undi_set_mcast_address() */
591 #define PXENV_UNDI_SET_MCAST_ADDRESS    0x0009
592
593 /** Parameter block for pxenv_undi_set_mcast_address() */
594 struct s_PXENV_UNDI_SET_MCAST_ADDRESS {
595 } PACKED;
596
597 typedef struct s_PXENV_UNDI_SET_MCAST_ADDRESS PXENV_UNDI_SET_MCAST_ADDRESS_t;
598
599 extern PXENV_EXIT_t pxenv_undi_set_mcast_address (
600                struct s_PXENV_UNDI_SET_MCAST_ADDRESS *undi_set_mcast_address );
601
602 /** @} */ /* pxenv_undi_set_mcast_address */
603
604 /** @defgroup pxenv_undi_set_station_address PXENV_UNDI_SET_STATION_ADDRESS
605  *
606  *  UNDI SET STATION ADDRESS
607  *
608  *  @{
609  */
610
611 /** PXE API function code for pxenv_undi_set_station_address() */
612 #define PXENV_UNDI_SET_STATION_ADDRESS  0x000a
613
614 /** Parameter block for pxenv_undi_set_station_address() */
615 struct s_PXENV_UNDI_SET_STATION_ADDRESS {
616 } PACKED;
617
618 typedef struct s_PXENV_UNDI_SET_STATION_ADDRESS PXENV_UNDI_SET_STATION_ADDRESS_t;
619
620 extern PXENV_EXIT_t pxenv_undi_set_station_address (
621            struct s_PXENV_UNDI_SET_STATION_ADDRESS *undi_set_station_address );
622
623 /** @} */ /* pxenv_undi_set_station_address */
624
625 /** @defgroup pxenv_undi_set_packet_filter PXENV_UNDI_SET_PACKET_FILTER
626  *
627  *  UNDI SET PACKET FILTER
628  *
629  *  @{
630  */
631
632 /** PXE API function code for pxenv_undi_set_packet_filter() */
633 #define PXENV_UNDI_SET_PACKET_FILTER    0x000b
634
635 /** Parameter block for pxenv_undi_set_packet_filter() */
636 struct s_PXENV_UNDI_SET_PACKET_FILTER {
637 } PACKED;
638
639 typedef struct s_PXENV_UNDI_SET_PACKET_FILTER PXENV_UNDI_SET_PACKET_FILTER_t;
640
641 extern PXENV_EXIT_t pxenv_undi_set_packet_filter (
642                struct s_PXENV_UNDI_SET_PACKET_FILTER *undi_set_packet_filter );
643
644 /** @} */ /* pxenv_undi_set_packet_filter */
645
646 /** @defgroup pxenv_undi_get_information PXENV_UNDI_GET_INFORMATION
647  *
648  *  UNDI GET INFORMATION
649  *
650  *  @{
651  */
652
653 /** PXE API function code for pxenv_undi_get_information() */
654 #define PXENV_UNDI_GET_INFORMATION      0x000c
655
656 /** Parameter block for pxenv_undi_get_information() */
657 struct s_PXENV_UNDI_GET_INFORMATION {
658 } PACKED;
659
660 typedef struct s_PXENV_UNDI_GET_INFORMATION PXENV_UNDI_GET_INFORMATION_t;
661
662 extern PXENV_EXIT_t pxenv_undi_get_information (
663                    struct s_PXENV_UNDI_GET_INFORMATION *undi_get_information );
664
665 /** @} */ /* pxenv_undi_get_information */
666
667 /** @defgroup pxenv_undi_get_statistics PXENV_UNDI_GET_STATISTICS
668  *
669  *  UNDI GET STATISTICS
670  *
671  *  @{
672  */
673
674 /** PXE API function code for pxenv_undi_get_statistics() */
675 #define PXENV_UNDI_GET_STATISTICS       0x000d
676
677 /** Parameter block for pxenv_undi_get_statistics() */
678 struct s_PXENV_UNDI_GET_STATISTICS {
679 } PACKED;
680
681 typedef struct s_PXENV_UNDI_GET_STATISTICS PXENV_UNDI_GET_STATISTICS_t;
682
683 extern PXENV_EXIT_t pxenv_undi_get_statistics (
684                      struct s_PXENV_UNDI_GET_STATISTICS *undi_get_statistics );
685
686 /** @} */ /* pxenv_undi_get_statistics */
687
688 /** @defgroup pxenv_undi_clear_statistics PXENV_UNDI_CLEAR_STATISTICS
689  *
690  *  UNDI CLEAR STATISTICS
691  *
692  *  @{
693  */
694
695 /** PXE API function code for pxenv_undi_clear_statistics() */
696 #define PXENV_UNDI_CLEAR_STATISTICS     0x000e
697
698 /** Parameter block for pxenv_undi_clear_statistics() */
699 struct s_PXENV_UNDI_CLEAR_STATISTICS {
700 } PACKED;
701
702 typedef struct s_PXENV_UNDI_CLEAR_STATISTICS PXENV_UNDI_CLEAR_STATISTICS_t;
703
704 extern PXENV_EXIT_t pxenv_undi_clear_statistics (
705                  struct s_PXENV_UNDI_CLEAR_STATISTICS *undi_clear_statistics );
706
707 /** @} */ /* pxenv_undi_clear_statistics */
708
709 /** @defgroup pxenv_undi_initiate_diags PXENV_UNDI_INITIATE_DIAGS
710  *
711  *  UNDI INITIATE DIAGS
712  *
713  *  @{
714  */
715
716 /** PXE API function code for pxenv_undi_initiate_diags() */
717 #define PXENV_UNDI_INITIATE_DIAGS       0x000f
718
719 /** Parameter block for pxenv_undi_initiate_diags() */
720 struct s_PXENV_UNDI_INITIATE_DIAGS {
721 } PACKED;
722
723 typedef struct s_PXENV_UNDI_INITIATE_DIAGS PXENV_UNDI_INITIATE_DIAGS_t;
724
725 extern PXENV_EXIT_t pxenv_undi_initiate_diags (
726                      struct s_PXENV_UNDI_INITIATE_DIAGS *undi_initiate_diags );
727
728 /** @} */ /* pxenv_undi_initiate_diags */
729
730 /** @defgroup pxenv_undi_force_interrupt PXENV_UNDI_FORCE_INTERRUPT
731  *
732  *  UNDI FORCE INTERRUPT
733  *
734  *  @{
735  */
736
737 /** PXE API function code for pxenv_undi_force_interrupt() */
738 #define PXENV_UNDI_FORCE_INTERRUPT      0x0010
739
740 /** Parameter block for pxenv_undi_force_interrupt() */
741 struct s_PXENV_UNDI_FORCE_INTERRUPT {
742 } PACKED;
743
744 typedef struct s_PXENV_UNDI_FORCE_INTERRUPT PXENV_UNDI_FORCE_INTERRUPT_t;
745
746 extern PXENV_EXIT_t pxenv_undi_force_interrupt (
747                    struct s_PXENV_UNDI_FORCE_INTERRUPT *undi_force_interrupt );
748
749 /** @} */ /* pxenv_undi_force_interrupt */
750
751 /** @defgroup pxenv_undi_get_mcast_address PXENV_UNDI_GET_MCAST_ADDRESS
752  *
753  *  UNDI GET MULTICAST ADDRESS
754  *
755  *  @{
756  */
757
758 /** PXE API function code for pxenv_undi_get_mcast_address() */
759 #define PXENV_UNDI_GET_MCAST_ADDRESS    0x0011
760
761 /** Parameter block for pxenv_undi_get_mcast_address() */
762 struct s_PXENV_UNDI_GET_MCAST_ADDRESS {
763 } PACKED;
764
765 typedef struct s_PXENV_UNDI_GET_MCAST_ADDRESS PXENV_UNDI_GET_MCAST_ADDRESS_t;
766
767 extern PXENV_EXIT_t pxenv_undi_get_mcast_address (
768                struct s_PXENV_UNDI_GET_MCAST_ADDRESS *undi_get_mcast_address );
769
770 /** @} */ /* pxenv_undi_get_mcast_address */
771
772 /** @defgroup pxenv_undi_get_nic_type PXENV_UNDI_GET_NIC_TYPE
773  *
774  *  UNDI GET NIC TYPE
775  *
776  *  @{
777  */
778
779 /** PXE API function code for pxenv_undi_get_nic_type() */
780 #define PXENV_UNDI_GET_NIC_TYPE         0x0012
781
782 /** Parameter block for pxenv_undi_get_nic_type() */
783 struct s_PXENV_UNDI_GET_NIC_TYPE {
784 } PACKED;
785
786 typedef struct s_PXENV_UNDI_GET_NIC_TYPE PXENV_UNDI_GET_NIC_TYPE_t;
787
788 extern PXENV_EXIT_t pxenv_undi_get_nic_type ( 
789                          struct s_PXENV_UNDI_GET_NIC_TYPE *undi_get_nic_type );
790
791 /** @} */ /* pxenv_undi_get_nic_type */
792
793 /** @defgroup pxenv_undi_get_iface_info PXENV_UNDI_GET_IFACE_INFO
794  *
795  *  UNDI GET IFACE INFO
796  *
797  *  @{
798  */
799
800 /** PXE API function code for pxenv_undi_get_iface_info() */
801 #define PXENV_UNDI_GET_IFACE_INFO       0x0013
802
803 /** Parameter block for pxenv_undi_get_iface_info() */
804 struct s_PXENV_UNDI_GET_IFACE_INFO {
805 } PACKED;
806
807 typedef struct s_PXENV_UNDI_GET_IFACE_INFO PXENV_UNDI_GET_IFACE_INFO_t;
808
809 extern PXENV_EXIT_t pxenv_undi_get_iface_info (
810                      struct s_PXENV_UNDI_GET_IFACE_INFO *undi_get_iface_info );
811
812 /** @} */ /* pxenv_undi_get_iface_info */
813
814 /** @defgroup pxenv_undi_get_state PXENV_UNDI_GET_STATE
815  *
816  *  UNDI GET STATE
817  *
818  *  @{
819  */
820
821 /** PXE API function code for pxenv_undi_get_state() */
822 #define PXENV_UNDI_GET_STATE            0x0015
823
824 /** Parameter block for pxenv_undi_get_state() */
825 struct s_PXENV_UNDI_GET_STATE {
826 } PACKED;
827
828 typedef struct s_PXENV_UNDI_GET_STATE PXENV_UNDI_GET_STATE_t;
829
830 extern PXENV_EXIT_t pxenv_undi_get_state ( struct s_PXENV_UNDI_GET_STATE
831                                            *undi_get_state );
832
833 /** @} */ /* pxenv_undi_get_state */
834
835 /** @defgroup pxenv_undi_isr PXENV_UNDI_ISR
836  *
837  *  UNDI ISR
838  *
839  *  @{
840  */
841
842 /** PXE API function code for pxenv_undi_isr() */
843 #define PXENV_UNDI_ISR                  0x0014
844
845 /** Parameter block for pxenv_undi_isr() */
846 struct s_PXENV_UNDI_ISR {
847 } PACKED;
848
849 typedef struct s_PXENV_UNDI_ISR PXENV_UNDI_ISR_t;
850
851 extern PXENV_EXIT_t pxenv_undi_isr ( struct s_PXENV_UNDI_ISR *undi_isr );
852
853 /** @} */ /* pxenv_undi_isr */
854
855 /** @} */ /* pxe_undi_api */
856
857 /** @} */ /* pxe */
858
859 #endif /* PXE_API_H */