199767f8919635c4928607450d9e0abb932109ceToomas Soome/* $FreeBSD$ */
199767f8919635c4928607450d9e0abb932109ceToomas Soome#ifndef _EFIPXEBC_H
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define _EFIPXEBC_H
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome/*++
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCopyright (c) 1999 - 2002 Intel Corporation. All rights reserved
199767f8919635c4928607450d9e0abb932109ceToomas SoomeThis software and associated documentation (if any) is furnished
199767f8919635c4928607450d9e0abb932109ceToomas Soomeunder a license and may only be used or copied in accordance
199767f8919635c4928607450d9e0abb932109ceToomas Soomewith the terms of the license. Except as permitted by such
199767f8919635c4928607450d9e0abb932109ceToomas Soomelicense, no part of this software or documentation may be
199767f8919635c4928607450d9e0abb932109ceToomas Soomereproduced, stored in a retrieval system, or transmitted in any
199767f8919635c4928607450d9e0abb932109ceToomas Soomeform or by any means without the express written consent of
199767f8919635c4928607450d9e0abb932109ceToomas SoomeIntel Corporation.
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeModule Name:
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome efipxebc.h
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeAbstract:
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI PXE Base Code Protocol
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeRevision History
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome--*/
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// PXE Base Code protocol
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_PROTOCOL \
199767f8919635c4928607450d9e0abb932109ceToomas Soome { 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeINTERFACE_DECL(_EFI_PXE_BASE_CODE);
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define DEFAULT_TTL 8
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define DEFAULT_ToS 0
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Address definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef union {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 Addr[4];
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IPv4_ADDRESS v4;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IPv6_ADDRESS v6;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_IP_ADDRESS;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef UINT16 EFI_PXE_BASE_CODE_UDP_PORT;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Packet definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 BootpOpcode;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 BootpHwType;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 BootpHwAddrLen;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 BootpGateHops;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 BootpIdent;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 BootpSeconds;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 BootpFlags;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 BootpCiAddr[4];
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 BootpYiAddr[4];
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 BootpSiAddr[4];
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 BootpGiAddr[4];
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 BootpHwAddr[16];
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 BootpSrvName[64];
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 BootpBootFile[128];
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 DhcpMagik;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 DhcpOptions[56];
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_DHCPV4_PACKET;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome// TBD in EFI v1.1
199767f8919635c4928607450d9e0abb932109ceToomas Soome//typedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome// UINT8 reserved;
199767f8919635c4928607450d9e0abb932109ceToomas Soome//} EFI_PXE_BASE_CODE_DHCPV6_PACKET;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef union {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 Raw[1472];
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4;
199767f8919635c4928607450d9e0abb932109ceToomas Soome// EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_PACKET;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 Type;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 Code;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 Checksum;
199767f8919635c4928607450d9e0abb932109ceToomas Soome union {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 reserved;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 Mtu;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 Pointer;
199767f8919635c4928607450d9e0abb932109ceToomas Soome struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 Identifier;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 Sequence;
199767f8919635c4928607450d9e0abb932109ceToomas Soome } Echo;
199767f8919635c4928607450d9e0abb932109ceToomas Soome } u;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 Data[494];
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_ICMP_ERROR;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 ErrorCode;
199767f8919635c4928607450d9e0abb932109ceToomas Soome CHAR8 ErrorString[127];
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_TFTP_ERROR;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// IP Receive Filter definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_MAX_IPCNT 8
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 Filters;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 IpCnt;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 reserved;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_IPCNT];
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_IP_FILTER;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP 0x0001
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST 0x0002
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS 0x0004
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST 0x0008
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// ARP Cache definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IP_ADDRESS IpAddr;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_MAC_ADDRESS MacAddr;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_ARP_ENTRY;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IP_ADDRESS IpAddr;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IP_ADDRESS SubnetMask;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IP_ADDRESS GwAddr;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_ROUTE_ENTRY;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// UDP definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP 0x0001
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT 0x0002
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_IP 0x0004
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT 0x0008
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_USE_FILTER 0x0010
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_MAY_FRAGMENT 0x0020
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Discover() definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_BOOTSTRAP 0
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_MS_WINNT_RIS 1
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_INTEL_LCM 2
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_DOSUNDI 3
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_NEC_ESMPRO 4
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_WSoD 5
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_LCCM 6
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_CA_UNICENTER_TNG 7
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_HP_OPENVIEW 8
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_9 9
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_10 10
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_11 11
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_NOT_USED_12 12
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_INSTALL 13
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_BOOT 14
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_REMBO 15
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_BEOBOOT 16
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// 17 through 32767 are reserved
199767f8919635c4928607450d9e0abb932109ceToomas Soome// 32768 through 65279 are for vendor use
199767f8919635c4928607450d9e0abb932109ceToomas Soome// 65280 through 65534 are reserved
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_PXETEST 65535
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_LAYER_MASK 0x7FFF
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_LAYER_INITIAL 0x0000
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_LAYER_CREDENTIALS 0x8000
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 Type;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN AcceptAnyResponse;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 Reserved;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IP_ADDRESS IpAddr;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_SRVLIST;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN UseMCast;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN UseBCast;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN UseUCast;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN MustUseList;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IP_ADDRESS ServerMCastIp;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 IpCnt;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_SRVLIST SrvList[1];
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_DISCOVER_INFO;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Mtftp() definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef enum {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_TFTP_FIRST,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_TFTP_READ_FILE,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_TFTP_WRITE_FILE,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_MTFTP_READ_FILE,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_MTFTP_LAST
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_TFTP_OPCODE;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IP_ADDRESS MCastIp;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_UDP_PORT CPort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_UDP_PORT SPort;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 ListenTimeout;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT16 TransmitTimeout;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_MTFTP_INFO;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// PXE Base Code Mode structure
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN Started;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN Ipv6Available;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN Ipv6Supported;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN UsingIpv6;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN BisSupported;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN BisDetected;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN AutoArp;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN SendGUID;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN DhcpDiscoverValid;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN DhcpAckReceived;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN ProxyOfferReceived;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN PxeDiscoverValid;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN PxeReplyReceived;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN PxeBisReplyReceived;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN IcmpErrorReceived;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN TftpErrorReceived;
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN MakeCallbacks;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 TTL;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 ToS;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IP_ADDRESS StationIp;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IP_ADDRESS SubnetMask;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_PACKET DhcpDiscover;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_PACKET DhcpAck;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_PACKET ProxyOffer;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_PACKET PxeDiscover;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_PACKET PxeReply;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_PACKET PxeBisReply;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_IP_FILTER IpFilter;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 ArpCacheEntries;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_ARP_ENTRY ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES];
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 RouteTableEntries;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_ROUTE_ENTRY RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES];
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_ICMP_ERROR IcmpError;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_TFTP_ERROR TftpError;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_MODE;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// PXE Base Code Interface Function definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_BASE_CODE_START) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN BOOLEAN UseIpv6
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_BASE_CODE_STOP) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE *This
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_BASE_CODE_DHCP) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN BOOLEAN SortOffers
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_BASE_CODE_DISCOVER) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINT16 Type,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINT16 *Layer,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN BOOLEAN UseBis,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT EFI_PXE_BASE_CODE_DISCOVER_INFO *Info OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_BASE_CODE_MTFTP) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_TFTP_OPCODE Operation,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT VOID *BufferPtr OPTIONAL,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN BOOLEAN Overwrite,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT UINT64 *BufferSize,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINTN *BlockSize OPTIONAL,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_IP_ADDRESS *ServerIp,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINT8 *Filename,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_MTFTP_INFO *Info OPTIONAL,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN BOOLEAN DontUseBuffer
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_BASE_CODE_UDP_WRITE) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINT16 OpFlags,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_IP_ADDRESS *DestIp,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_UDP_PORT *DestPort,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_IP_ADDRESS *GatewayIp, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_IP_ADDRESS *SrcIp, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINTN *HeaderSize, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN VOID *HeaderPtr, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINTN *BufferSize,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN VOID *BufferPtr
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_BASE_CODE_UDP_READ) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINT16 OpFlags,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT EFI_IP_ADDRESS *DestIp, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT EFI_IP_ADDRESS *SrcIp, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINTN *HeaderSize, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN VOID *HeaderPtr, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT UINTN *BufferSize,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN VOID *BufferPtr
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_BASE_CODE_SET_IP_FILTER) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_IP_FILTER *NewFilter
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_BASE_CODE_ARP) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_IP_ADDRESS *IpAddr,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_MAC_ADDRESS *MacAddr OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_BASE_CODE_SET_PARAMETERS) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN BOOLEAN *NewAutoArp, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN BOOLEAN *NewSendGUID, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINT8 *NewTTL, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINT8 *NewToS, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN BOOLEAN *NewMakeCallback OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_BASE_CODE_SET_STATION_IP) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_IP_ADDRESS *NewStationIp, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_IP_ADDRESS *NewSubnetMask OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_BASE_CODE_SET_PACKETS) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN *NewDhcpDiscoverValid, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN *NewDhcpAckReceived, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN *NewProxyOfferReceived, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN *NewPxeDiscoverValid, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN *NewPxeReplyReceived, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome BOOLEAN *NewPxeBisReplyReceived,OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_PACKET *NewDhcpDiscover, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_PACKET *NewDhcpAck, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_PACKET *NewProxyOffer, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_PACKET *NewPxeDiscover, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_PACKET *NewPxeReply, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_PACKET *NewPxeBisReply OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// PXE Base Code Protocol structure
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_INTERFACE_REVISION 0x00010000
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct _EFI_PXE_BASE_CODE {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT64 Revision;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_START Start;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_STOP Stop;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_DHCP Dhcp;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_DISCOVER Discover;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_MTFTP Mtftp;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_UDP_WRITE UdpWrite;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_UDP_READ UdpRead;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_ARP Arp;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_SET_PACKETS SetPackets;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_MODE *Mode;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Call Back Definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL \
199767f8919635c4928607450d9e0abb932109ceToomas Soome { 0x245dca21, 0xfb7b, 0x11d3, {0x8f, 0x01, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Revision Number
199767f8919635c4928607450d9e0abb932109ceToomas Soome//
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_CALLBACK_INTERFACE_REVISION 0x00010000
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeINTERFACE_DECL(_EFI_PXE_BASE_CODE_CALLBACK);
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef enum {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_FUNCTION_FIRST,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_FUNCTION_DHCP,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_FUNCTION_DISCOVER,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_FUNCTION_MTFTP,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_FUNCTION_UDP_WRITE,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_FUNCTION_UDP_READ,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_FUNCTION_ARP,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_FUNCTION_IGMP,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_PXE_FUNCTION_LAST
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_FUNCTION;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef enum {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_CALLBACK_STATUS_FIRST,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_CALLBACK_STATUS_ABORT,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_CALLBACK_STATUS_LAST
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_CALLBACK_STATUS;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_PXE_BASE_CODE_CALLBACK_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_PXE_CALLBACK) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_PXE_BASE_CODE_CALLBACK *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_FUNCTION Function,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN BOOLEAN Received,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINT32 PacketLen,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_PACKET *Packet OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct _EFI_PXE_BASE_CODE_CALLBACK {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT64 Revision;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_CALLBACK Callback;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PXE_BASE_CODE_CALLBACK;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#endif /* _EFIPXEBC_H */