source: bootcd/isolinux/syslinux-6.03/com32/include/syslinux/pxe_api.h

Last change on this file was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 17.7 KB
Line 
1/* ----------------------------------------------------------------------- *
2 *
3 *   Copyright 2007-2008 H. Peter Anvin - All Rights Reserved
4 *
5 *   Permission is hereby granted, free of charge, to any person
6 *   obtaining a copy of this software and associated documentation
7 *   files (the "Software"), to deal in the Software without
8 *   restriction, including without limitation the rights to use,
9 *   copy, modify, merge, publish, distribute, sublicense, and/or
10 *   sell copies of the Software, and to permit persons to whom
11 *   the Software is furnished to do so, subject to the following
12 *   conditions:
13 *
14 *   The above copyright notice and this permission notice shall
15 *   be included in all copies or substantial portions of the Software.
16 *
17 *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18 *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19 *   OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20 *   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21 *   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22 *   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 *   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24 *   OTHER DEALINGS IN THE SOFTWARE.
25 *
26 * ----------------------------------------------------------------------- */
27
28/*
29 * syslinux/pxe_api.h
30 *
31 * PXE type and constant definitions for SYSLINUX
32 */
33
34#ifndef _SYSLINUX_PXE_API_H
35#define _SYSLINUX_PXE_API_H
36
37#include <stdint.h>
38#include <netinet/in.h>
39#include <klibc/compiler.h>
40#include <com32.h>
41
42/* PXE spec structures and definitions.  These mostly follow the PXE
43   spec, except when the PXE spec is unnecessarily stupid.  Of course,
44   that is most of the time. */
45
46/* Basic types; use Unix-like _t convention instead of SCREAMING; also
47   re-use types we already have, like in_addr_t. */
48
49typedef uint16_t pxenv_status_t;
50
51#define MAC_ADDR_LEN    16
52typedef uint8_t mac_addr_t[MAC_ADDR_LEN];
53
54/* "Protected mode segment descriptor" according to PXE... */
55typedef struct {
56    uint16_t sel;
57    uint32_t base;
58    uint16_t size;
59} __packed pxe_segdesc_t;
60
61typedef far_ptr_t segoff16_t;
62
63typedef struct {
64    uint8_t opcode;
65#define BOOTP_REQ 1
66#define BOOTP_REP 2
67    uint8_t Hardware;
68    uint8_t Hardlen;
69    uint8_t Gatehops;
70    uint32_t ident;
71    uint16_t seconds;
72    uint16_t Flags;
73#define BOOTP_BCAST 0x8000
74    in_addr_t cip;              /* Client IP address */
75    in_addr_t yip;              /* You IP address */
76    in_addr_t sip;              /* next server IP address */
77    in_addr_t gip;              /*relay agent IP address */
78    mac_addr_t CAddr;
79    uint8_t Sname[64];
80    uint8_t bootfile[128];
81    union {
82#define BOOTP_DHCPVEND 1024
83        uint8_t d[BOOTP_DHCPVEND];
84        struct {
85            uint8_t magic[4];
86#define VM_RFC1048 0x63825363L
87            uint32_t flags;
88            uint8_t pad[56];
89        } v;
90    } vendor;
91} __packed pxe_bootp_t;
92
93/* Function calling structures and constants */
94
95typedef struct s_PXENV_GET_CACHED_INFO {
96    pxenv_status_t Status;
97    uint16_t PacketType;
98#define PXENV_PACKET_TYPE_DHCP_DISCOVER 1
99#define PXENV_PACKET_TYPE_DHCP_ACK 2
100#define PXENV_PACKET_TYPE_CACHED_REPLY 3
101    uint16_t BufferSize;
102    segoff16_t Buffer;
103    uint16_t BufferLimit;
104} __packed t_PXENV_GET_CACHED_INFO;
105
106typedef struct s_PXENV_START_UNDI {
107    pxenv_status_t Status;
108    uint16_t AX;
109    uint16_t BX;
110    uint16_t DX;
111    uint16_t DI;
112    uint16_t ES;
113} __packed t_PXENV_START_UNDI;
114
115typedef struct s_PXENV_STOP_UNDI {
116    pxenv_status_t Status;
117} __packed t_PXENV_STOP_UNDI;
118
119typedef struct s_PXENV_START_BASE {
120    pxenv_status_t Status;
121} __packed t_PXENV_START_BASE;
122
123typedef struct s_PXENV_STOP_BASE {
124    pxenv_status_t Status;
125} __packed t_PXENV_STOP_BASE;
126
127typedef struct s_PXENV_TFTP_OPEN {
128    pxenv_status_t Status;
129    in_addr_t ServerIPAddress;
130    in_addr_t GatewayIPAddress;
131    uint8_t FileName[128];
132    in_port_t TFTPPort;
133    uint16_t PacketSize;
134} __packed t_PXENV_TFTP_OPEN;
135
136typedef struct s_PXENV_TFTP_CLOSE {
137    pxenv_status_t Status;
138} __packed t_PXENV_TFTP_CLOSE;
139
140typedef struct s_PXENV_TFTP_READ {
141    pxenv_status_t Status;
142    uint16_t PacketNumber;
143    uint16_t BufferSize;
144    segoff16_t Buffer;
145} __packed t_PXENV_TFTP_READ;
146
147typedef struct s_PXENV_TFTP_READ_FILE {
148    pxenv_status_t Status;
149    uint8_t FileName[128];
150    uint32_t BufferSize;
151    void *Buffer;
152    in_addr_t ServerIPAddress;
153    in_addr_t GatewayIPAddress;
154    in_addr_t McastIPAddress;
155    in_port_t TFTPClntPort;
156    in_port_t TFTPSrvPort;
157    uint16_t TFTPOpenTimeOut;
158    uint16_t TFTPReopenDelay;
159} __packed t_PXENV_TFTP_READ_FILE;
160
161typedef struct s_PXENV_TFTP_GET_FSIZE {
162    pxenv_status_t Status;
163    in_addr_t ServerIPAddress;
164    in_addr_t GatewayIPAddress;
165    uint8_t FileName[128];
166    uint32_t FileSize;
167} __packed t_PXENV_TFTP_GET_FSIZE;
168
169typedef struct s_PXENV_UDP_OPEN {
170    pxenv_status_t status;
171    in_addr_t src_ip;
172} __packed t_PXENV_UDP_OPEN;
173
174typedef struct s_PXENV_UDP_CLOSE {
175    pxenv_status_t status;
176} __packed t_PXENV_UDP_CLOSE;
177
178typedef struct s_PXENV_UDP_WRITE {
179    pxenv_status_t status;
180    in_addr_t ip;
181    in_addr_t gw;
182    in_port_t src_port;
183    in_port_t dst_port;
184    uint16_t buffer_size;
185    segoff16_t buffer;
186} __packed t_PXENV_UDP_WRITE;
187
188typedef struct s_PXENV_UDP_READ {
189    pxenv_status_t status;
190    in_addr_t src_ip;
191    in_addr_t dest_ip;
192    in_port_t s_port;
193    in_port_t d_port;
194    uint16_t buffer_size;
195    segoff16_t buffer;
196} __packed t_PXENV_UDP_READ;
197
198typedef struct s_PXENV_UNDI_STARTUP {
199    pxenv_status_t Status;
200} __packed t_PXENV_UNDI_STARTUP;
201
202typedef struct s_PXENV_UNDI_CLEANUP {
203    pxenv_status_t Status;
204} __packed t_PXENV_UNDI_CLEANUP;
205
206typedef struct s_PXENV_UNDI_INITIALIZE {
207    pxenv_status_t Status;
208    void *ProtocolIni;
209    uint8_t reserved[8];
210} __packed t_PXENV_UNDI_INITIALIZE;
211
212#define MAXNUM_MCADDR 8
213typedef struct s_PXENV_UNDI_MCAST_ADDRESS {
214    uint16_t MCastAddrCount;
215    mac_addr_t McastAddr[MAXNUM_MCADDR];
216} __packed t_PXENV_UNDI_MCAST_ADDRESS;
217
218typedef struct s_PXENV_UNDI_RESET {
219    pxenv_status_t Status;
220    t_PXENV_UNDI_MCAST_ADDRESS R_Mcast_Buf;
221} __packed t_PXENV_UNDI_RESET;
222
223typedef struct s_PXENV_UNDI_SHUTDOWN {
224    pxenv_status_t Status;
225} __packed t_PXENV_UNDI_SHUTDOWN;
226
227typedef struct s_PXENV_UNDI_OPEN {
228    pxenv_status_t Status;
229    uint16_t OpenFlag;
230    uint16_t PktFilter;
231#define FLTR_DIRECTED 0x0001
232#define FLTR_BRDCST 0x0002
233#define FLTR_PRMSCS 0x0004
234#define FLTR_SRC_RTG 0x0008
235     t_PXENV_UNDI_MCAST_ADDRESS R_Mcast_Buf;
236} __packed t_PXENV_UNDI_OPEN;
237
238typedef struct s_PXENV_UNDI_CLOSE {
239    pxenv_status_t Status;
240} __packed t_PXENV_UNDI_CLOSE;
241
242typedef struct s_PXENV_UNDI_TRANSMIT {
243    pxenv_status_t Status;
244    uint8_t Protocol;
245#define P_UNKNOWN 0
246#define P_IP 1
247#define P_ARP 2
248#define P_RARP 3
249    uint8_t XmitFlag;
250#define XMT_DESTADDR 0x0000
251#define XMT_BROADCAST 0x0001
252    segoff16_t DestAddr;
253    segoff16_t TBD;
254    uint32_t Reserved[2];
255} __packed t_PXENV_UNDI_TRANSMIT;
256#define MAX_DATA_BLKS 8
257typedef struct s_PXENV_UNDI_TBD {
258    uint16_t ImmedLength;
259    segoff16_t Xmit;
260    uint16_t DataBlkCount;
261    struct DataBlk {
262        uint8_t TDPtrType;
263        uint8_t TDRsvdByte;
264        uint16_t TDDataLen;
265        segoff16_t TDDataPtr;
266    } DataBlock[MAX_DATA_BLKS];
267} __packed t_PXENV_UNDI_TBD;
268
269typedef struct s_PXENV_UNDI_SET_MCAST_ADDRESS {
270    pxenv_status_t Status;
271     t_PXENV_UNDI_MCAST_ADDRESS R_Mcast_Buf;
272} __packed t_PXENV_UNDI_SET_MCAST_ADDR;
273
274typedef struct s_PXENV_UNDI_SET_STATION_ADDRESS {
275    pxenv_status_t Status;
276    mac_addr_t StationAddress;
277} __packed t_PXENV_UNDI_SET_STATION_ADDR;
278
279typedef struct s_PXENV_UNDI_SET_PACKET_FILTER {
280    pxenv_status_t Status;
281    uint8_t filter;
282} __packed t_PXENV_UNDI_SET_PACKET_FILTER;
283
284typedef struct s_PXENV_UNDI_GET_INFORMATION {
285    pxenv_status_t Status;
286    uint16_t BaseIo;
287    uint16_t IntNumber;
288    uint16_t MaxTranUnit;
289    uint16_t HwType;
290#define ETHER_TYPE 1
291#define EXP_ETHER_TYPE 2
292#define IEEE_TYPE 6
293#define ARCNET_TYPE 7
294    uint16_t HwAddrLen;
295    mac_addr_t CurrentNodeAddress;
296    mac_addr_t PermNodeAddress;
297    uint16_t ROMAddress;
298    uint16_t RxBufCt;
299    uint16_t TxBufCt;
300} __packed t_PXENV_UNDI_GET_INFORMATION;
301
302typedef struct s_PXENV_UNDI_GET_STATISTICS {
303    pxenv_status_t Status;
304    uint32_t XmtGoodFrames;
305    uint32_t RcvGoodFrames;
306    uint32_t RcvCRCErrors;
307    uint32_t RcvResourceErrors;
308} __packed t_PXENV_UNDI_GET_STATISTICS;
309
310typedef struct s_PXENV_UNDI_CLEAR_STATISTICS {
311    pxenv_status_t Status;
312} __packed t_PXENV_UNDI_CLEAR_STATISTICS;
313
314typedef struct s_PXENV_UNDI_INITIATE_DIAGS {
315    pxenv_status_t Status;
316} __packed t_PXENV_UNDI_INITIATE_DIAGS;
317
318typedef struct s_PXENV_UNDI_FORCE_INTERRUPT {
319    pxenv_status_t Status;
320} __packed t_PXENV_UNDI_FORCE_INTERRUPT;
321
322typedef struct s_PXENV_UNDI_GET_MCAST_ADDRESS {
323    pxenv_status_t Status;
324    in_addr_t InetAddr;
325    mac_addr_t MediaAddr;
326} __packed t_PXENV_UNDI_GET_MCAST_ADDR;
327
328typedef struct s_PXENV_UNDI_GET_NIC_TYPE {
329    pxenv_status_t Status;
330    uint8_t NicType;
331#define PCI_NIC 2
332#define PnP_NIC 3
333#define CardBus_NIC 4
334    union {
335        struct {
336            uint16_t Vendor_ID;
337            uint16_t Dev_ID;
338            uint8_t Base_Class;
339            uint8_t Sub_Class;
340            uint8_t Prog_Intf;
341            uint8_t Rev;
342            uint16_t BusDevFunc;
343            uint16_t SubVendor_ID;
344            uint16_t SubDevice_ID;
345        } pci, cardbus;
346        struct {
347            uint32_t EISA_Dev_ID;
348            uint8_t Base_Class;
349            uint8_t Sub_Class;
350            uint8_t Prog_Intf;
351            uint16_t CardSelNum;
352        } __packed pnp;
353    } __packed info;
354} __packed t_PXENV_UNDI_GET_NIC_TYPE;
355
356typedef struct s_PXENV_UNDI_GET_IFACE_INFO {
357    pxenv_status_t Status;
358    uint8_t IfaceType[16];
359    uint32_t LinkSpeed;
360    uint32_t ServiceFlags;
361    uint32_t Reserved[4];
362} __packed t_PXENV_UNDI_GET_IFACE_INFO;
363#define PXE_UNDI_IFACE_FLAG_BCAST       0x00000001
364#define PXE_UNDI_IFACE_FLAG_MCAST       0x00000002
365#define PXE_UNDI_IFACE_FLAG_GROUP       0x00000004
366#define PXE_UNDI_IFACE_FLAG_PROMISC     0x00000008
367#define PXE_UNDI_IFACE_FLAG_SOFTMAC     0x00000010
368#define PXE_UNDI_IFACE_FLAG_STATS       0x00000020
369#define PXE_UNDI_IFACE_FLAG_DIAGS       0x00000040
370#define PXE_UNDI_IFACE_FLAG_LOOPBACK    0x00000080
371#define PXE_UNDI_IFACE_FLAG_RCVCHAIN    0x00000100
372#define PXE_UNDI_IFACE_FLAG_IBMSRCRT    0x00000200
373#define PXE_UNDI_IFACE_FLAG_RESET       0x00000400
374#define PXE_UNDI_IFACE_FLAG_OPEN        0x00000800
375#define PXE_UNDI_IFACE_FLAG_IRQ         0x00001000
376#define PXE_UNDI_IFACE_FLAG_SRCRT       0x00002000
377#define PXE_UNDI_IFACE_FLAG_GDTVIRT     0x00004000
378#define PXE_UNDI_IFACE_FLAG_MULTI       0x00008000
379#define PXE_UNDI_IFACE_FLAG_LKFISZ      0x00010000
380
381typedef struct s_PXENV_UNDI_GET_STATE {
382#define PXE_UNDI_GET_STATE_STARTED 1
383#define PXE_UNDI_GET_STATE_INITIALIZED 2
384#define PXE_UNDI_GET_STATE_OPENED 3
385    pxenv_status_t Status;
386    uint8_t UNDIstate;
387} __packed t_PXENV_UNDI_GET_STATE;
388
389typedef struct s_PXENV_UNDI_ISR {
390    pxenv_status_t Status;
391    uint16_t FuncFlag;
392    uint16_t BufferLength;
393    uint16_t FrameLength;
394    uint16_t FrameHeaderLength;
395    segoff16_t Frame;
396    uint8_t ProtType;
397    uint8_t PktType;
398} __packed t_PXENV_UNDI_ISR;
399
400typedef struct s_PXENV_FILE_API_CHECK {
401    pxenv_status_t Status;
402    uint16_t Size;
403    uint32_t Magic;
404    uint32_t Provider;
405    uint32_t APIMask;
406    uint32_t Flags;
407} __packed t_PXENV_FILE_API_CHECK;
408
409typedef struct s_PXENV_FILE_READ {
410    pxenv_status_t Status;
411    uint16_t FileHandle;
412    uint16_t BufferSize;
413    segoff16_t Buffer;
414} __packed t_PXENV_FILE_READ;
415
416typedef struct s_PXENV_FILE_OPEN {
417    pxenv_status_t Status;
418    uint16_t FileHandle;
419    segoff16_t FileName;
420    uint32_t Reserved;
421} __packed t_PXENV_FILE_OPEN;
422
423typedef struct s_PXENV_FILE_CLOSE {
424    pxenv_status_t Status;
425    uint16_t FileHandle;
426} __packed t_PXENV_FILE_CLOSE;
427
428typedef struct s_PXENV_GET_FILE_SIZE {
429    pxenv_status_t Status;
430    uint16_t FileHandle;
431    uint32_t FileSize;
432} __packed t_PXENV_GET_FILE_SIZE;
433
434typedef struct s_PXENV_UNLOAD_STACK {
435    pxenv_status_t Status;
436    uint8_t reserved[10];
437} __packed t_PXENV_UNLOAD_STACK;
438   
439#define PXENV_UNDI_ISR_IN_START 1
440#define PXENV_UNDI_ISR_IN_PROCESS 2
441#define PXENV_UNDI_ISR_IN_GET_NEXT 3
442/* One of these will be returned for
443   PXENV_UNDI_ISR_IN_START */
444#define PXENV_UNDI_ISR_OUT_OURS 0
445#define PXENV_UNDI_USR_OUT_NOT_OURS 1
446/* One of these will be returned for
447   PXENV_UNDI_ISR_IN_PROCESS and
448   PXENV_UNDI_ISR_IN_GET_NEXT */
449#define PXENV_UNDI_ISR_OUT_DONE 0
450#define PXENV_UNDI_ISR_OUT_TRANSMIT 2
451#define PXENV_UNDI_ISR_OUT_RECEIVE 3
452#define PXENV_UNDI_ISR_OUT_BUSY 4
453
454/* Function numbers and error codes */
455
456#define PXENV_TFTP_OPEN                 0x0020
457#define PXENV_TFTP_CLOSE                0x0021
458#define PXENV_TFTP_READ                 0x0022
459#define PXENV_TFTP_READ_FILE            0x0023
460#define PXENV_TFTP_READ_FILE_PMODE      0x0024
461#define PXENV_TFTP_GET_FSIZE            0x0025
462
463#define PXENV_UDP_OPEN                  0x0030
464#define PXENV_UDP_CLOSE                 0x0031
465#define PXENV_UDP_READ                  0x0032
466#define PXENV_UDP_WRITE                 0x0033
467
468#define PXENV_START_UNDI                0x0000
469#define PXENV_UNDI_STARTUP              0x0001
470#define PXENV_UNDI_CLEANUP              0x0002
471#define PXENV_UNDI_INITIALIZE           0x0003
472#define PXENV_UNDI_RESET_NIC            0x0004
473#define PXENV_UNDI_SHUTDOWN             0x0005
474#define PXENV_UNDI_OPEN                 0x0006
475#define PXENV_UNDI_CLOSE                0x0007
476#define PXENV_UNDI_TRANSMIT             0x0008
477#define PXENV_UNDI_SET_MCAST_ADDR       0x0009
478#define PXENV_UNDI_SET_STATION_ADDR     0x000A
479#define PXENV_UNDI_SET_PACKET_FILTER    0x000B
480#define PXENV_UNDI_GET_INFORMATION      0x000C
481#define PXENV_UNDI_GET_STATISTICS       0x000D
482#define PXENV_UNDI_CLEAR_STATISTICS     0x000E
483#define PXENV_UNDI_INITIATE_DIAGS       0x000F
484#define PXENV_UNDI_FORCE_INTERRUPT      0x0010
485#define PXENV_UNDI_GET_MCAST_ADDR       0x0011
486#define PXENV_UNDI_GET_NIC_TYPE         0x0012
487#define PXENV_UNDI_GET_IFACE_INFO       0x0013
488#define PXENV_UNDI_ISR                  0x0014
489#define PXENV_STOP_UNDI                 0x0015  /* Overlap...? */
490#define PXENV_UNDI_GET_STATE            0x0015  /* Overlap...? */
491
492#define PXENV_UNLOAD_STACK              0x0070
493#define PXENV_GET_CACHED_INFO           0x0071
494#define PXENV_RESTART_DHCP              0x0072
495#define PXENV_RESTART_TFTP              0x0073
496#define PXENV_MODE_SWITCH               0x0074
497#define PXENV_START_BASE                0x0075
498#define PXENV_STOP_BASE                 0x0076
499
500/* gPXE extensions... */
501#define PXENV_FILE_OPEN                 0x00e0
502#define PXENV_FILE_CLOSE                0x00e1
503#define PXENV_FILE_SELECT               0x00e2
504#define PXENV_FILE_READ                 0x00e3
505#define PXENV_GET_FILE_SIZE             0x00e4
506#define PXENV_FILE_EXEC                 0x00e5
507#define PXENV_FILE_API_CHECK            0x00e6
508
509/* Exit codes */
510#define PXENV_EXIT_SUCCESS                               0x0000
511#define PXENV_EXIT_FAILURE                               0x0001
512
513/* Status codes */
514#define PXENV_STATUS_SUCCESS                             0x00
515#define PXENV_STATUS_FAILURE                             0x01
516#define PXENV_STATUS_BAD_FUNC                            0x02
517#define PXENV_STATUS_UNSUPPORTED                         0x03
518#define PXENV_STATUS_KEEP_UNDI                           0x04
519#define PXENV_STATUS_KEEP_ALL                            0x05
520#define PXENV_STATUS_OUT_OF_RESOURCES                    0x06
521#define PXENV_STATUS_ARP_TIMEOUT                         0x11
522#define PXENV_STATUS_UDP_CLOSED                          0x18
523#define PXENV_STATUS_UDP_OPEN                            0x19
524#define PXENV_STATUS_TFTP_CLOSED                         0x1a
525#define PXENV_STATUS_TFTP_OPEN                           0x1b
526#define PXENV_STATUS_MCOPY_PROBLEM                       0x20
527#define PXENV_STATUS_BIS_INTEGRITY_FAILURE               0x21
528#define PXENV_STATUS_BIS_VALIDATE_FAILURE                0x22
529#define PXENV_STATUS_BIS_INIT_FAILURE                    0x23
530#define PXENV_STATUS_BIS_SHUTDOWN_FAILURE                0x24
531#define PXENV_STATUS_BIS_GBOA_FAILURE                    0x25
532#define PXENV_STATUS_BIS_FREE_FAILURE                    0x26
533#define PXENV_STATUS_BIS_GSI_FAILURE                     0x27
534#define PXENV_STATUS_BIS_BAD_CKSUM                       0x28
535#define PXENV_STATUS_TFTP_CANNOT_ARP_ADDRESS             0x30
536#define PXENV_STATUS_TFTP_OPEN_TIMEOUT                   0x32
537
538#define PXENV_STATUS_TFTP_UNKNOWN_OPCODE                 0x33
539#define PXENV_STATUS_TFTP_READ_TIMEOUT                   0x35
540#define PXENV_STATUS_TFTP_ERROR_OPCODE                   0x36
541#define PXENV_STATUS_TFTP_CANNOT_OPEN_CONNECTION         0x38
542#define PXENV_STATUS_TFTP_CANNOT_READ_FROM_CONNECTION    0x39
543#define PXENV_STATUS_TFTP_TOO_MANY_PACKAGES              0x3a
544#define PXENV_STATUS_TFTP_FILE_NOT_FOUND                 0x3b
545#define PXENV_STATUS_TFTP_ACCESS_VIOLATION               0x3c
546#define PXENV_STATUS_TFTP_NO_MCAST_ADDRESS               0x3d
547#define PXENV_STATUS_TFTP_NO_FILESIZE                    0x3e
548#define PXENV_STATUS_TFTP_INVALID_PACKET_SIZE            0x3f
549#define PXENV_STATUS_DHCP_TIMEOUT                        0x51
550#define PXENV_STATUS_DHCP_NO_IP_ADDRESS                  0x52
551#define PXENV_STATUS_DHCP_NO_BOOTFILE_NAME               0x53
552#define PXENV_STATUS_DHCP_BAD_IP_ADDRESS                 0x54
553#define PXENV_STATUS_UNDI_INVALID_FUNCTION               0x60
554#define PXENV_STATUS_UNDI_MEDIATEST_FAILED               0x61
555#define PXENV_STATUS_UNDI_CANNOT_INIT_NIC_FOR_MCAST      0x62
556#define PXENV_STATUS_UNDI_CANNOT_INITIALIZE_NIC          0x63
557#define PXENV_STATUS_UNDI_CANNOT_INITIALIZE_PHY          0x64
558#define PXENV_STATUS_UNDI_CANNOT_READ_CONFIG_DATA        0x65
559#define PXENV_STATUS_UNDI_CANNOT_READ_INIT_DATA          0x66
560#define PXENV_STATUS_UNDI_BAD_MAC_ADDRESS                0x67
561#define PXENV_STATUS_UNDI_BAD_EEPROM_CHECKSUM            0x68
562#define PXENV_STATUS_UNDI_ERROR_SETTING_ISR              0x69
563#define PXENV_STATUS_UNDI_INVALID_STATE                  0x6a
564#define PXENV_STATUS_UNDI_TRANSMIT_ERROR                 0x6b
565#define PXENV_STATUS_UNDI_INVALID_PARAMETER              0x6c
566#define PXENV_STATUS_BSTRAP_PROMPT_MENU                  0x74
567#define PXENV_STATUS_BSTRAP_MCAST_ADDR                   0x76
568#define PXENV_STATUS_BSTRAP_MISSING_LIST                 0x77
569#define PXENV_STATUS_BSTRAP_NO_RESPONSE                  0x78
570#define PXENV_STATUS_BSTRAP_FILE_TOO_BIG                 0x79
571#define PXENV_STATUS_BINL_CANCELED_BY_KEYSTROKE          0xa0
572#define PXENV_STATUS_BINL_NO_PXE_SERVER                  0xa1
573#define PXENV_STATUS_NOT_AVAILABLE_IN_PMODE              0xa2
574#define PXENV_STATUS_NOT_AVAILABLE_IN_RMODE              0xa3
575#define PXENV_STATUS_BUSD_DEVICE_NOT_SUPPORTED           0xb0
576#define PXENV_STATUS_LOADER_NO_FREE_BASE_MEMORY          0xc0
577#define PXENV_STATUS_LOADER_NO_BC_ROMID                  0xc1
578#define PXENV_STATUS_LOADER_BAD_BC_ROMID                 0xc2
579#define PXENV_STATUS_LOADER_BAD_BC_RUNTIME_IMAGE         0xc3
580#define PXENV_STATUS_LOADER_NO_UNDI_ROMID                0xc4
581#define PXENV_STATUS_LOADER_BAD_UNDI_ROMID               0xc5
582#define PXENV_STATUS_LOADER_BAD_UNDI_DRIVER_IMAGE        0xc6
583#define PXENV_STATUS_LOADER_NO_PXE_STRUCT                0xc8
584#define PXENV_STATUS_LOADER_NO_PXENV_STRUCT              0xc9
585#define PXENV_STATUS_LOADER_UNDI_START                   0xca
586#define PXENV_STATUS_LOADER_BC_START                     0xcb
587
588int __weak pxe_call(int, void *);
589void __weak unload_pxe(uint16_t flags);
590uint32_t __weak dns_resolv(const char *);
591
592extern uint32_t __weak SendCookies;
593void __weak http_bake_cookies(void);
594
595#endif /* _SYSLINUX_PXE_API_H */
Note: See TracBrowser for help on using the repository browser.