177943Sdfr/* $FreeBSD: stable/11/stand/efi/include/efipxebc.h 293724 2016-01-12 02:17:39Z smh $ */ 277943Sdfr#ifndef _EFIPXEBC_H 377943Sdfr#define _EFIPXEBC_H 477943Sdfr 577943Sdfr/*++ 677943Sdfr 7163898SmarcelCopyright (c) 1999 - 2002 Intel Corporation. All rights reserved 8163898SmarcelThis software and associated documentation (if any) is furnished 9163898Smarcelunder a license and may only be used or copied in accordance 10163898Smarcelwith the terms of the license. Except as permitted by such 11163898Smarcellicense, no part of this software or documentation may be 12163898Smarcelreproduced, stored in a retrieval system, or transmitted in any 13163898Smarcelform or by any means without the express written consent of 14163898SmarcelIntel Corporation. 1577943Sdfr 1677943SdfrModule Name: 1777943Sdfr 1877943Sdfr efipxebc.h 1977943Sdfr 2077943SdfrAbstract: 2177943Sdfr 2277943Sdfr EFI PXE Base Code Protocol 2377943Sdfr 2477943Sdfr 2577943Sdfr 2677943SdfrRevision History 2777943Sdfr 2877943Sdfr--*/ 2977943Sdfr 30163898Smarcel// 31163898Smarcel// PXE Base Code protocol 32163898Smarcel// 3377943Sdfr 3477943Sdfr#define EFI_PXE_BASE_CODE_PROTOCOL \ 35293724Ssmh { 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 3677943Sdfr 3777943SdfrINTERFACE_DECL(_EFI_PXE_BASE_CODE); 3877943Sdfr 39163898Smarcel#define DEFAULT_TTL 8 4077943Sdfr#define DEFAULT_ToS 0 41163898Smarcel// 42163898Smarcel// Address definitions 43163898Smarcel// 4477943Sdfr 4577943Sdfrtypedef union { 4677943Sdfr UINT32 Addr[4]; 4777943Sdfr EFI_IPv4_ADDRESS v4; 4877943Sdfr EFI_IPv6_ADDRESS v6; 4977943Sdfr} EFI_IP_ADDRESS; 5077943Sdfr 5177943Sdfrtypedef UINT16 EFI_PXE_BASE_CODE_UDP_PORT; 5277943Sdfr 53163898Smarcel// 54163898Smarcel// Packet definitions 55163898Smarcel// 5677943Sdfr 5777943Sdfrtypedef struct { 5877943Sdfr UINT8 BootpOpcode; 5977943Sdfr UINT8 BootpHwType; 6077943Sdfr UINT8 BootpHwAddrLen; 6177943Sdfr UINT8 BootpGateHops; 6277943Sdfr UINT32 BootpIdent; 6377943Sdfr UINT16 BootpSeconds; 6477943Sdfr UINT16 BootpFlags; 6577943Sdfr UINT8 BootpCiAddr[4]; 6677943Sdfr UINT8 BootpYiAddr[4]; 6777943Sdfr UINT8 BootpSiAddr[4]; 6877943Sdfr UINT8 BootpGiAddr[4]; 6977943Sdfr UINT8 BootpHwAddr[16]; 7077943Sdfr UINT8 BootpSrvName[64]; 7177943Sdfr UINT8 BootpBootFile[128]; 7277943Sdfr UINT32 DhcpMagik; 7377943Sdfr UINT8 DhcpOptions[56]; 7477943Sdfr} EFI_PXE_BASE_CODE_DHCPV4_PACKET; 7577943Sdfr 76163898Smarcel// TBD in EFI v1.1 77163898Smarcel//typedef struct { 78163898Smarcel// UINT8 reserved; 79163898Smarcel//} EFI_PXE_BASE_CODE_DHCPV6_PACKET; 80163898Smarcel 8177943Sdfrtypedef union { 8277943Sdfr UINT8 Raw[1472]; 8377943Sdfr EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4; 84163898Smarcel// EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6; 8577943Sdfr} EFI_PXE_BASE_CODE_PACKET; 8677943Sdfr 8777943Sdfrtypedef struct { 8877943Sdfr UINT8 Type; 8977943Sdfr UINT8 Code; 9077943Sdfr UINT16 Checksum; 9177943Sdfr union { 9277943Sdfr UINT32 reserved; 9377943Sdfr UINT32 Mtu; 9477943Sdfr UINT32 Pointer; 9577943Sdfr struct { 9677943Sdfr UINT16 Identifier; 9777943Sdfr UINT16 Sequence; 9877943Sdfr } Echo; 9977943Sdfr } u; 10077943Sdfr UINT8 Data[494]; 10177943Sdfr} EFI_PXE_BASE_CODE_ICMP_ERROR; 10277943Sdfr 10377943Sdfrtypedef struct { 10477943Sdfr UINT8 ErrorCode; 10577943Sdfr CHAR8 ErrorString[127]; 10677943Sdfr} EFI_PXE_BASE_CODE_TFTP_ERROR; 10777943Sdfr 108163898Smarcel// 109163898Smarcel// IP Receive Filter definitions 110163898Smarcel// 11177943Sdfr#define EFI_PXE_BASE_CODE_MAX_IPCNT 8 11277943Sdfrtypedef struct { 11377943Sdfr UINT8 Filters; 11477943Sdfr UINT8 IpCnt; 11577943Sdfr UINT16 reserved; 11677943Sdfr EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_IPCNT]; 11777943Sdfr} EFI_PXE_BASE_CODE_IP_FILTER; 11877943Sdfr 11977943Sdfr#define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP 0x0001 12077943Sdfr#define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST 0x0002 12177943Sdfr#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS 0x0004 12277943Sdfr#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST 0x0008 12377943Sdfr 124163898Smarcel// 125163898Smarcel// ARP Cache definitions 126163898Smarcel// 12777943Sdfr 12877943Sdfrtypedef struct { 12977943Sdfr EFI_IP_ADDRESS IpAddr; 13077943Sdfr EFI_MAC_ADDRESS MacAddr; 13177943Sdfr} EFI_PXE_BASE_CODE_ARP_ENTRY; 13277943Sdfr 13377943Sdfrtypedef struct { 13477943Sdfr EFI_IP_ADDRESS IpAddr; 13577943Sdfr EFI_IP_ADDRESS SubnetMask; 13677943Sdfr EFI_IP_ADDRESS GwAddr; 13777943Sdfr} EFI_PXE_BASE_CODE_ROUTE_ENTRY; 13877943Sdfr 139163898Smarcel// 140163898Smarcel// UDP definitions 141163898Smarcel// 14277943Sdfr 14377943Sdfr#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP 0x0001 14477943Sdfr#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT 0x0002 14577943Sdfr#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_IP 0x0004 14677943Sdfr#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT 0x0008 14777943Sdfr#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_USE_FILTER 0x0010 14877943Sdfr#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_MAY_FRAGMENT 0x0020 14977943Sdfr 150163898Smarcel// 151163898Smarcel// Discover() definitions 152163898Smarcel// 15377943Sdfr 154292625Semaste#define EFI_PXE_BASE_CODE_BOOT_TYPE_BOOTSTRAP 0 15577943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_MS_WINNT_RIS 1 15677943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_INTEL_LCM 2 15777943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_DOSUNDI 3 15877943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_NEC_ESMPRO 4 15977943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_WSoD 5 16077943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_LCCM 6 16177943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_CA_UNICENTER_TNG 7 16277943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_HP_OPENVIEW 8 16377943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_9 9 16477943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_10 10 16577943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_11 11 16677943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_NOT_USED_12 12 16777943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_INSTALL 13 16877943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_BOOT 14 16977943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_REMBO 15 17077943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_BEOBOOT 16 171163898Smarcel// 172163898Smarcel// 17 through 32767 are reserved 173163898Smarcel// 32768 through 65279 are for vendor use 174163898Smarcel// 65280 through 65534 are reserved 175163898Smarcel// 17677943Sdfr#define EFI_PXE_BASE_CODE_BOOT_TYPE_PXETEST 65535 17777943Sdfr 17877943Sdfr#define EFI_PXE_BASE_CODE_BOOT_LAYER_MASK 0x7FFF 17977943Sdfr#define EFI_PXE_BASE_CODE_BOOT_LAYER_INITIAL 0x0000 180163898Smarcel#define EFI_PXE_BASE_CODE_BOOT_LAYER_CREDENTIALS 0x8000 18177943Sdfr 18277943Sdfr 18377943Sdfrtypedef struct { 18477943Sdfr UINT16 Type; 18577943Sdfr BOOLEAN AcceptAnyResponse; 18677943Sdfr UINT8 Reserved; 18777943Sdfr EFI_IP_ADDRESS IpAddr; 18877943Sdfr} EFI_PXE_BASE_CODE_SRVLIST; 18977943Sdfr 19077943Sdfrtypedef struct { 19177943Sdfr BOOLEAN UseMCast; 19277943Sdfr BOOLEAN UseBCast; 19377943Sdfr BOOLEAN UseUCast; 19477943Sdfr BOOLEAN MustUseList; 19577943Sdfr EFI_IP_ADDRESS ServerMCastIp; 19677943Sdfr UINT16 IpCnt; 19777943Sdfr EFI_PXE_BASE_CODE_SRVLIST SrvList[1]; 19877943Sdfr} EFI_PXE_BASE_CODE_DISCOVER_INFO; 19977943Sdfr 200163898Smarcel// 201163898Smarcel// Mtftp() definitions 202163898Smarcel// 20377943Sdfr 20477943Sdfrtypedef enum { 20577943Sdfr EFI_PXE_BASE_CODE_TFTP_FIRST, 20677943Sdfr EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE, 20777943Sdfr EFI_PXE_BASE_CODE_TFTP_READ_FILE, 20877943Sdfr EFI_PXE_BASE_CODE_TFTP_WRITE_FILE, 20977943Sdfr EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY, 21077943Sdfr EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE, 21177943Sdfr EFI_PXE_BASE_CODE_MTFTP_READ_FILE, 21277943Sdfr EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY, 21377943Sdfr EFI_PXE_BASE_CODE_MTFTP_LAST 21477943Sdfr} EFI_PXE_BASE_CODE_TFTP_OPCODE; 21577943Sdfr 21677943Sdfrtypedef struct { 21777943Sdfr EFI_IP_ADDRESS MCastIp; 21877943Sdfr EFI_PXE_BASE_CODE_UDP_PORT CPort; 21977943Sdfr EFI_PXE_BASE_CODE_UDP_PORT SPort; 22077943Sdfr UINT16 ListenTimeout; 22177943Sdfr UINT16 TransmitTimeout; 22277943Sdfr} EFI_PXE_BASE_CODE_MTFTP_INFO; 22377943Sdfr 224163898Smarcel// 225163898Smarcel// PXE Base Code Mode structure 226163898Smarcel// 22777943Sdfr 22877943Sdfr#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8 22977943Sdfr#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8 23077943Sdfr 23177943Sdfrtypedef struct { 23277943Sdfr BOOLEAN Started; 23377943Sdfr BOOLEAN Ipv6Available; 23477943Sdfr BOOLEAN Ipv6Supported; 23577943Sdfr BOOLEAN UsingIpv6; 23677943Sdfr BOOLEAN BisSupported; 23777943Sdfr BOOLEAN BisDetected; 23877943Sdfr BOOLEAN AutoArp; 23977943Sdfr BOOLEAN SendGUID; 24077943Sdfr BOOLEAN DhcpDiscoverValid; 24177943Sdfr BOOLEAN DhcpAckReceived; 24277943Sdfr BOOLEAN ProxyOfferReceived; 24377943Sdfr BOOLEAN PxeDiscoverValid; 24477943Sdfr BOOLEAN PxeReplyReceived; 24577943Sdfr BOOLEAN PxeBisReplyReceived; 24677943Sdfr BOOLEAN IcmpErrorReceived; 24777943Sdfr BOOLEAN TftpErrorReceived; 24877943Sdfr BOOLEAN MakeCallbacks; 24977943Sdfr UINT8 TTL; 25077943Sdfr UINT8 ToS; 25177943Sdfr EFI_IP_ADDRESS StationIp; 25277943Sdfr EFI_IP_ADDRESS SubnetMask; 25377943Sdfr EFI_PXE_BASE_CODE_PACKET DhcpDiscover; 25477943Sdfr EFI_PXE_BASE_CODE_PACKET DhcpAck; 25577943Sdfr EFI_PXE_BASE_CODE_PACKET ProxyOffer; 25677943Sdfr EFI_PXE_BASE_CODE_PACKET PxeDiscover; 25777943Sdfr EFI_PXE_BASE_CODE_PACKET PxeReply; 25877943Sdfr EFI_PXE_BASE_CODE_PACKET PxeBisReply; 25977943Sdfr EFI_PXE_BASE_CODE_IP_FILTER IpFilter; 26077943Sdfr UINT32 ArpCacheEntries; 26177943Sdfr EFI_PXE_BASE_CODE_ARP_ENTRY ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES]; 26277943Sdfr UINT32 RouteTableEntries; 26377943Sdfr EFI_PXE_BASE_CODE_ROUTE_ENTRY RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES]; 26477943Sdfr EFI_PXE_BASE_CODE_ICMP_ERROR IcmpError; 26577943Sdfr EFI_PXE_BASE_CODE_TFTP_ERROR TftpError; 26677943Sdfr} EFI_PXE_BASE_CODE_MODE; 26777943Sdfr 268163898Smarcel// 269163898Smarcel// PXE Base Code Interface Function definitions 270163898Smarcel// 27177943Sdfr 27277943Sdfrtypedef 27377943SdfrEFI_STATUS 27477943Sdfr(EFIAPI *EFI_PXE_BASE_CODE_START) ( 27577943Sdfr IN struct _EFI_PXE_BASE_CODE *This, 27677943Sdfr IN BOOLEAN UseIpv6 27777943Sdfr ); 27877943Sdfr 27977943Sdfrtypedef 28077943SdfrEFI_STATUS 28177943Sdfr(EFIAPI *EFI_PXE_BASE_CODE_STOP) ( 28277943Sdfr IN struct _EFI_PXE_BASE_CODE *This 28377943Sdfr ); 28477943Sdfr 28577943Sdfrtypedef 28677943SdfrEFI_STATUS 28777943Sdfr(EFIAPI *EFI_PXE_BASE_CODE_DHCP) ( 28877943Sdfr IN struct _EFI_PXE_BASE_CODE *This, 28977943Sdfr IN BOOLEAN SortOffers 29077943Sdfr ); 29177943Sdfr 29277943Sdfrtypedef 29377943SdfrEFI_STATUS 29477943Sdfr(EFIAPI *EFI_PXE_BASE_CODE_DISCOVER) ( 29577943Sdfr IN struct _EFI_PXE_BASE_CODE *This, 29677943Sdfr IN UINT16 Type, 29777943Sdfr IN UINT16 *Layer, 29877943Sdfr IN BOOLEAN UseBis, 29977943Sdfr IN OUT EFI_PXE_BASE_CODE_DISCOVER_INFO *Info OPTIONAL 30077943Sdfr ); 30177943Sdfr 30277943Sdfrtypedef 30377943SdfrEFI_STATUS 30477943Sdfr(EFIAPI *EFI_PXE_BASE_CODE_MTFTP) ( 30577943Sdfr IN struct _EFI_PXE_BASE_CODE *This, 30677943Sdfr IN EFI_PXE_BASE_CODE_TFTP_OPCODE Operation, 30777943Sdfr IN OUT VOID *BufferPtr OPTIONAL, 30877943Sdfr IN BOOLEAN Overwrite, 309163898Smarcel IN OUT UINT64 *BufferSize, 31077943Sdfr IN UINTN *BlockSize OPTIONAL, 31177943Sdfr IN EFI_IP_ADDRESS *ServerIp, 31277943Sdfr IN UINT8 *Filename, 31377943Sdfr IN EFI_PXE_BASE_CODE_MTFTP_INFO *Info OPTIONAL, 31477943Sdfr IN BOOLEAN DontUseBuffer 31577943Sdfr ); 31677943Sdfr 31777943Sdfrtypedef 31877943SdfrEFI_STATUS 31977943Sdfr(EFIAPI *EFI_PXE_BASE_CODE_UDP_WRITE) ( 32077943Sdfr IN struct _EFI_PXE_BASE_CODE *This, 32177943Sdfr IN UINT16 OpFlags, 32277943Sdfr IN EFI_IP_ADDRESS *DestIp, 32377943Sdfr IN EFI_PXE_BASE_CODE_UDP_PORT *DestPort, 32477943Sdfr IN EFI_IP_ADDRESS *GatewayIp, OPTIONAL 32577943Sdfr IN EFI_IP_ADDRESS *SrcIp, OPTIONAL 32677943Sdfr IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort, OPTIONAL 32777943Sdfr IN UINTN *HeaderSize, OPTIONAL 32877943Sdfr IN VOID *HeaderPtr, OPTIONAL 32977943Sdfr IN UINTN *BufferSize, 33077943Sdfr IN VOID *BufferPtr 33177943Sdfr ); 33277943Sdfr 33377943Sdfrtypedef 33477943SdfrEFI_STATUS 33577943Sdfr(EFIAPI *EFI_PXE_BASE_CODE_UDP_READ) ( 33677943Sdfr IN struct _EFI_PXE_BASE_CODE *This, 33777943Sdfr IN UINT16 OpFlags, 33877943Sdfr IN OUT EFI_IP_ADDRESS *DestIp, OPTIONAL 33977943Sdfr IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort, OPTIONAL 34077943Sdfr IN OUT EFI_IP_ADDRESS *SrcIp, OPTIONAL 34177943Sdfr IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort, OPTIONAL 34277943Sdfr IN UINTN *HeaderSize, OPTIONAL 34377943Sdfr IN VOID *HeaderPtr, OPTIONAL 34477943Sdfr IN OUT UINTN *BufferSize, 34577943Sdfr IN VOID *BufferPtr 34677943Sdfr ); 34777943Sdfr 34877943Sdfrtypedef 34977943SdfrEFI_STATUS 35077943Sdfr(EFIAPI *EFI_PXE_BASE_CODE_SET_IP_FILTER) ( 35177943Sdfr IN struct _EFI_PXE_BASE_CODE *This, 35277943Sdfr IN EFI_PXE_BASE_CODE_IP_FILTER *NewFilter 35377943Sdfr ); 35477943Sdfr 35577943Sdfrtypedef 35677943SdfrEFI_STATUS 35777943Sdfr(EFIAPI *EFI_PXE_BASE_CODE_ARP) ( 35877943Sdfr IN struct _EFI_PXE_BASE_CODE *This, 359292625Semaste IN EFI_IP_ADDRESS *IpAddr, 36077943Sdfr IN EFI_MAC_ADDRESS *MacAddr OPTIONAL 36177943Sdfr ); 36277943Sdfr 36377943Sdfrtypedef 36477943SdfrEFI_STATUS 36577943Sdfr(EFIAPI *EFI_PXE_BASE_CODE_SET_PARAMETERS) ( 36677943Sdfr IN struct _EFI_PXE_BASE_CODE *This, 36777943Sdfr IN BOOLEAN *NewAutoArp, OPTIONAL 36877943Sdfr IN BOOLEAN *NewSendGUID, OPTIONAL 36977943Sdfr IN UINT8 *NewTTL, OPTIONAL 37077943Sdfr IN UINT8 *NewToS, OPTIONAL 37177943Sdfr IN BOOLEAN *NewMakeCallback OPTIONAL 37277943Sdfr ); 37377943Sdfr 37477943Sdfrtypedef 37577943SdfrEFI_STATUS 37677943Sdfr(EFIAPI *EFI_PXE_BASE_CODE_SET_STATION_IP) ( 37777943Sdfr IN struct _EFI_PXE_BASE_CODE *This, 37877943Sdfr IN EFI_IP_ADDRESS *NewStationIp, OPTIONAL 37977943Sdfr IN EFI_IP_ADDRESS *NewSubnetMask OPTIONAL 38077943Sdfr ); 38177943Sdfr 38277943Sdfrtypedef 38377943SdfrEFI_STATUS 38477943Sdfr(EFIAPI *EFI_PXE_BASE_CODE_SET_PACKETS) ( 38577943Sdfr IN struct _EFI_PXE_BASE_CODE *This, 38677943Sdfr BOOLEAN *NewDhcpDiscoverValid, OPTIONAL 38777943Sdfr BOOLEAN *NewDhcpAckReceived, OPTIONAL 38877943Sdfr BOOLEAN *NewProxyOfferReceived, OPTIONAL 38977943Sdfr BOOLEAN *NewPxeDiscoverValid, OPTIONAL 39077943Sdfr BOOLEAN *NewPxeReplyReceived, OPTIONAL 39177943Sdfr BOOLEAN *NewPxeBisReplyReceived,OPTIONAL 39277943Sdfr IN EFI_PXE_BASE_CODE_PACKET *NewDhcpDiscover, OPTIONAL 39377943Sdfr IN EFI_PXE_BASE_CODE_PACKET *NewDhcpAck, OPTIONAL 39477943Sdfr IN EFI_PXE_BASE_CODE_PACKET *NewProxyOffer, OPTIONAL 39577943Sdfr IN EFI_PXE_BASE_CODE_PACKET *NewPxeDiscover, OPTIONAL 39677943Sdfr IN EFI_PXE_BASE_CODE_PACKET *NewPxeReply, OPTIONAL 39777943Sdfr IN EFI_PXE_BASE_CODE_PACKET *NewPxeBisReply OPTIONAL 39877943Sdfr ); 39977943Sdfr 400163898Smarcel// 401163898Smarcel// PXE Base Code Protocol structure 402163898Smarcel// 40377943Sdfr 40477943Sdfr#define EFI_PXE_BASE_CODE_INTERFACE_REVISION 0x00010000 40577943Sdfr 40677943Sdfrtypedef struct _EFI_PXE_BASE_CODE { 40777943Sdfr UINT64 Revision; 40877943Sdfr EFI_PXE_BASE_CODE_START Start; 40977943Sdfr EFI_PXE_BASE_CODE_STOP Stop; 41077943Sdfr EFI_PXE_BASE_CODE_DHCP Dhcp; 41177943Sdfr EFI_PXE_BASE_CODE_DISCOVER Discover; 41277943Sdfr EFI_PXE_BASE_CODE_MTFTP Mtftp; 41377943Sdfr EFI_PXE_BASE_CODE_UDP_WRITE UdpWrite; 41477943Sdfr EFI_PXE_BASE_CODE_UDP_READ UdpRead; 41577943Sdfr EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter; 41677943Sdfr EFI_PXE_BASE_CODE_ARP Arp; 41777943Sdfr EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters; 41877943Sdfr EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp; 41977943Sdfr EFI_PXE_BASE_CODE_SET_PACKETS SetPackets; 42077943Sdfr EFI_PXE_BASE_CODE_MODE *Mode; 42177943Sdfr} EFI_PXE_BASE_CODE; 42277943Sdfr 423163898Smarcel// 424163898Smarcel// Call Back Definitions 425163898Smarcel// 42677943Sdfr 42777943Sdfr#define EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL \ 428293724Ssmh { 0x245dca21, 0xfb7b, 0x11d3, {0x8f, 0x01, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } 42977943Sdfr 430163898Smarcel// 431163898Smarcel// Revision Number 432163898Smarcel// 43377943Sdfr 43477943Sdfr#define EFI_PXE_BASE_CODE_CALLBACK_INTERFACE_REVISION 0x00010000 43577943Sdfr 43677943SdfrINTERFACE_DECL(_EFI_PXE_BASE_CODE_CALLBACK); 43777943Sdfr 43877943Sdfrtypedef enum { 43977943Sdfr EFI_PXE_BASE_CODE_FUNCTION_FIRST, 44077943Sdfr EFI_PXE_BASE_CODE_FUNCTION_DHCP, 44177943Sdfr EFI_PXE_BASE_CODE_FUNCTION_DISCOVER, 44277943Sdfr EFI_PXE_BASE_CODE_FUNCTION_MTFTP, 44377943Sdfr EFI_PXE_BASE_CODE_FUNCTION_UDP_WRITE, 44477943Sdfr EFI_PXE_BASE_CODE_FUNCTION_UDP_READ, 44577943Sdfr EFI_PXE_BASE_CODE_FUNCTION_ARP, 44677943Sdfr EFI_PXE_BASE_CODE_FUNCTION_IGMP, 44777943Sdfr EFI_PXE_BASE_CODE_PXE_FUNCTION_LAST 44877943Sdfr} EFI_PXE_BASE_CODE_FUNCTION; 44977943Sdfr 45077943Sdfrtypedef enum { 45177943Sdfr EFI_PXE_BASE_CODE_CALLBACK_STATUS_FIRST, 45277943Sdfr EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE, 45377943Sdfr EFI_PXE_BASE_CODE_CALLBACK_STATUS_ABORT, 45477943Sdfr EFI_PXE_BASE_CODE_CALLBACK_STATUS_LAST 45577943Sdfr} EFI_PXE_BASE_CODE_CALLBACK_STATUS; 45677943Sdfr 45777943Sdfrtypedef 458292625SemasteEFI_PXE_BASE_CODE_CALLBACK_STATUS 45977943Sdfr(EFIAPI *EFI_PXE_CALLBACK) ( 46077943Sdfr IN struct _EFI_PXE_BASE_CODE_CALLBACK *This, 46177943Sdfr IN EFI_PXE_BASE_CODE_FUNCTION Function, 46277943Sdfr IN BOOLEAN Received, 46377943Sdfr IN UINT32 PacketLen, 46477943Sdfr IN EFI_PXE_BASE_CODE_PACKET *Packet OPTIONAL 46577943Sdfr ); 46677943Sdfr 46777943Sdfrtypedef struct _EFI_PXE_BASE_CODE_CALLBACK { 46877943Sdfr UINT64 Revision; 46977943Sdfr EFI_PXE_CALLBACK Callback; 47077943Sdfr} EFI_PXE_BASE_CODE_CALLBACK; 47177943Sdfr 47277943Sdfr#endif /* _EFIPXEBC_H */ 473