📄 pxe.h
字号:
#define PnP_NIC 3
#define CardBus_NIC 4
union {
struct {
UINT16 Vendor_ID;
UINT16 Dev_ID;
UINT8 Base_Class;
UINT8 Sub_Class;
UINT8 Prog_Intf;
UINT8 Rev;
UINT16 BusDevFunc;
UINT16 SubVendor_ID;
UINT16 SubDevice_ID;
} __attribute__((__packed__)) pci, cardbus;
struct {
UINT32 EISA_Dev_ID;
UINT8 Base_Class;
UINT8 Sub_Class;
UINT8 Prog_Intf;
UINT16 CardSelNum;
} __attribute__((__packed__)) pnp;
} info;
} __attribute__((__packed__)) t_PXENV_UNDI_GET_NIC_TYPE;
#define PXENV_UNDI_GET_IFACE_INFO 0x0013
typedef struct s_PXENV_UNDI_GET_IFACE_INFO {
PXENV_STATUS Status;
UINT8 IfaceType[16];
UINT32 LinkSpeed;
UINT32 ServiceFlags;
UINT32 Reserved[4];
} __attribute__((__packed__)) t_PXENV_UNDI_GET_NDIS_INFO;
#define PXENV_UNDI_ISR 0x0014
typedef struct s_PXENV_UNDI_ISR {
PXENV_STATUS Status;
UINT16 FuncFlag;
#define PXENV_UNDI_ISR_IN_START 1
#define PXENV_UNDI_ISR_IN_PROCESS 2
#define PXENV_UNDI_ISR_IN_GET_NEXT 3
#define PXENV_UNDI_ISR_OUT_OURS 0
#define PXENV_UNDI_ISR_OUT_NOT_OURS 1
#define PXENV_UNDI_ISR_OUT_DONE 0
#define PXENV_UNDI_ISR_OUT_TRANSMIT 2
#define PXENV_UNDI_ISR_OUT_RECEIVE 3
#define PXENV_UNDI_ISR_OUT_BUSY 4
UINT16 BufferLength;
UINT16 FrameLength;
UINT16 FrameHeaderLength;
SEGOFF16 Frame;
UINT8 ProtType;
UINT8 PktType;
} __attribute__((__packed__)) t_PXENV_UNDI_ISR;
#define PXENV_UNDI_GET_STATE 0x0015
typedef struct s_PXENV_UNDI_GET_STATE {
PXENV_STATUS Status;
UINT8 UNDIstate;
#define PXE_UNDI_GET_STATE_STARTED 1
#define PXE_UNDI_GET_STATE_INITIALIZED 2
#define PXE_UNDI_GET_STATE_OPENED 3
} __attribute__((__packed__)) t_PXENV_UNDI_GET_STATE;
#define PXENV_STOP_UNDI 0x0015
typedef struct s_PXENV_STOP_UNDI {
PXENV_STATUS Status;
} __attribute__((__packed__)) t_PXENV_STOP_UNDI;
#define PXENV_TFTP_OPEN 0x0020
typedef struct s_PXENV_TFTP_OPEN {
PXENV_STATUS Status;
IP4 ServerIPAddress;
IP4 GatewayIPAddress;
UINT8 FileName[128];
UDP_PORT TFTPPort;
UINT16 PacketSize;
} __attribute__((__packed__)) t_PXENV_TFTP_OPEN;
#define PXENV_TFTP_CLOSE 0x0021
typedef struct s_PXENV_TFTP_CLOSE {
PXENV_STATUS Status;
} __attribute__((__packed__)) t_PXENV_TFTP_CLOSE;
#define PXENV_TFTP_READ 0x0022
typedef struct s_PXENV_TFTP_READ {
PXENV_STATUS Status;
UINT16 PacketNumber;
UINT16 BufferSize;
SEGOFF16 Buffer;
} __attribute__((__packed__)) t_PXENV_TFTP_READ;
#define PXENV_TFTP_READ_FILE 0x0023
typedef struct s_PXENV_TFTP_READ_FILE {
PXENV_STATUS Status;
UINT8 FileName[128];
UINT32 BufferSize;
ADDR32 Buffer;
IP4 ServerIPAddress;
IP4 GatewayIPAddress;
IP4 McastIPAddress;
UDP_PORT TFTPClntPort;
UDP_PORT TFTPSrvPort;
UINT16 TFTPOpenTimeOut;
UINT16 TFTPReopenDelay;
} __attribute__((__packed__)) t_PXENV_TFTP_READ_FILE;
#define PXENV_TFTP_GET_FSIZE 0x0025
typedef struct s_PXENV_TFTP_GET_FSIZE {
PXENV_STATUS Status;
IP4 ServerIPAddress;
IP4 GatewayIPAddress;
UINT8 FileName[128];
UINT32 FileSize;
} __attribute__((__packed__)) t_PXENV_TFTP_GET_FSIZE;
#define PXENV_UDP_OPEN 0x0030
typedef struct s_PXENV_UDP_OPEN {
PXENV_STATUS status;
IP4 src_ip;
} __attribute__((__packed__)) t_PXENV_UDP_OPEN;
#define PXENV_UDP_CLOSE 0x0031
typedef struct s_PXENV_UDP_CLOSE {
PXENV_STATUS status;
} __attribute__((__packed__)) t_PXENV_UDP_CLOSE;
#define PXENV_UDP_READ 0x0032
typedef struct s_PXENV_UDP_READ {
PXENV_STATUS status;
IP4 src_ip;
IP4 dest_ip;
UDP_PORT s_port;
UDP_PORT d_port;
UINT16 buffer_size;
SEGOFF16 buffer;
} __attribute__((__packed__)) t_PXENV_UDP_READ;
#define PXENV_UDP_WRITE 0x0033
typedef struct s_PXENV_UDP_WRITE {
PXENV_STATUS status;
IP4 ip;
IP4 gw;
UDP_PORT src_port;
UDP_PORT dst_port;
UINT16 buffer_size;
SEGOFF16 buffer;
} __attribute__((__packed__)) t_PXENV_UDP_WRITE;
#define PXENV_UNLOAD_STACK 0x0070
typedef struct s_PXENV_UNLOAD_STACK {
PXENV_STATUS Status;
UINT8 reserved[10];
} __attribute__((__packed__)) t_PXENV_UNLOAD_STACK;
#define PXENV_GET_CACHED_INFO 0x0071
typedef struct s_PXENV_GET_CACHED_INFO {
PXENV_STATUS Status;
UINT16 PacketType;
#define PXENV_PACKET_TYPE_DHCP_DISCOVER 1
#define PXENV_PACKET_TYPE_DHCP_ACK 2
#define PXENV_PACKET_TYPE_CACHED_REPLY 3
UINT16 BufferSize;
SEGOFF16 Buffer;
UINT16 BufferLimit;
} __attribute__((__packed__)) t_PXENV_GET_CACHED_INFO;
typedef struct s_bootph {
UINT8 opcode;
#define BOOTP_REQ 1
#define BOOTP_REP 2
UINT8 Hardware;
UINT8 Hardlen;
UINT8 Gatehops;
UINT32 ident;
UINT16 seconds;
UINT16 Flags;
#define BOOTP_BCAST 0x8000
IP4 cip;
IP4 yip;
IP4 sip;
IP4 gip;
MAC_ADDR CAddr;
UINT8 Sname[64];
UINT8 bootfile[128];
#define BOOTP_DHCPVEND 1024
union {
UINT8 d[BOOTP_DHCPVEND];
struct {
UINT8 magic[4];
#define VM_RFC1048 0x63538263
UINT32 flags;
UINT8 pad[56];
} __attribute__((__packed__)) v;
} vendor;
} __attribute__((__packed__)) BOOTPLAYER;
#define PXENV_RESTART_TFTP 0x0073
typedef struct s_PXENV_RESTART_TFTP {
PXENV_STATUS Status;
IP4 ServerIPAddress;
IP4 GatewayIPAddress;
UINT8 FileName[128];
UDP_PORT TFTPPort;
UINT16 PacketSize;
} __attribute__((__packed__)) t_PXENV_RESTART_TFTP;
#define PXENV_START_BASE 0x0075
typedef struct s_PXENV_START_BASE {
PXENV_STATUS Status;
} __attribute__((__packed__)) t_PXENV_START_BASE;
#define PXENV_STOP_BASE 0x0076
typedef struct s_PXENV_STOP_BASE {
PXENV_STATUS Status;
} __attribute__((__packed__)) t_PXENV_STOP_BASE;
#define PXENV_EXIT_SUCCESS 0x0000
#define PXENV_EXIT_FAILURE 0x0001
#define PXENV_STATUS_SUCCESS 0x00
#define PXENV_STATUS_FAILURE 0x01
#define PXENV_STATUS_BAD_FUNC 0x02
#define PXENV_STATUS_UNSUPPORTED 0x03
#define PXENV_STATUS_KEEP_UNDI 0x04
#define PXENV_STATUS_KEEP_ALL 0x05
#define PXENV_STATUS_OUT_OF_RESOURCES 0x06
#define PXENV_STATUS_ARP_TIMEOUT 0x11
#define PXENV_STATUS_UDP_CLOSED 0x18
#define PXENV_STATUS_UDP_OPEN 0x19
#define PXENV_STATUS_TFTP_CLOSED 0x1A
#define PXENV_STATUS_TFTP_OPEN 0x1B
#define PXENV_STATUS_MCOPY_PROBLEM 0x20
#define PXENV_STATUS_BIS_INTEGRITY_FAILURE 0x21
#define PXENV_STATUS_BIS_VALIDATE_FAILURE 0x22
#define PXENV_STATUS_BIS_INIT_FAILURE 0x23
#define PXENV_STATUS_BIS_SHUTDOWN_FAILURE 0x24
#define PXENV_STATUS_BIS_GBOA_FAILURE 0x25
#define PXENV_STATUS_BIS_FREE_FAILURE 0x26
#define PXENV_STATUS_BIS_GSI_FAILURE 0x27
#define PXENV_STATUS_BIS_BAD_CKSUM 0x28
#define PXENV_STATUS_TFTP_CANNOT_ARP_ADDRESS 0x30
#define PXENV_STATUS_TFTP_OPEN_TIMEOUT 0x32
#define PXENV_STATUS_TFTP_UNKNOWN_OPCODE 0x33
#define PXENV_STATUS_TFTP_READ_TIMEOUT 0x35
#define PXENV_STATUS_TFTP_ERROR_OPCODE 0x36
#define PXENV_STATUS_TFTP_CANNOT_OPEN_CONNECTION 0x38
#define PXENV_STATUS_TFTP_CANNOT_READ_FROM_CONNECTION 0x39
#define PXENV_STATUS_TFTP_TOO_MANY_PACKAGES 0x3A
#define PXENV_STATUS_TFTP_FILE_NOT_FOUND 0x3B
#define PXENV_STATUS_TFTP_ACCESS_VIOLATION 0x3C
#define PXENV_STATUS_TFTP_NO_MCAST_ADDRESS 0x3D
#define PXENV_STATUS_TFTP_NO_FILESIZE 0x3E
#define PXENV_STATUS_TFTP_INVALID_PACKET_SIZE 0x3F
#define PXENV_STATUS_DHCP_TIMEOUT 0x51
#define PXENV_STATUS_DHCP_NO_IP_ADDRESS 0x52
#define PXENV_STATUS_DHCP_NO_BOOTFILE_NAME 0x53
#define PXENV_STATUS_DHCP_BAD_IP_ADDRESS 0x54
#define PXENV_STATUS_UNDI_INVALID_FUNCTION 0x60
#define PXENV_STATUS_UNDI_MEDIATEST_FAILED 0x61
#define PXENV_STATUS_UNDI_CANNOT_INIT_NIC_FOR_MCAST 0x62
#define PXENV_STATUS_UNDI_CANNOT_INITIALIZE_NIC 0x63
#define PXENV_STATUS_UNDI_CANNOT_INITIALIZE_PHY 0x64
#define PXENV_STATUS_UNDI_CANNOT_READ_CONFIG_DATA 0x65
#define PXENV_STATUS_UNDI_CANNOT_READ_INIT_DATA 0x66
#define PXENV_STATUS_UNDI_BAD_MAC_ADDRESS 0x67
#define PXENV_STATUS_UNDI_BAD_EEPROM_CHECKSUM 0x68
#define PXENV_STATUS_UNDI_ERROR_SETTING_ISR 0x69
#define PXENV_STATUS_UNDI_INVALID_STATE 0x6A
#define PXENV_STATUS_UNDI_TRANSMIT_ERROR 0x6B
#define PXENV_STATUS_UNDI_INVALID_PARAMETER 0x6C
#define PXENV_STATUS_BSTRAP_PROMPT_MENU 0x74
#define PXENV_STATUS_BSTRAP_MCAST_ADDR 0x76
#define PXENV_STATUS_BSTRAP_MISSING_LIST 0x77
#define PXENV_STATUS_BSTRAP_NO_RESPONSE 0x78
#define PXENV_STATUS_BSTRAP_FILE_TOO_BIG 0x79
#define PXENV_STATUS_BINL_CANCELED_BY_KEYSTROKE 0xA0
#define PXENV_STATUS_BINL_NO_PXE_SERVER 0xA1
#define PXENV_STATUS_NOT_AVAILABLE_IN_PMODE 0xA2
#define PXENV_STATUS_NOT_AVAILABLE_IN_RMODE 0xA3
#define PXENV_STATUS_BUSD_DEVICE_NOT_SUPPORTED 0xB0
#define PXENV_STATUS_LOADER_NO_FREE_BASE_MEMORY 0xC0
#define PXENV_STATUS_LOADER_NO_BC_ROMID 0xC1
#define PXENV_STATUS_LOADER_BAD_BC_ROMID 0xC2
#define PXENV_STATUS_LOADER_BAD_BC_RUNTIME_IMAGE 0xC3
#define PXENV_STATUS_LOADER_NO_UNDI_ROMID 0xC4
#define PXENV_STATUS_LOADER_BAD_UNDI_ROMID 0xC5
#define PXENV_STATUS_LOADER_BAD_UNDI_DRIVER_IMAGE 0xC6
#define PXENV_STATUS_LOADER_NO_PXE_STRUCT 0xC8
#define PXENV_STATUS_LOADER_NO_PXENV_STRUCT 0xC9
#define PXENV_STATUS_LOADER_UNDI_START 0xCA
#define PXENV_STATUS_LOADER_BC_START 0xCB
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -