+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
- PxeBaseCode.h\r
-\r
-Abstract:\r
- EFI PXE Base Code Protocol definitions.\r
-\r
---*/\r
-#ifndef _EFIPXEBC_H\r
-#define _EFIPXEBC_H\r
-\r
-#include "Pxe.h"\r
-\r
-//\r
-// PXE Base Code protocol\r
-//\r
-#define EFI_PXE_BASE_CODE_PROTOCOL_GUID \\r
- { \\r
- 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} \\r
- }\r
-\r
-EFI_FORWARD_DECLARATION (EFI_PXE_BASE_CODE_PROTOCOL);\r
-\r
-//\r
-// Default IP TTL and ToS.\r
-//\r
-#define DEFAULT_TTL 16\r
-#define DEFAULT_ToS 0\r
-\r
-//\r
-// ICMP error format\r
-//\r
-typedef struct {\r
- UINT8 Type;\r
- UINT8 Code;\r
- UINT16 Checksum;\r
- union {\r
- UINT32 reserved;\r
- UINT32 Mtu;\r
- UINT32 Pointer;\r
- struct {\r
- UINT16 Identifier;\r
- UINT16 Sequence;\r
- } Echo;\r
- } u;\r
- UINT8 Data[494];\r
-} EFI_PXE_BASE_CODE_ICMP_ERROR;\r
-\r
-//\r
-// TFTP error format\r
-//\r
-typedef struct {\r
- UINT8 ErrorCode;\r
- CHAR8 ErrorString[127];\r
-} EFI_PXE_BASE_CODE_TFTP_ERROR;\r
-\r
-//\r
-// IP Receive Filter definitions\r
-//\r
-#define EFI_PXE_BASE_CODE_MAX_IPCNT 8\r
-\r
-typedef struct {\r
- UINT8 Filters;\r
- UINT8 IpCnt;\r
- UINT16 reserved;\r
- EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_IPCNT];\r
-} EFI_PXE_BASE_CODE_IP_FILTER;\r
-\r
-#define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP 0x0001\r
-#define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST 0x0002\r
-#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS 0x0004\r
-#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST 0x0008\r
-\r
-//\r
-// ARP Cache definitions\r
-//\r
-typedef struct {\r
- EFI_IP_ADDRESS IpAddr;\r
- EFI_MAC_ADDRESS MacAddr;\r
-} EFI_PXE_BASE_CODE_ARP_ENTRY;\r
-\r
-typedef struct {\r
- EFI_IP_ADDRESS IpAddr;\r
- EFI_IP_ADDRESS SubnetMask;\r
- EFI_IP_ADDRESS GwAddr;\r
-} EFI_PXE_BASE_CODE_ROUTE_ENTRY;\r
-\r
-//\r
-// UDP definitions\r
-//\r
-typedef UINT16 EFI_PXE_BASE_CODE_UDP_PORT;\r
-\r
-#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP 0x0001\r
-#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT 0x0002\r
-#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_IP 0x0004\r
-#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT 0x0008\r
-#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_USE_FILTER 0x0010\r
-#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_MAY_FRAGMENT 0x0020\r
-\r
-//\r
-// Discover() definitions\r
-//\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_BOOTSTRAP 0\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_MS_WINNT_RIS 1\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_INTEL_LCM 2\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_DOSUNDI 3\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_NEC_ESMPRO 4\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_WSoD 5\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_LCCM 6\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_CA_UNICENTER_TNG 7\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_HP_OPENVIEW 8\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_9 9\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_10 10\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_11 11\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_NOT_USED_12 12\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_INSTALL 13\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_BOOT 14\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_REMBO 15\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_BEOBOOT 16\r
-//\r
-// 17 through 32767 are reserved\r
-// 32768 through 65279 are for vendor use\r
-// 65280 through 65534 are reserved\r
-//\r
-#define EFI_PXE_BASE_CODE_BOOT_TYPE_PXETEST 65535\r
-\r
-#define EFI_PXE_BASE_CODE_BOOT_LAYER_MASK 0x7FFF\r
-#define EFI_PXE_BASE_CODE_BOOT_LAYER_INITIAL 0x0000\r
-\r
-//\r
-// Discover() server list structure.\r
-//\r
-typedef struct {\r
- UINT16 Type;\r
- BOOLEAN AcceptAnyResponse;\r
- UINT8 Reserved;\r
- EFI_IP_ADDRESS IpAddr;\r
-} EFI_PXE_BASE_CODE_SRVLIST;\r
-\r
-//\r
-// Discover() information override structure.\r
-//\r
-typedef struct {\r
- BOOLEAN UseMCast;\r
- BOOLEAN UseBCast;\r
- BOOLEAN UseUCast;\r
- BOOLEAN MustUseList;\r
- EFI_IP_ADDRESS ServerMCastIp;\r
- UINT16 IpCnt;\r
- EFI_PXE_BASE_CODE_SRVLIST SrvList[1];\r
-} EFI_PXE_BASE_CODE_DISCOVER_INFO;\r
-\r
-//\r
-// Mtftp() definitions\r
-//\r
-typedef enum {\r
- EFI_PXE_BASE_CODE_TFTP_FIRST,\r
- EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE,\r
- EFI_PXE_BASE_CODE_TFTP_READ_FILE,\r
- EFI_PXE_BASE_CODE_TFTP_WRITE_FILE,\r
- EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY,\r
- EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE,\r
- EFI_PXE_BASE_CODE_MTFTP_READ_FILE,\r
- EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY,\r
- EFI_PXE_BASE_CODE_MTFTP_LAST\r
-} EFI_PXE_BASE_CODE_TFTP_OPCODE;\r
-\r
-typedef struct {\r
- EFI_IP_ADDRESS MCastIp;\r
- EFI_PXE_BASE_CODE_UDP_PORT CPort;\r
- EFI_PXE_BASE_CODE_UDP_PORT SPort;\r
- UINT16 ListenTimeout;\r
- UINT16 TransmitTimeout;\r
-} EFI_PXE_BASE_CODE_MTFTP_INFO;\r
-\r
-//\r
-// PXE Base Code Mode structure\r
-//\r
-#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8\r
-#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8\r
-\r
-typedef struct {\r
- BOOLEAN Started;\r
- BOOLEAN Ipv6Available;\r
- BOOLEAN Ipv6Supported;\r
- BOOLEAN UsingIpv6;\r
- BOOLEAN BisSupported;\r
- BOOLEAN BisDetected;\r
- BOOLEAN AutoArp;\r
- BOOLEAN SendGUID;\r
- BOOLEAN DhcpDiscoverValid;\r
- BOOLEAN DhcpAckReceived;\r
- BOOLEAN ProxyOfferReceived;\r
- BOOLEAN PxeDiscoverValid;\r
- BOOLEAN PxeReplyReceived;\r
- BOOLEAN PxeBisReplyReceived;\r
- BOOLEAN IcmpErrorReceived;\r
- BOOLEAN TftpErrorReceived;\r
- BOOLEAN MakeCallbacks;\r
- UINT8 TTL;\r
- UINT8 ToS;\r
- EFI_IP_ADDRESS StationIp;\r
- EFI_IP_ADDRESS SubnetMask;\r
- EFI_PXE_BASE_CODE_PACKET DhcpDiscover;\r
- EFI_PXE_BASE_CODE_PACKET DhcpAck;\r
- EFI_PXE_BASE_CODE_PACKET ProxyOffer;\r
- EFI_PXE_BASE_CODE_PACKET PxeDiscover;\r
- EFI_PXE_BASE_CODE_PACKET PxeReply;\r
- EFI_PXE_BASE_CODE_PACKET PxeBisReply;\r
- EFI_PXE_BASE_CODE_IP_FILTER IpFilter;\r
- UINT32 ArpCacheEntries;\r
- EFI_PXE_BASE_CODE_ARP_ENTRY ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES];\r
- UINT32 RouteTableEntries;\r
- EFI_PXE_BASE_CODE_ROUTE_ENTRY RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES];\r
- EFI_PXE_BASE_CODE_ICMP_ERROR IcmpError;\r
- EFI_PXE_BASE_CODE_TFTP_ERROR TftpError;\r
-} EFI_PXE_BASE_CODE_MODE;\r
-\r
-//\r
-// PXE Base Code Interface Function definitions\r
-//\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_BASE_CODE_START) (\r
- IN EFI_PXE_BASE_CODE_PROTOCOL * This,\r
- IN BOOLEAN UseIpv6\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_BASE_CODE_STOP) (\r
- IN EFI_PXE_BASE_CODE_PROTOCOL * This\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_BASE_CODE_DHCP) (\r
- IN EFI_PXE_BASE_CODE_PROTOCOL * This,\r
- IN BOOLEAN SortOffers\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_BASE_CODE_DISCOVER) (\r
- IN EFI_PXE_BASE_CODE_PROTOCOL * This,\r
- IN UINT16 Type,\r
- IN UINT16 *Layer,\r
- IN BOOLEAN UseBis,\r
- IN OUT EFI_PXE_BASE_CODE_DISCOVER_INFO * Info OPTIONAL\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_BASE_CODE_MTFTP) (\r
- IN EFI_PXE_BASE_CODE_PROTOCOL * This,\r
- IN EFI_PXE_BASE_CODE_TFTP_OPCODE Operation,\r
- IN OUT VOID *BufferPtr OPTIONAL,\r
- IN BOOLEAN Overwrite,\r
- IN OUT UINT64 *BufferSize,\r
- IN UINTN *BlockSize OPTIONAL,\r
- IN EFI_IP_ADDRESS * ServerIp,\r
- IN UINT8 *Filename,\r
- IN EFI_PXE_BASE_CODE_MTFTP_INFO * Info OPTIONAL,\r
- IN BOOLEAN DontUseBuffer\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_BASE_CODE_UDP_WRITE) (\r
- IN EFI_PXE_BASE_CODE_PROTOCOL * This,\r
- IN UINT16 OpFlags,\r
- IN EFI_IP_ADDRESS * DestIp,\r
- IN EFI_PXE_BASE_CODE_UDP_PORT * DestPort,\r
- IN EFI_IP_ADDRESS * GatewayIp, OPTIONAL\r
- IN EFI_IP_ADDRESS * SrcIp, OPTIONAL\r
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT * SrcPort, OPTIONAL\r
- IN UINTN *HeaderSize, OPTIONAL\r
- IN VOID *HeaderPtr, OPTIONAL\r
- IN UINTN *BufferSize,\r
- IN VOID *BufferPtr\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_BASE_CODE_UDP_READ) (\r
- IN EFI_PXE_BASE_CODE_PROTOCOL * This,\r
- IN UINT16 OpFlags,\r
- IN OUT EFI_IP_ADDRESS * DestIp, OPTIONAL\r
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT * DestPort, OPTIONAL\r
- IN OUT EFI_IP_ADDRESS * SrcIp, OPTIONAL\r
- IN OUT EFI_PXE_BASE_CODE_UDP_PORT * SrcPort, OPTIONAL\r
- IN UINTN *HeaderSize, OPTIONAL\r
- IN VOID *HeaderPtr, OPTIONAL\r
- IN OUT UINTN *BufferSize,\r
- IN VOID *BufferPtr\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_BASE_CODE_SET_IP_FILTER) (\r
- IN EFI_PXE_BASE_CODE_PROTOCOL * This,\r
- IN EFI_PXE_BASE_CODE_IP_FILTER * NewFilter\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_BASE_CODE_ARP) (\r
- IN EFI_PXE_BASE_CODE_PROTOCOL * This,\r
- IN EFI_IP_ADDRESS * IpAddr,\r
- IN EFI_MAC_ADDRESS * MacAddr OPTIONAL\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_BASE_CODE_SET_PARAMETERS) (\r
- IN EFI_PXE_BASE_CODE_PROTOCOL * This,\r
- IN BOOLEAN *NewAutoArp, OPTIONAL\r
- IN BOOLEAN *NewSendGUID, OPTIONAL\r
- IN UINT8 *NewTTL, OPTIONAL\r
- IN UINT8 *NewToS, OPTIONAL\r
- IN BOOLEAN *NewMakeCallback OPTIONAL\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_BASE_CODE_SET_STATION_IP) (\r
- IN EFI_PXE_BASE_CODE_PROTOCOL * This,\r
- IN EFI_IP_ADDRESS * NewStationIp, OPTIONAL\r
- IN EFI_IP_ADDRESS * NewSubnetMask OPTIONAL\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_BASE_CODE_SET_PACKETS) (\r
- IN EFI_PXE_BASE_CODE_PROTOCOL * This,\r
- BOOLEAN *NewDhcpDiscoverValid, OPTIONAL\r
- BOOLEAN *NewDhcpAckReceived, OPTIONAL\r
- BOOLEAN *NewProxyOfferReceived, OPTIONAL\r
- BOOLEAN *NewPxeDiscoverValid, OPTIONAL\r
- BOOLEAN *NewPxeReplyReceived, OPTIONAL\r
- BOOLEAN *NewPxeBisReplyReceived, OPTIONAL\r
- IN EFI_PXE_BASE_CODE_PACKET * NewDhcpDiscover, OPTIONAL\r
- IN EFI_PXE_BASE_CODE_PACKET * NewDhcpAck, OPTIONAL\r
- IN EFI_PXE_BASE_CODE_PACKET * NewProxyOffer, OPTIONAL\r
- IN EFI_PXE_BASE_CODE_PACKET * NewPxeDiscover, OPTIONAL\r
- IN EFI_PXE_BASE_CODE_PACKET * NewPxeReply, OPTIONAL\r
- IN EFI_PXE_BASE_CODE_PACKET * NewPxeBisReply OPTIONAL\r
- );\r
-\r
-//\r
-// PXE Base Code Protocol structure\r
-//\r
-#define EFI_PXE_BASE_CODE_INTERFACE_REVISION 0x00010000\r
-\r
-struct _EFI_PXE_BASE_CODE_PROTOCOL {\r
- UINT64 Revision;\r
- EFI_PXE_BASE_CODE_START Start;\r
- EFI_PXE_BASE_CODE_STOP Stop;\r
- EFI_PXE_BASE_CODE_DHCP Dhcp;\r
- EFI_PXE_BASE_CODE_DISCOVER Discover;\r
- EFI_PXE_BASE_CODE_MTFTP Mtftp;\r
- EFI_PXE_BASE_CODE_UDP_WRITE UdpWrite;\r
- EFI_PXE_BASE_CODE_UDP_READ UdpRead;\r
- EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter;\r
- EFI_PXE_BASE_CODE_ARP Arp;\r
- EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters;\r
- EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp;\r
- EFI_PXE_BASE_CODE_SET_PACKETS SetPackets;\r
- EFI_PXE_BASE_CODE_MODE *Mode;\r
-};\r
-\r
-extern EFI_GUID gEfiPxeBaseCodeProtocolGuid;\r
-\r
-#endif /* _EFIPXEBC_H */\r
-\r
-/* EOF - PxeBaseCode.h */\r