16#ifndef __PXE_BASE_CODE_PROTOCOL_H__
17#define __PXE_BASE_CODE_PROTOCOL_H__
25#define EFI_PXE_BASE_CODE_PROTOCOL_GUID \
27 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
73#define EFI_PXE_BASE_CODE_MAX_IPCNT 8
85#define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP 0x0001
86#define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST 0x0002
87#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS 0x0004
88#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST 0x0008
112#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP 0x0001
113#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT 0x0002
114#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_IP 0x0004
115#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT 0x0008
116#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_USE_FILTER 0x0010
117#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_MAY_FRAGMENT 0x0020
122#define EFI_PXE_BASE_CODE_BOOT_TYPE_BOOTSTRAP 0
123#define EFI_PXE_BASE_CODE_BOOT_TYPE_MS_WINNT_RIS 1
124#define EFI_PXE_BASE_CODE_BOOT_TYPE_INTEL_LCM 2
125#define EFI_PXE_BASE_CODE_BOOT_TYPE_DOSUNDI 3
126#define EFI_PXE_BASE_CODE_BOOT_TYPE_NEC_ESMPRO 4
127#define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_WSoD 5
128#define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_LCCM 6
129#define EFI_PXE_BASE_CODE_BOOT_TYPE_CA_UNICENTER_TNG 7
130#define EFI_PXE_BASE_CODE_BOOT_TYPE_HP_OPENVIEW 8
131#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_9 9
132#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_10 10
133#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_11 11
134#define EFI_PXE_BASE_CODE_BOOT_TYPE_NOT_USED_12 12
135#define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_INSTALL 13
136#define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_BOOT 14
137#define EFI_PXE_BASE_CODE_BOOT_TYPE_REMBO 15
138#define EFI_PXE_BASE_CODE_BOOT_TYPE_BEOBOOT 16
144#define EFI_PXE_BASE_CODE_BOOT_TYPE_PXETEST 65535
146#define EFI_PXE_BASE_CODE_BOOT_LAYER_MASK 0x7FFF
147#define EFI_PXE_BASE_CODE_BOOT_LAYER_INITIAL 0x0000
155#if defined (MDE_CPU_IA32)
156#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x0006
157#elif defined (MDE_CPU_X64)
158#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x0007
159#elif defined (MDE_CPU_AARCH64)
160#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x000B
161#elif defined (MDE_CPU_RISCV64)
162#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x001B
163#elif defined (MDE_CPU_LOONGARCH64)
164#define EFI_PXE_CLIENT_SYSTEM_ARCHITECTURE 0x0027
261#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8
262#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8
892#define EFI_PXE_BASE_CODE_PROTOCOL_REVISION 0x00010000
897#define EFI_PXE_BASE_CODE_INTERFACE_REVISION EFI_PXE_BASE_CODE_PROTOCOL_REVISION
unsigned short UINT16
2-byte unsigned value.
unsigned char BOOLEAN
Logical Boolean.
char CHAR8
1-byte Character
UINT64 UINTN
Unsigned value of native width.
unsigned long long UINT64
8-byte unsigned value.
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
#define VOID
Undeclared type.
#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_START)(IN EFI_PXE_BASE_CODE_PROTOCOL *This, IN BOOLEAN UseIpv6)
Enables the use of the PXE Base Code Protocol functions.
struct _EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE_PROTOCOL
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_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_PXE_BASE_CODE_TFTP_OPCODE
TFTP opcode definitions.
@ EFI_PXE_BASE_CODE_TFTP_READ_FILE
@ EFI_PXE_BASE_CODE_TFTP_FIRST
@ EFI_PXE_BASE_CODE_TFTP_WRITE_FILE
@ EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY
@ EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE
@ EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY
@ EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE
@ EFI_PXE_BASE_CODE_MTFTP_LAST
@ EFI_PXE_BASE_CODE_MTFTP_READ_FILE
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.
#define EFI_PXE_BASE_CODE_MAX_IPCNT
IP Receive Filter definitions.
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.
EFI_GUID gEfiPxeBaseCodeProtocolGuid
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.
#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES
UINT16 EFI_PXE_BASE_CODE_UDP_PORT
EFI_PXE_BASE_CODE_PROTOCOL EFI_PXE_BASE_CODE
Protocol defined in EFI1.1.
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_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.
#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES
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_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.
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.
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.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
union @104331263140136355135267063077374276003064103115 u
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
UINT16_t BufferSize
Buffer size.
32-byte buffer containing a network Media Access Control address.
Discover() information override structure.
EFI_IP_ADDRESS ServerMCastIp
EFI_PXE_BASE_CODE_SRVLIST SrvList[1]
IP Receive Filter structure.
EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_IPCNT]
BOOLEAN PxeBisReplyReceived
EFI_PXE_BASE_CODE_IP_FILTER IpFilter
BOOLEAN ProxyOfferReceived
EFI_PXE_BASE_CODE_PACKET ProxyOffer
BOOLEAN TftpErrorReceived
EFI_PXE_BASE_CODE_PACKET DhcpAck
EFI_PXE_BASE_CODE_PACKET PxeBisReply
EFI_PXE_BASE_CODE_PACKET PxeReply
EFI_PXE_BASE_CODE_ROUTE_ENTRY RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES]
EFI_PXE_BASE_CODE_PACKET DhcpDiscover
EFI_PXE_BASE_CODE_TFTP_ERROR TftpError
BOOLEAN DhcpDiscoverValid
BOOLEAN IcmpErrorReceived
EFI_PXE_BASE_CODE_ICMP_ERROR IcmpError
EFI_PXE_BASE_CODE_ARP_ENTRY ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES]
EFI_IP_ADDRESS SubnetMask
EFI_PXE_BASE_CODE_PACKET PxeDiscover
EFI_PXE_BASE_CODE_UDP_PORT SPort
EFI_PXE_BASE_CODE_UDP_PORT CPort
EFI_IP_ADDRESS SubnetMask
Discover() server list structure.
BOOLEAN AcceptAnyResponse
The EFI_PXE_BASE_CODE_PROTOCOL is used to control PXE-compatible devices.
EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters
UINT64 Revision
The revision of the EFI_PXE_BASE_CODE_PROTOCOL.
EFI_PXE_BASE_CODE_SET_PACKETS SetPackets
EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp
EFI_PXE_BASE_CODE_UDP_READ UdpRead
EFI_PXE_BASE_CODE_UDP_WRITE UdpWrite
EFI_PXE_BASE_CODE_MODE * Mode
The pointer to the EFI_PXE_BASE_CODE_MODE data for this device.
EFI_PXE_BASE_CODE_MTFTP Mtftp
EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter
EFI_PXE_BASE_CODE_STOP Stop
EFI_PXE_BASE_CODE_DHCP Dhcp
EFI_PXE_BASE_CODE_START Start
EFI_PXE_BASE_CODE_DISCOVER Discover
EFI_PXE_BASE_CODE_ARP Arp
16-byte buffer aligned on a 4-byte boundary.
EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6
EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4