199767f8919635c4928607450d9e0abb932109ceToomas Soome/* $FreeBSD$ */
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 EFI PXE Base Code Protocol
199767f8919635c4928607450d9e0abb932109ceToomas SoomeRevision History
199767f8919635c4928607450d9e0abb932109ceToomas Soome// PXE Base Code protocol
199767f8919635c4928607450d9e0abb932109ceToomas Soome { 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Address definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef union {
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Packet definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome// TBD in EFI v1.1
199767f8919635c4928607450d9e0abb932109ceToomas Soome//typedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome// UINT8 reserved;
199767f8919635c4928607450d9e0abb932109ceToomas Soome//} EFI_PXE_BASE_CODE_DHCPV6_PACKET;
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef union {
199767f8919635c4928607450d9e0abb932109ceToomas Soome// EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6;
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome// IP Receive Filter definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_IPCNT];
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// ARP Cache definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome// UDP definitions
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// Discover() definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_MS_WINNT_RIS 1
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_NEC_ESMPRO 4
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_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// 17 through 32767 are reserved
199767f8919635c4928607450d9e0abb932109ceToomas Soome// 32768 through 65279 are for vendor use
199767f8919635c4928607450d9e0abb932109ceToomas Soome// 65280 through 65534 are reserved
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_BOOT_TYPE_PXETEST 65535
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 Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Mtftp() definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef enum {
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome// PXE Base Code Mode structure
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_ARP_ENTRY ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES];
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_ROUTE_ENTRY RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES];
199767f8919635c4928607450d9e0abb932109ceToomas Soome// PXE Base Code Interface Function definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT EFI_PXE_BASE_CODE_DISCOVER_INFO *Info OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_PXE_BASE_CODE_MTFTP_INFO *Info OPTIONAL,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort, OPTIONAL
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort, 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// PXE Base Code Protocol structure
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_INTERFACE_REVISION 0x00010000
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters;
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Call Back Definitions
199767f8919635c4928607450d9e0abb932109ceToomas Soome { 0x245dca21, 0xfb7b, 0x11d3, {0x8f, 0x01, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
199767f8919635c4928607450d9e0abb932109ceToomas Soome// Revision Number
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_PXE_BASE_CODE_CALLBACK_INTERFACE_REVISION 0x00010000
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef enum {
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef enum {
199767f8919635c4928607450d9e0abb932109ceToomas Soome#endif /* _EFIPXEBC_H */