16 #ifndef __PXE_BASE_CODE_PROTOCOL_H__ 17 #define __PXE_BASE_CODE_PROTOCOL_H__ 24 #define EFI_PXE_BASE_CODE_PROTOCOL_GUID \ 26 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \ 39 #define DEFAULT_TTL 16 72 #define EFI_PXE_BASE_CODE_MAX_IPCNT 8 84 #define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP 0x0001 85 #define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST 0x0002 86 #define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS 0x0004 87 #define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST 0x0008 111 #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP 0x0001 112 #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT 0x0002 113 #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_IP 0x0004 114 #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT 0x0008 115 #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_USE_FILTER 0x0010 116 #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_MAY_FRAGMENT 0x0020 121 #define EFI_PXE_BASE_CODE_BOOT_TYPE_BOOTSTRAP 0 122 #define EFI_PXE_BASE_CODE_BOOT_TYPE_MS_WINNT_RIS 1 123 #define EFI_PXE_BASE_CODE_BOOT_TYPE_INTEL_LCM 2 124 #define EFI_PXE_BASE_CODE_BOOT_TYPE_DOSUNDI 3 125 #define EFI_PXE_BASE_CODE_BOOT_TYPE_NEC_ESMPRO 4 126 #define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_WSoD 5 127 #define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_LCCM 6 128 #define EFI_PXE_BASE_CODE_BOOT_TYPE_CA_UNICENTER_TNG 7 129 #define EFI_PXE_BASE_CODE_BOOT_TYPE_HP_OPENVIEW 8 130 #define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_9 9 131 #define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_10 10 132 #define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_11 11 133 #define EFI_PXE_BASE_CODE_BOOT_TYPE_NOT_USED_12 12 134 #define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_INSTALL 13 135 #define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_BOOT 14 136 #define EFI_PXE_BASE_CODE_BOOT_TYPE_REMBO 15 137 #define EFI_PXE_BASE_CODE_BOOT_TYPE_BEOBOOT 16 143 #define EFI_PXE_BASE_CODE_BOOT_TYPE_PXETEST 65535 145 #define EFI_PXE_BASE_CODE_BOOT_LAYER_MASK 0x7FFF 146 #define EFI_PXE_BASE_CODE_BOOT_LAYER_INITIAL 0x0000 154 #if defined (MDE_CPU_IA32) 155 #define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x0006 156 #elif defined (MDE_CPU_X64) 157 #define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x0007 158 #elif defined (MDE_CPU_ARM) 159 #define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x000A 160 #elif defined (MDE_CPU_AARCH64) 161 #define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x000B 162 #elif defined (MDE_CPU_RISCV64) 163 #define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x001B 164 #elif defined (MDE_CPU_LOONGARCH64) 165 #define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x0027 262 #define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8 263 #define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8 893 #define EFI_PXE_BASE_CODE_PROTOCOL_REVISION 0x00010000 898 #define EFI_PXE_BASE_CODE_INTERFACE_REVISION EFI_PXE_BASE_CODE_PROTOCOL_REVISION
#define OPTIONAL
Passing the datum to the function is optional, and a NULL is passed if the value is not supplied.
EFI_STATUS(EFIAPI * EFI_PXE_BASE_CODE_ARP)(IN EFI_PXE_BASE_CODE_PROTOCOL *This, IN EFI_IP_ADDRESS *IpAddr, IN EFI_MAC_ADDRESS *MacAddr OPTIONAL)
Uses the ARP protocol to resolve a MAC address.
EFI_IP_ADDRESS ServerMCastIp
BOOLEAN AcceptAnyResponse
EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6
128 bit buffer containing a unique identifier value.
EFI_STATUS(EFIAPI * EFI_PXE_BASE_CODE_SET_PARAMETERS)(IN EFI_PXE_BASE_CODE_PROTOCOL *This, IN BOOLEAN *NewAutoArp OPTIONAL, IN BOOLEAN *NewSendGUID OPTIONAL, IN UINT8 *NewTTL OPTIONAL, IN UINT8 *NewToS OPTIONAL, IN BOOLEAN *NewMakeCallback OPTIONAL)
Updates the parameters that affect the operation of the PXE Base Code Protocol.
32-byte buffer containing a network Media Access Control address.
EFI_STATUS(EFIAPI * EFI_PXE_BASE_CODE_DISCOVER)(IN EFI_PXE_BASE_CODE_PROTOCOL *This, IN UINT16 Type, IN UINT16 *Layer, IN BOOLEAN UseBis, IN EFI_PXE_BASE_CODE_DISCOVER_INFO *Info OPTIONAL)
Attempts to complete the PXE Boot Server and/or boot image discovery sequence.
#define EFI_PXE_BASE_CODE_MAX_IPCNT
IP Receive Filter definitions.
EFI_STATUS(EFIAPI * EFI_PXE_BASE_CODE_SET_IP_FILTER)(IN EFI_PXE_BASE_CODE_PROTOCOL *This, IN EFI_PXE_BASE_CODE_IP_FILTER *NewFilter)
Updates the IP receive filters of a network device and enables software filtering.
EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters
FILE_LICENCE(BSD2_PATENT)
BOOLEAN IcmpErrorReceived
EFI_PXE_BASE_CODE_MTFTP Mtftp
UINT16_t BufferSize
Buffer size.
EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4
EFI_IP_ADDRESS SubnetMask
EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp
EFI_PXE_BASE_CODE_PACKET PxeReply
EFI_STATUS(EFIAPI * EFI_PXE_BASE_CODE_UDP_WRITE)(IN EFI_PXE_BASE_CODE_PROTOCOL *This, IN UINT16 OpFlags, IN EFI_IP_ADDRESS *DestIp, IN EFI_PXE_BASE_CODE_UDP_PORT *DestPort, IN EFI_IP_ADDRESS *GatewayIp OPTIONAL, IN EFI_IP_ADDRESS *SrcIp OPTIONAL, IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL, IN UINTN *HeaderSize OPTIONAL, IN VOID *HeaderPtr OPTIONAL, IN UINTN *BufferSize, IN VOID *BufferPtr)
Writes a UDP packet to the network interface.
EFI_GUID gEfiPxeBaseCodeProtocolGuid
EFI_STATUS(EFIAPI * EFI_PXE_BASE_CODE_DHCP)(IN EFI_PXE_BASE_CODE_PROTOCOL *This, IN BOOLEAN SortOffers)
Attempts to complete a DHCPv4 D.O.R.A.
16-byte buffer aligned on a 4-byte boundary.
BOOLEAN PxeBisReplyReceived
EFI_PXE_BASE_CODE_PACKET PxeBisReply
UINT16 EFI_PXE_BASE_CODE_UDP_PORT
EFI_IP_ADDRESS SubnetMask
BOOLEAN TftpErrorReceived
#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES
UINT64 Revision
The revision of the EFI_PXE_BASE_CODE_PROTOCOL.
EFI_PXE_BASE_CODE_SET_PACKETS SetPackets
EFI_PXE_BASE_CODE_UDP_READ UdpRead
EFI_PXE_BASE_CODE_DHCP Dhcp
UINT64 UINTN
Unsigned value of native width.
IP Receive Filter structure.
EFI_STATUS(EFIAPI * EFI_PXE_BASE_CODE_SET_PACKETS)(IN EFI_PXE_BASE_CODE_PROTOCOL *This, BOOLEAN *NewDhcpDiscoverValid OPTIONAL, BOOLEAN *NewDhcpAckReceived OPTIONAL, BOOLEAN *NewProxyOfferReceived OPTIONAL, BOOLEAN *NewPxeDiscoverValid OPTIONAL, BOOLEAN *NewPxeReplyReceived OPTIONAL, BOOLEAN *NewPxeBisReplyReceived OPTIONAL, IN EFI_PXE_BASE_CODE_PACKET *NewDhcpDiscover OPTIONAL, IN EFI_PXE_BASE_CODE_PACKET *NewDhcpAck OPTIONAL, IN EFI_PXE_BASE_CODE_PACKET *NewProxyOffer OPTIONAL, IN EFI_PXE_BASE_CODE_PACKET *NewPxeDiscover OPTIONAL, IN EFI_PXE_BASE_CODE_PACKET *NewPxeReply OPTIONAL, IN EFI_PXE_BASE_CODE_PACKET *NewPxeBisReply OPTIONAL)
Updates the contents of the cached DHCP and Discover packets.
EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE
Protocol defined in EFI1.1.
EFI_PXE_BASE_CODE_ARP Arp
EFI_STATUS(EFIAPI * EFI_PXE_BASE_CODE_UDP_READ)(IN EFI_PXE_BASE_CODE_PROTOCOL *This, IN UINT16 OpFlags, IN OUT EFI_IP_ADDRESS *DestIp OPTIONAL, IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort OPTIONAL, IN OUT EFI_IP_ADDRESS *SrcIp OPTIONAL, IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort OPTIONAL, IN UINTN *HeaderSize OPTIONAL, IN VOID *HeaderPtr OPTIONAL, IN OUT UINTN *BufferSize, IN VOID *BufferPtr)
Reads a UDP packet from the network interface.
EFI_PXE_BASE_CODE_TFTP_ERROR TftpError
#define VOID
Undeclared type.
Discover() server list structure.
unsigned long long UINT64
BOOLEAN ProxyOfferReceived
EFI_PXE_BASE_CODE_STOP Stop
EFI_PXE_BASE_CODE_PACKET DhcpDiscover
Discover() information override structure.
#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES
EFI_STATUS(EFIAPI * EFI_PXE_BASE_CODE_STOP)(IN EFI_PXE_BASE_CODE_PROTOCOL *This)
Disables the use of the PXE Base Code Protocol functions.
EFI_PXE_BASE_CODE_PACKET DhcpAck
EFI_STATUS(EFIAPI * EFI_PXE_BASE_CODE_SET_STATION_IP)(IN EFI_PXE_BASE_CODE_PROTOCOL *This, IN EFI_IP_ADDRESS *NewStationIp OPTIONAL, IN EFI_IP_ADDRESS *NewSubnetMask OPTIONAL)
Updates the station IP address and/or subnet mask values of a network device.
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter
EFI_STATUS(EFIAPI * EFI_PXE_BASE_CODE_START)(IN EFI_PXE_BASE_CODE_PROTOCOL *This, IN BOOLEAN UseIpv6)
Enables the use of the PXE Base Code Protocol functions.
EFI_PXE_BASE_CODE_UDP_PORT SPort
EFI_PXE_BASE_CODE_ICMP_ERROR IcmpError
BOOLEAN DhcpDiscoverValid
EFI_PXE_BASE_CODE_TFTP_OPCODE
TFTP opcode definitions.
EFI_PXE_BASE_CODE_IP_FILTER IpFilter
EFI_STATUS(EFIAPI * EFI_PXE_BASE_CODE_MTFTP)(IN EFI_PXE_BASE_CODE_PROTOCOL *This, IN EFI_PXE_BASE_CODE_TFTP_OPCODE Operation, IN OUT VOID *BufferPtr OPTIONAL, IN BOOLEAN Overwrite, IN OUT UINT64 *BufferSize, IN UINTN *BlockSize OPTIONAL, IN EFI_IP_ADDRESS *ServerIp, IN UINT8 *Filename OPTIONAL, IN EFI_PXE_BASE_CODE_MTFTP_INFO *Info OPTIONAL, IN BOOLEAN DontUseBuffer)
Used to perform TFTP and MTFTP services.
EFI_PXE_BASE_CODE_UDP_PORT CPort
EFI_PXE_BASE_CODE_MODE * Mode
The pointer to the EFI_PXE_BASE_CODE_MODE data for this device.
The EFI_PXE_BASE_CODE_PROTOCOL is used to control PXE-compatible devices.
EFI_PXE_BASE_CODE_PACKET PxeDiscover
EFI_PXE_BASE_CODE_PACKET ProxyOffer
EFI_PXE_BASE_CODE_DISCOVER Discover
EFI_PXE_BASE_CODE_UDP_WRITE UdpWrite
EFI_PXE_BASE_CODE_START Start