ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

pxe.h
Go to the documentation of this file.
00001 #ifndef _PXE_
00002 #define _PXE_
00003 
00004 /* Basic types */
00005 
00006 typedef UINT16 OFF16;
00007 typedef UINT16 PXENV_EXIT;
00008 typedef UINT16 PXENV_STATUS;
00009 typedef UINT16 SEGSEL;
00010 typedef UINT16 UDP_PORT;
00011 typedef UINT32 ADDR32;
00012 
00013 #include <pshpack1.h>
00014 
00015 #define IP_ADDR_LEN 4
00016 typedef union
00017 {
00018     UINT32 num;
00019     UINT8 array[IP_ADDR_LEN];
00020 } IP4;
00021 
00022 #define MAC_ADDR_LEN 16
00023 typedef UINT8 MAC_ADDR[MAC_ADDR_LEN];
00024 
00025 typedef struct s_SEGDESC
00026 {
00027     UINT16 segment_address;
00028     UINT32 physical_address;
00029     UINT16 seg_size;
00030 } SEGDESC;
00031 
00032 typedef struct s_SEGOFF16
00033 {
00034     OFF16 offset;
00035     SEGSEL segment;
00036 } SEGOFF16;
00037 
00038 typedef struct s_PXE
00039 {
00040     UINT8 Signature[4];
00041     UINT8 StructLength;
00042     UINT8 StructCksum;
00043     UINT8 StructRev;
00044     UINT8 reserved1;
00045     SEGOFF16 UNDIROMID;
00046     SEGOFF16 BaseROMID;
00047     SEGOFF16 EntryPointSP;
00048     SEGOFF16 EntryPointESP;
00049     SEGOFF16 StatusCallout;
00050     UINT8 reserved2;
00051     UINT8 SegDescCnt;
00052     SEGSEL FirstSelector;
00053     SEGDESC Stack;
00054     SEGDESC UNDIData;
00055     SEGDESC UNDICode;
00056     SEGDESC UNDICodeWrite;
00057     SEGDESC BC_Data;
00058     SEGDESC BC_Code;
00059     SEGDESC BC_CodeWrite;
00060 } PXE, *PPXE;
00061 
00062 /* PXENV structures */
00063 
00064 typedef struct s_PXENV_START_UNDI
00065 {
00066     PXENV_STATUS Status;
00067     UINT16 AX;
00068     UINT16 BX;
00069     UINT16 DX;
00070     UINT16 DI;
00071     UINT16 ES;
00072 } t_PXENV_START_UNDI;
00073 
00074 typedef struct s_PXENV_UNDI_STARTUP
00075 {
00076     PXENV_STATUS Status;
00077 } t_PXENV_UNDI_STARTUP;
00078 
00079 typedef struct s_PXENV_UNDI_CLEANUP
00080 {
00081     PXENV_STATUS Status;
00082 } t_PXENV_UNDI_CLEANUP;
00083 
00084 typedef struct s_PXENV_UNDI_INITIALIZE
00085 {
00086     PXENV_STATUS Status;
00087     ADDR32 ProtocolIni;
00088     UINT8 reserved[8];
00089 } t_PXENV_UNDI_INITIALIZE;
00090 
00091 #define MAXNUM_MCADDR 8
00092 typedef struct s_PXENV_UNDI_MCAST_ADDRESS
00093 {
00094     UINT16 MCastAddrCount;
00095     MAC_ADDR McastAddr[MAXNUM_MCADDR];
00096 } t_PXENV_UNDI_MCAST_ADDRESS;
00097 
00098 typedef struct s_PXENV_UNDI_RESET
00099 {
00100     PXENV_STATUS Status;
00101     t_PXENV_UNDI_MCAST_ADDRESS R_Mcast_Buf;
00102 } t_PXENV_UNDI_RESET;
00103 
00104 typedef struct s_PXENV_UNDI_SHUTDOWN
00105 {
00106     PXENV_STATUS Status;
00107 } t_PXENV_UNDI_SHUTDOWN;
00108 
00109 typedef struct s_PXENV_UNDI_OPEN
00110 {
00111     PXENV_STATUS Status;
00112     UINT16 OpenFlag;
00113     UINT16 PktFilter;
00114 #define FLTR_DIRECTED 0x01
00115 #define FLTR_BRDCST   0x02
00116 #define FLTR_PRMSCS   0x04
00117 #define FLTR_SRC_RTG  0x08
00118 
00119     t_PXENV_UNDI_MCAST_ADDRESS R_Mcast_Buf;
00120 } t_PXENV_UNDI_OPEN;
00121 
00122 typedef struct s_PXENV_UNDI_CLOSE
00123 {
00124     PXENV_STATUS Status;
00125 } t_PXENV_UNDI_CLOSE;
00126 
00127 typedef struct s_PXENV_UNDI_TRANSMIT
00128 {
00129     PXENV_STATUS Status;
00130     UINT8 Protocol;
00131 #define P_UNKNOWN 0
00132 #define P_IP      1
00133 #define P_ARP     2
00134 #define P_RARP    3
00135 
00136     UINT8 XmitFlag;
00137 #define XMT_DESTADDR  0x00
00138 #define XMT_BROADCAST 0x01
00139 
00140     SEGOFF16 DestAddr;
00141     SEGOFF16 TBD;
00142     UINT32 Reserved[2];
00143 } t_PXENV_UNDI_TRANSMIT;
00144 
00145 #define MAX_DATA_BLKS 8
00146 typedef struct s_PXENV_UNDI_TBD
00147 {
00148     UINT16 ImmedLength;
00149     SEGOFF16 Xmit;
00150     UINT16 DataBlkCount;
00151     struct DataBlk
00152     {
00153         UINT8 TDPtrType;
00154         UINT8 TDRsvdByte;
00155         UINT8 TDDataLen;
00156         SEGOFF16 TDDataPtr;
00157     } DataBlock[MAX_DATA_BLKS];
00158 } t_PXENV_UNDI_TBD;
00159 
00160 typedef struct s_PXENV_UNDI_SET_MCAST_ADDRESS
00161 {
00162     PXENV_STATUS Status;
00163     t_PXENV_UNDI_MCAST_ADDRESS R_Mcast_Buf;
00164 } t_PXENV_UNDI_SET_MCAST_ADDRESS;
00165 
00166 typedef struct s_PXENV_UNDI_SET_STATION_ADDRESS
00167 {
00168     PXENV_STATUS Status;
00169     MAC_ADDR StationAddress;
00170 } t_PXENV_UNDI_SET_STATION_ADDRESS;
00171 
00172 typedef struct s_PXENV_UNDI_SET_PACKET_FILTER
00173 {
00174     PXENV_STATUS Status;
00175     UINT8 filter;
00176 } t_PXENV_UNDI_SET_PACKET_FILTER;
00177 
00178 typedef struct s_PXENV_UNDI_GET_INFORMATION
00179 {
00180     PXENV_STATUS Status;
00181     UINT16 BaseIo;
00182     UINT16 IntNumber;
00183     UINT16 MaxTranUnit;
00184     UINT16 HwType;
00185 #define ETHER_TYPE     1
00186 #define EXP_ETHER_TYPE 2
00187 #define IEEE_TYPE      3
00188 #define ARCNET_TYPE    4
00189 
00190     UINT16 HwAddrLen;
00191     MAC_ADDR CurrentNodeAddress;
00192     MAC_ADDR PermNodeAddress;
00193     SEGSEL ROMAddress;
00194     UINT16 RxBufCt;
00195     UINT16 TxBufCt;
00196 } t_PXENV_UNDI_GET_INFORMATION;
00197 
00198 typedef struct s_PXENV_UNDI_GET_STATISTICS
00199 {
00200     PXENV_STATUS Status;
00201     UINT32 XmtGoodFrames;
00202     UINT32 RcvGoodFrames;
00203     UINT32 RcvCRCErrors;
00204     UINT32 RcvResourceErrors;
00205 } t_PXENV_UNDI_GET_STATISTICS;
00206 
00207 typedef struct s_PXENV_UNDI_CLEAR_STATISTICS
00208 {
00209     PXENV_STATUS Status;
00210 } t_PXENV_UNDI_CLEAR_STATISTICS;
00211 
00212 typedef struct s_PXENV_UNDI_INITIATE_DIAGS
00213 {
00214     PXENV_STATUS Status;
00215 } t_PXENV_UNDI_INITIATE_DIAGS;
00216 
00217 typedef struct s_PXENV_UNDI_FORCE_INTERRUPT
00218 {
00219     PXENV_STATUS Status;
00220 } t_PXENV_UNDI_FORCE_INTERRUPT;
00221 
00222 typedef struct s_PXENV_UNDI_GET_MCAST_ADDRESS
00223 {
00224     PXENV_STATUS Status;
00225     IP4 InetAddr;
00226     MAC_ADDR MediaAddr;
00227 } t_PXENV_UNDI_GET_MCAST_ADDRESS;
00228 
00229 typedef struct s_PXENV_UNDI_GET_NIC_TYPE
00230 {
00231     PXENV_STATUS Status;
00232     UINT8 NicType;
00233 #define PCI_NIC 2
00234 #define PnP_NIC 3
00235 #define CardBus_NIC 4
00236 
00237     union
00238     {
00239         struct
00240         {
00241             UINT16 Vendor_ID;
00242             UINT16 Dev_ID;
00243             UINT8 Base_Class;
00244             UINT8 Sub_Class;
00245             UINT8 Prog_Intf;
00246             UINT8 Rev;
00247             UINT16 BusDevFunc;
00248             UINT16 SubVendor_ID;
00249             UINT16 SubDevice_ID;
00250         } pci, cardbus;
00251         struct
00252         {
00253             UINT32 EISA_Dev_ID;
00254             UINT8 Base_Class;
00255             UINT8 Sub_Class;
00256             UINT8 Prog_Intf;
00257             UINT16 CardSelNum;
00258         } pnp;
00259     } info;
00260 } t_PXENV_UNDI_GET_NIC_TYPE;
00261 
00262 typedef struct s_PXENV_UNDI_GET_IFACE_INFO
00263 {
00264     PXENV_STATUS Status;
00265     UINT8 IfaceType[16];
00266     UINT32 LinkSpeed;
00267     UINT32 ServiceFlags;
00268     UINT32 Reserved[4];
00269 } t_PXENV_UNDI_GET_IFACE_INFO;
00270 
00271 typedef struct s_PXENV_UNDI_ISR
00272 {
00273     PXENV_STATUS Status;
00274     UINT16 FuncFlag;
00275     UINT16 BufferLength;
00276     UINT16 FrameLength;
00277     UINT16 FrameHeaderLength;
00278     SEGOFF16 Frame;
00279     UINT8 ProtType;
00280     UINT8 PktType;
00281 } t_PXENV_UNDI_ISR;
00282 
00283 #define PXENV_UNDI_ISR_IN_START     1
00284 #define PXENV_UNDI_ISR_IN_PROCESS   2
00285 #define PXENV_UNDI_ISR_IN_GET_NEXT  3
00286 
00287 /* One of these will be returned for PXENV_UNDI_ISR_IN_START */
00288 #define PXENV_UNDI_ISR_OUT_OURS     0
00289 #define PXENV_UNDI_ISR_OUT_NOT_OURS 1
00290 
00291 /* One of these will be returned for PXENV_UNDI_ISR_IN_PROCESS and PXENV_UNDI_ISR_IN_GET_NEXT */
00292 #define PXENV_UNDI_ISR_OUT_DONE     0
00293 #define PXENV_UNDI_ISR_OUT_TRANSMIT 2
00294 #define PXENV_UNDI_ISR_OUT_RECEIVE  3
00295 #define PXENV_UNDI_ISR_OUT_BUSY     4
00296 
00297 typedef struct s_PXENV_UNDI_GET_STATE
00298 {
00299     PXENV_STATUS Status;
00300 #define PXE_UNDI_GET_STATE_STARTED     1
00301 #define PXE_UNDI_GET_STATE_INITIALIZED 2
00302 #define PXE_UNDI_GET_STATE_OPENED      3
00303     UINT8 UNDIState;
00304 } t_PXENV_UNDI_GET_STATE;
00305 
00306 typedef struct s_PXENV_STOP_UNDI
00307 {
00308     PXENV_STATUS Status;
00309 } t_PXENV_STOP_UNDI;
00310 
00311 typedef struct s_PXENV_TFTP_OPEN
00312 {
00313     PXENV_STATUS Status;
00314     IP4 ServerIPAddress;
00315     IP4 GatewayIPAddress;
00316     UINT8 FileName[128];
00317     UDP_PORT TFTPPort;
00318     UINT16 PacketSize;
00319 } t_PXENV_TFTP_OPEN;
00320 
00321 typedef struct s_PXENV_TFTP_CLOSE
00322 {
00323     PXENV_STATUS Status;
00324 } t_PXENV_TFTP_CLOSE;
00325 
00326 typedef struct s_PXENV_TFTP_READ
00327 {
00328     PXENV_STATUS Status;
00329     UINT16 PacketNumber;
00330     UINT16 BufferSize;
00331     SEGOFF16 Buffer;
00332 } t_PXENV_TFTP_READ;
00333 
00334 typedef struct s_PXENV_TFTP_READ_FILE
00335 {
00336     PXENV_STATUS Status;
00337     UINT8 FileName[128];
00338     UINT32 BufferSize;
00339     ADDR32 Buffer;
00340     IP4 ServerIPAddress;
00341     IP4 GatewayIPAddress;
00342     IP4 McastIPAddress;
00343     UDP_PORT TFTPClntPort;
00344     UDP_PORT TFTPSvrPort;
00345     UINT16 TFTPOpenTimeOut;
00346     UINT16 TFTPReopenDelay;
00347 } t_PXENV_TFTP_READ_FILE;
00348 
00349 typedef struct s_PXENV_TFTP_GET_FSIZE
00350 {
00351     PXENV_STATUS Status;
00352     IP4 ServerIPAddress;
00353     IP4 GatewayIPAddress;
00354     UINT8 FileName[128];
00355     UINT32 FileSize;
00356 } t_PXENV_TFTP_GET_FSIZE;
00357 
00358 typedef struct s_PXENV_UDP_OPEN
00359 {
00360     PXENV_STATUS Status;
00361     IP4 src_ip;
00362 } t_PXENV_UDP_OPEN;
00363 
00364 typedef struct s_PXENV_UDP_CLOSE
00365 {
00366     PXENV_STATUS Status;
00367 } t_PXENV_UDP_CLOSE;
00368 
00369 typedef struct s_PXENV_UDP_READ
00370 {
00371     PXENV_STATUS Status;
00372     IP4 ip;
00373     IP4 dest_ip;
00374     UDP_PORT s_port;
00375     UDP_PORT d_port;
00376     UINT16 buffer_size;
00377     SEGOFF16 buffer;
00378 } t_PXENV_UDP_READ;
00379 
00380 typedef struct s_PXENV_UDP_WRITE
00381 {
00382     PXENV_STATUS Status;
00383     IP4 ip;
00384     IP4 gw;
00385     UDP_PORT src_port;
00386     UDP_PORT dst_port;
00387     UINT16 buffer_size;
00388     SEGOFF16 buffer;
00389 } t_PXENV_UDP_WRITE;
00390 
00391 typedef struct s_PXENV_UNLOAD_STACK
00392 {
00393     PXENV_STATUS Status;
00394     UINT8 reserved[10];
00395 } t_PXENV_UNLOAD_STACK;
00396 
00397 typedef struct s_PXENV_GET_CACHED_INFO
00398 {
00399     PXENV_STATUS Status;
00400     UINT16 PacketType;
00401 #define PXENV_PACKET_TYPE_DHCP_DISCOVER 1
00402 #define PXENV_PACKET_TYPE_DHCP_ACK      2
00403 #define PXENV_PACKET_TYPE_CACHED_REPLY  3
00404     UINT16 BufferSize;
00405     SEGOFF16 Buffer;
00406     UINT16 BufferLimit;
00407 } t_PXENV_GET_CACHED_INFO;
00408 
00409 typedef struct s_PXENV_START_BASE
00410 {
00411     PXENV_STATUS Status;
00412 } t_PXENV_START_BASE;
00413 
00414 typedef struct s_PXENV_STOP_BASE
00415 {
00416     PXENV_STATUS Status;
00417 } t_PXENV_STOP_BASE;
00418 
00419 typedef struct bootph
00420 {
00421     UINT8 opcode;
00422 #define BOOTP_REQ 1
00423 #define BOOTP_REP 2
00424 
00425     UINT8 Hardware;
00426     UINT8 Hardlen;
00427     UINT8 Gatehops;
00428     UINT32 ident;
00429     UINT16 seconds;
00430     UINT16 Flags;
00431 #define BOOTP_BCAST 0x8000
00432 
00433     IP4 cip;
00434     IP4 yip;
00435     IP4 sip;
00436     IP4 gip;
00437     MAC_ADDR CAddr;
00438     UINT8 Sname[64];
00439     UINT8 bootfile[128];
00440     union
00441     {
00442 #define BOOTP_DHCPVEND 1024 /* DHCP extended vendor field size */
00443         UINT8 d[BOOTP_DHCPVEND];
00444         struct
00445         {
00446             UINT8 magic[4];
00447 #define VM_RFC1048 0x63825363
00448             UINT32 flags;
00449             UINT8 pad[56];
00450         } v;
00451     } vendor;
00452 } BOOTPLAYER;
00453 
00454 #include <poppack.h>
00455 
00456 /* Exit codes returned in AX by a PXENV API service */
00457 #define PXENV_EXIT_SUCCESS  0x0000
00458 #define PXENV_EXIT_FAILURE  0x0001
00459 
00460 /* Generic API status & error codes that are reported by the loader */
00461 #define PXENV_STATUS_SUCCESS                          0x00
00462 #define PXENV_STATUS_FAILURE                          0x01 /* General failure */
00463 #define PXENV_STATUS_BAD_FUNC                         0x02 /* Invalid function number */
00464 #define PXENV_STATUS_UNSUPPORTED                      0x03 /* Function is not yet supported */
00465 #define PXENV_STATUS_KEEP_UNDI                        0x04 /* UNDI must not be unloaded from base memory */
00466 #define PXENV_STATUS_KEEP_ALL                         0x05
00467 #define PXENV_STATUS_OUT_OF_RESOURCES                 0x06 /* Base code and UNDI must not be unloaded from base memory */
00468 
00469 /* ARP errors (0x10 to 0x1f) */
00470 #define PXENV_STATUS_ARP_TIMEOUT                      0x11
00471 
00472 /* Base code state errors */
00473 #define PXENV_STATUS_UDP_CLOSED                       0x18
00474 #define PXENV_STATUS_UDP_OPEN                         0x19
00475 #define PXENV_STATUS_TFTP_CLOSED                      0x1a
00476 #define PXENV_STATUS_TFTP_OPEN                        0x1b
00477 
00478 /* BIOS/system errors (0x20 to 0x2f) */
00479 #define PXENV_STATUS_MCOPY_PROBLEM                    0x20
00480 #define PXENV_STATUS_BIS_INTEGRITY_FAILURE            0x21
00481 #define PXENV_STATUS_BIS_VALIDATE_FAILURE             0x22
00482 #define PXENV_STATUS_BIS_INIT_FAILURE                 0x23
00483 #define PXENV_STATUS_BIS_SHUTDOWN_FAILURE             0x24
00484 #define PXENV_STATUS_BIS_GBOA_FAILURE                 0x25
00485 #define PXENV_STATUS_BIS_FREE_FAILURE                 0x26
00486 #define PXENV_STATUS_BIS_GSI_FAILURE                  0x27
00487 #define PXENV_STATUS_BIS_BAD_CKSUM                    0x28
00488 
00489 /* TFTP/MTFTP errors (0x30 to 0x3f) */
00490 #define PXENV_STATUS_TFTP_CANNOT_ARP_ADDRESS          0x30
00491 #define PXENV_STATUS_TFTP_OPEN_TIMEOUT                0x32
00492 #define PXENV_STATUS_TFTP_UNKNOWN_OPCODE              0x33
00493 #define PXENV_STATUS_TFTP_READ_TIMEOUT                0x35
00494 #define PXENV_STATUS_TFTP_ERROR_OPCODE                0x36
00495 #define PXENV_STATUS_TFTP_CANNOT_OPEN_CONNECTION      0x38
00496 #define PXENV_STATUS_TFTP_CANNOT_READ_FROM_CONNECTION 0x39
00497 #define PXENV_STATUS_TFTP_TOO_MANY_PACKAGES           0x3a
00498 #define PXENV_STATUS_TFTP_FILE_NOT_FOUND              0x3b
00499 #define PXENV_STATUS_TFTP_ACCESS_VIOLATION            0x3c
00500 #define PXENV_STATUS_TFTP_NO_MCAST_ADDRESS            0x3d
00501 #define PXENV_STATUS_TFTP_NO_FILESIZE                 0x3e
00502 #define PXENV_STATUS_TFTP_INVALID_PACKET_SIZE         0x3f
00503 
00504 /* Reserved errors (0x40 to 0x4f) */
00505 
00506 /* DHCP/BOOTP errors (0x50 to 0x5f) */
00507 #define PXENV_STATUS_DHCP_TIMEOUT                     0x51
00508 #define PXENV_STATUS_DHCP_NO_IP_ADDRESS               0x52
00509 #define PXENV_STATUS_DHCP_NO_BOOTFILE_NAME            0x53
00510 #define PXENV_STATUS_DHCP_BAD_IP_ADDRESS              0x54
00511 
00512 /* Driver errors (0x60 to 0x6f) */
00513 /* These errors are for UNDI compatible NIC drivers */
00514 #define PXENV_STATUS_UNDI_INVALID_FUNCTION            0x60
00515 #define PXENV_STATUS_UNDI_MEDIATEST_FAILED            0x61
00516 #define PXENV_STATUS_UNDI_CANNOT_INIT_NIC_FOR_MCAST   0x62
00517 #define PXENV_STATUS_UNDI_CANNOT_INITIALIZE_NIC       0x63
00518 #define PXENV_STATUS_UNDI_CANNOT_INITIALIZE_PHY       0x64
00519 #define PXENV_STATUS_UNDI_CANNOT_READ_CONFIG_DATA     0x65
00520 #define PXENV_STATUS_UNDI_CANNOT_READ_INIT_DATA       0x66
00521 #define PXENV_STATUS_UNDI_BAD_MAC_ADDRESS             0x67
00522 #define PXENV_STATUS_UNDI_BAD_EEPROM_CHECKSUM         0x68
00523 #define PXENV_STATUS_UNDI_ERROR_SETTING_ISR           0x69
00524 #define PXENV_STATUS_UNDI_INVALID_STATE               0x6a
00525 #define PXENV_STATUS_UNDI_TRANSMIT_ERROR              0x6b
00526 #define PXENV_STATUS_UNDI_INVALID_PARAMETER           0x6c
00527 
00528 /* ROM and NBP bootstrap errors (0x70 to 0x7f) */
00529 #define PXENV_STATUS_BSTRAP_PROMPT_MENU               0x74
00530 #define PXENV_STATUS_BSTRAP_MCAST_ADDR                0x76
00531 #define PXENV_STATUS_BSTRAP_MISSING_LIST              0x77
00532 #define PXENV_STATUS_BSTRAP_NO_RESPONSE               0x78
00533 #define PXENV_STATUS_BSTRAP_FILE_TOO_BIG              0x79
00534 
00535 /* Environment NBP errors (0x80 to 0x8f) */
00536 
00537 /* Reserved errors (0x90 to 0x9f) */
00538 
00539 /* Misc. errors (0xa0 to 0xaf) */
00540 #define PXENV_STATUS_BINL_CANCELED_BY_KEYSTROKE       0xa0
00541 #define PXENV_STATUS_BINL_NO_PXE_SERVER               0xa1
00542 #define PXENV_STATUS_NOT_AVAILABLE_IN_PMODE           0xa2
00543 #define PXENV_STATUS_NOT_AVAILABLE_IN_RMODE           0xa3
00544 
00545 /* BUSD errors (0xb0 to 0xbf) */
00546 #define PXENV_STATUS_BUSD_DEVICE_NOT_SUPPORTED        0xb0
00547 
00548 /* Loader errors (0xc0 to 0xcf) */
00549 #define PXENV_STATUS_LOADER_NO_FREE_BASE_MEMORY       0xc0
00550 #define PXENV_STATUS_LOADER_NO_BC_ROMID               0xc1
00551 #define PXENV_STATUS_LOADER_BAD_BC_ROMID              0xc2
00552 #define PXENV_STATUS_LOADER_BAD_BC_RUNTIME_IMAGE      0xc3
00553 #define PXENV_STATUS_LOADER_NO_UNDI_ROMID             0xc4
00554 #define PXENV_STATUS_LOADER_BAD_UNDI_ROMID            0xc5
00555 #define PXENV_STATUS_LOADER_BAD_UNDI_DRIVER_IMAGE     0xc6
00556 #define PXENV_STATUS_LOADER_NO_PXE_STRUCT             0xc8
00557 #define PXENV_STATUS_LOADER_NO_PXENV_STRUCT           0xc9
00558 #define PXENV_STATUS_LOADER_UNDI_START                0xca
00559 #define PXENV_STATUS_LOADER_BC_START                  0xcb
00560 
00561 /* Vendor errors (0xd0 to 0xff) */
00562 
00563 /* PXENV API services */
00564 #define PXENV_START_UNDI               0x00
00565 #define PXENV_UNDI_STARTUP             0x01
00566 #define PXENV_UNDI_CLEANUP             0x02
00567 #define PXENV_UNDI_INITIALIZE          0x03
00568 #define PXENV_UNDI_RESET_ADAPTER       0x04
00569 #define PXENV_UNDI_SHUTDOWN            0x05
00570 #define PXENV_UNDI_OPEN                0x06
00571 #define PXENV_UNDI_CLOSE               0x07
00572 #define PXENV_UNDI_TRANSMIT            0x08
00573 #define PXENV_UNDI_SET_MCAST_ADDRESS   0x09
00574 #define PXENV_UNDI_SET_STATION_ADDRESS 0x0a
00575 #define PXENV_UNDI_SET_PACKET_FILTER   0x0b
00576 #define PXENV_UNDI_GET_INFORMATION     0x0c
00577 #define PXENV_UNDI_GET_STATISTICS      0x0d
00578 #define PXENV_UNDI_CLEAR_STATISTICS    0x0e
00579 #define PXENV_UNDI_INITIATE_DIAGS      0x0f
00580 #define PXENV_UNDI_FORCE_INTERRUPT     0x10
00581 #define PXENV_UNDI_GET_MCAST_ADDRESS   0x11
00582 #define PXENV_UNDI_GET_NIC_TYPE        0x12
00583 #define PXENV_UNDI_GET_IFACE_INFO      0x13
00584 #define PXENV_UNDI_ISR                 0x14
00585 #define PXENV_UNDI_GET_STATE           0x15
00586 #define PXENV_STOP_UNDI                0x15
00587 #define PXENV_TFTP_OPEN                0x20
00588 #define PXENV_TFTP_CLOSE               0x21
00589 #define PXENV_TFTP_READ                0x22
00590 #define PXENV_TFTP_READ_FILE           0x23
00591 #define PXENV_TFTP_GET_FSIZE           0x25
00592 #define PXENV_UDP_OPEN                 0x30
00593 #define PXENV_UDP_CLOSE                0x31
00594 #define PXENV_UDP_READ                 0x32
00595 #define PXENV_UDP_WRITE                0x33
00596 #define PXENV_UNLOAD_STACK             0x70
00597 #define PXENV_GET_CACHED_INFO          0x71
00598 #define PXENV_RESTART_TFTP             0x73
00599 #define PXENV_START_BASE               0x75
00600 #define PXENV_STOP_BASE                0x76
00601 
00602 #endif

Generated on Sun May 27 2012 04:19:13 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.