This Protocol is introduced in EFI Specification 1.10.\r
\r
**/\r
+\r
#ifndef __PXE_BASE_CODE_PROTOCOL_H__\r
#define __PXE_BASE_CODE_PROTOCOL_H__\r
\r
0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \\r
}\r
\r
-typedef struct _EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE_PROTOCOL;\r
+typedef struct _EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE_PROTOCOL;\r
\r
///\r
/// Protocol defined in EFI1.1.\r
///\r
-typedef EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE;\r
+typedef EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE;\r
\r
///\r
/// Default IP TTL and ToS.\r
///\r
-#define DEFAULT_TTL 16\r
-#define DEFAULT_ToS 0\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
+ UINT8 Type;\r
+ UINT8 Code;\r
+ UINT16 Checksum;\r
union {\r
- UINT32 reserved;\r
- UINT32 Mtu;\r
- UINT32 Pointer;\r
+ UINT32 reserved;\r
+ UINT32 Mtu;\r
+ UINT32 Pointer;\r
struct {\r
- UINT16 Identifier;\r
- UINT16 Sequence;\r
+ UINT16 Identifier;\r
+ UINT16 Sequence;\r
} Echo;\r
} u;\r
- UINT8 Data[494];\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
+ 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
+#define EFI_PXE_BASE_CODE_MAX_IPCNT 8\r
\r
///\r
/// IP Receive Filter structure.\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
+ 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
+#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 entries.\r
///\r
typedef struct {\r
- EFI_IP_ADDRESS IpAddr;\r
- EFI_MAC_ADDRESS MacAddr;\r
+ EFI_IP_ADDRESS IpAddr;\r
+ EFI_MAC_ADDRESS MacAddr;\r
} EFI_PXE_BASE_CODE_ARP_ENTRY;\r
\r
///\r
/// ARP route table entries.\r
///\r
typedef struct {\r
- EFI_IP_ADDRESS IpAddr;\r
- EFI_IP_ADDRESS SubnetMask;\r
- EFI_IP_ADDRESS GwAddr;\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
+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
+#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
// 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
+#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
// http://www.ietf.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xml\r
//\r
#if defined (MDE_CPU_IA32)\r
-#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x0006\r
+#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x0006\r
#elif defined (MDE_CPU_X64)\r
-#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x0007\r
+#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x0007\r
#elif defined (MDE_CPU_ARM)\r
-#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x000A\r
+#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x000A\r
#elif defined (MDE_CPU_AARCH64)\r
-#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x000B\r
+#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x000B\r
#elif defined (MDE_CPU_RISCV64)\r
-#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x001B\r
+#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x001B\r
#endif\r
\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
+ 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
+ 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
/// perform the "get file size" and "read directory" operations of MTFTP.\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_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
/// DHCPV4 Packet structure.\r
///\r
typedef struct {\r
- UINT8 BootpOpcode;\r
- UINT8 BootpHwType;\r
- UINT8 BootpHwAddrLen;\r
- UINT8 BootpGateHops;\r
- UINT32 BootpIdent;\r
- UINT16 BootpSeconds;\r
- UINT16 BootpFlags;\r
- UINT8 BootpCiAddr[4];\r
- UINT8 BootpYiAddr[4];\r
- UINT8 BootpSiAddr[4];\r
- UINT8 BootpGiAddr[4];\r
- UINT8 BootpHwAddr[16];\r
- UINT8 BootpSrvName[64];\r
- UINT8 BootpBootFile[128];\r
- UINT32 DhcpMagik;\r
- UINT8 DhcpOptions[56];\r
+ UINT8 BootpOpcode;\r
+ UINT8 BootpHwType;\r
+ UINT8 BootpHwAddrLen;\r
+ UINT8 BootpGateHops;\r
+ UINT32 BootpIdent;\r
+ UINT16 BootpSeconds;\r
+ UINT16 BootpFlags;\r
+ UINT8 BootpCiAddr[4];\r
+ UINT8 BootpYiAddr[4];\r
+ UINT8 BootpSiAddr[4];\r
+ UINT8 BootpGiAddr[4];\r
+ UINT8 BootpHwAddr[16];\r
+ UINT8 BootpSrvName[64];\r
+ UINT8 BootpBootFile[128];\r
+ UINT32 DhcpMagik;\r
+ UINT8 DhcpOptions[56];\r
} EFI_PXE_BASE_CODE_DHCPV4_PACKET;\r
\r
///\r
/// DHCPV6 Packet structure.\r
///\r
typedef struct {\r
- UINT32 MessageType:8;\r
- UINT32 TransactionId:24;\r
- UINT8 DhcpOptions[1024];\r
+ UINT32 MessageType : 8;\r
+ UINT32 TransactionId : 24;\r
+ UINT8 DhcpOptions[1024];\r
} EFI_PXE_BASE_CODE_DHCPV6_PACKET;\r
\r
///\r
/// Packet structure.\r
///\r
typedef union {\r
- UINT8 Raw[1472];\r
- EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4;\r
- EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6;\r
+ UINT8 Raw[1472];\r
+ EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4;\r
+ EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6;\r
} EFI_PXE_BASE_CODE_PACKET;\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
+#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8\r
+#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8\r
\r
///\r
/// EFI_PXE_BASE_CODE_MODE.\r
/// EFI_PXE_BASE_CODE_PROTOCOL functions.\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
+ 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
//\r
// PXE Base Code Protocol structure\r
//\r
-#define EFI_PXE_BASE_CODE_PROTOCOL_REVISION 0x00010000\r
+#define EFI_PXE_BASE_CODE_PROTOCOL_REVISION 0x00010000\r
\r
//\r
// Revision defined in EFI1.1\r
/// be backwards compatible. If a future version is not backwards compatible\r
/// it is not the same GUID.\r
///\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
+ 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
///\r
/// The pointer to the EFI_PXE_BASE_CODE_MODE data for this device.\r
///\r
- EFI_PXE_BASE_CODE_MODE *Mode;\r
+ EFI_PXE_BASE_CODE_MODE *Mode;\r
};\r
\r
-extern EFI_GUID gEfiPxeBaseCodeProtocolGuid;\r
+extern EFI_GUID gEfiPxeBaseCodeProtocolGuid;\r
\r
#endif\r