+++ /dev/null
-/** @file\r
- EFI PXE DHCPv4 protocol definition\r
-\r
-Copyright (c) 2006 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#ifndef _PXEDHCP4_H_\r
-#define _PXEDHCP4_H_\r
-\r
-\r
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
-//\r
-// PXE DHCPv4 GUID definition\r
-//\r
-\r
-#define EFI_PXE_DHCP4_PROTOCOL_GUID \\r
- { 0x03c4e624, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x29, 0x3f, 0xc1, 0x4d } }\r
-\r
-//\r
-// Interface definition\r
-//\r
-typedef struct _EFI_PXE_DHCP4_PROTOCOL EFI_PXE_DHCP4_PROTOCOL;\r
-\r
-//\r
-// Descriptions of the DHCP version 4 header and options can be found\r
-// in RFC-2131 and RFC-2132 at www.ietf.org\r
-//\r
-#pragma pack(1)\r
-typedef struct {\r
-\r
- UINT8 op;\r
-#define BOOTP_REQUEST 1\r
-#define BOOTP_REPLY 2\r
-\r
- UINT8 htype;\r
-\r
- UINT8 hlen;\r
-\r
- UINT8 hops;\r
-\r
- UINT32 xid;\r
-\r
- UINT16 secs;\r
-#define DHCP4_INITIAL_SECONDS 4\r
-\r
- UINT16 flags;\r
-#define DHCP4_BROADCAST_FLAG 0x8000\r
-\r
- UINT32 ciaddr;\r
-\r
- UINT32 yiaddr;\r
-\r
- UINT32 siaddr;\r
-\r
- UINT32 giaddr;\r
-\r
- UINT8 chaddr[16];\r
-\r
- UINT8 sname[64];\r
-\r
- UINT8 fname[128];\r
-\r
-//\r
-// This is the minimum option length as specified in RFC-2131.\r
-// The packet must be padded out this far with DHCP4_PAD.\r
-// DHCPv4 packets are usually 576 bytes in length. This length\r
-// includes the IPv4 and UDPv4 headers but not the media header.\r
-// Note: Not all DHCP relay agents will forward DHCPv4 packets\r
-// if they are less than 384 bytes or exceed 576 bytes. Even if\r
-// the underlying hardware can handle smaller and larger packets,\r
-// many older relay agents will not accept them.\r
-//\r
- UINT32 magik;\r
-#define DHCP4_MAGIK_NUMBER 0x63825363\r
-\r
- UINT8 options[308];\r
-\r
-} DHCP4_HEADER;\r
-#pragma pack()\r
-\r
-//\r
-// DHCPv4 packet definition. Room for 576 bytes including IP and\r
-// UDP header.\r
-//\r
-#define DHCP4_MAX_PACKET_SIZE 576\r
-#define DHCP4_UDP_HEADER_SIZE 8\r
-#define DHCP4_IP_HEADER_SIZE 20\r
-\r
-#pragma pack(1)\r
-typedef union _DHCP4_PACKET {\r
- UINT32 _force_data_alignment;\r
-\r
- UINT8 raw[1500];\r
-\r
- DHCP4_HEADER dhcp4;\r
-} DHCP4_PACKET;\r
-#pragma pack()\r
-\r
-#define DHCP4_SERVER_PORT 67\r
-#define DHCP4_CLIENT_PORT 68\r
-\r
-//\r
-// DHCPv4 and PXE option numbers.\r
-//\r
-#define DHCP4_PAD 0\r
-#define DHCP4_END 255\r
-#define DHCP4_SUBNET_MASK 1\r
-#define DHCP4_TIME_OFFSET 2\r
-#define DHCP4_ROUTER_LIST 3\r
-#define DHCP4_TIME_SERVERS 4\r
-#define DHCP4_NAME_SERVERS 5\r
-#define DHCP4_DNS_SERVERS 6\r
-#define DHCP4_LOG_SERVERS 7\r
-#define DHCP4_COOKIE_SERVERS 8\r
-#define DHCP4_LPR_SREVERS 9\r
-#define DHCP4_IMPRESS_SERVERS 10\r
-#define DHCP4_RESOURCE_LOCATION_SERVERS 11\r
-#define DHCP4_HOST_NAME 12\r
-#define DHCP4_BOOT_FILE_SIZE 13\r
-#define DHCP4_DUMP_FILE 14\r
-#define DHCP4_DOMAIN_NAME 15\r
-#define DHCP4_SWAP_SERVER 16\r
-#define DHCP4_ROOT_PATH 17\r
-#define DHCP4_EXTENSION_PATH 18\r
-#define DHCP4_IP_FORWARDING 19\r
-#define DHCP4_NON_LOCAL_SOURCE_ROUTE 20\r
-#define DHCP4_POLICY_FILTER 21\r
-#define DHCP4_MAX_DATAGRAM_SIZE 22\r
-#define DHCP4_DEFAULT_TTL 23\r
-#define DHCP4_MTU_AGING_TIMEOUT 24\r
-#define DHCP4_MTU_SIZES 25\r
-#define DHCP4_MTU_TO_USE 26\r
-#define DHCP4_ALL_SUBNETS_LOCAL 27\r
-#define DHCP4_BROADCAST_ADDRESS 28\r
-#define DHCP4_PERFORM_MASK_DISCOVERY 29\r
-#define DHCP4_RESPOND_TO_MASK_REQ 30\r
-#define DHCP4_PERFORM_ROUTER_DISCOVERY 31\r
-#define DHCP4_ROUTER_SOLICIT_ADDRESS 32\r
-#define DHCP4_STATIC_ROUTER_LIST 33\r
-#define DHCP4_USE_ARP_TRAILERS 34\r
-#define DHCP4_ARP_CACHE_TIMEOUT 35\r
-#define DHCP4_ETHERNET_ENCAPSULATION 36\r
-#define DHCP4_TCP_DEFAULT_TTL 37\r
-#define DHCP4_TCP_KEEP_ALIVE_INT 38\r
-#define DHCP4_KEEP_ALIVE_GARBAGE 39\r
-#define DHCP4_NIS_DOMAIN_NAME 40\r
-#define DHCP4_NIS_SERVERS 41\r
-#define DHCP4_NTP_SERVERS 42\r
-#define DHCP4_VENDOR_SPECIFIC 43\r
-#define PXE_MTFTP_IP 1\r
-#define PXE_MTFTP_CPORT 2\r
-#define PXE_MTFTP_SPORT 3\r
-#define PXE_MTFTP_TMOUT 4\r
-#define PXE_MTFTP_DELAY 5\r
-#define PXE_DISCOVERY_CONTROL 6\r
-#define PXE_DISABLE_BROADCAST_DISCOVERY 0x01\r
-#define PXE_DISABLE_MULTICAST_DISCOVERY 0x02\r
-#define PXE_ACCEPT_ONLY_PXE_BOOT_SERVERS 0x04\r
-#define PXE_DO_NOT_PROMPT 0x08\r
-#define PXE_DISCOVERY_MCAST_ADDR 7\r
-#define PXE_BOOT_SERVERS 8\r
-#define PXE_BOOT_MENU 9\r
-#define PXE_BOOT_PROMPT 10\r
-#define PXE_MCAST_ADDRS_ALLOC 11\r
-#define PXE_CREDENTIAL_TYPES 12\r
-#define PXE_BOOT_ITEM 71\r
-#define DHCP4_NBNS_SERVERS 44\r
-#define DHCP4_NBDD_SERVERS 45\r
-#define DHCP4_NETBIOS_NODE_TYPE 46\r
-#define DHCP4_NETBIOS_SCOPE 47\r
-#define DHCP4_XWINDOW_SYSTEM_FONT_SERVERS 48\r
-#define DHCP4_XWINDOW_SYSTEM_DISPLAY_MANAGERS 49\r
-#define DHCP4_REQUESTED_IP_ADDRESS 50\r
-#define DHCP4_LEASE_TIME 51\r
-#define DHCP4_OPTION_OVERLOAD 52\r
-#define DHCP4_OVERLOAD_FNAME 1\r
-#define DHCP4_OVERLOAD_SNAME 2\r
-#define DHCP4_OVERLOAD_FNAME_AND_SNAME 3\r
-#define DHCP4_MESSAGE_TYPE 53\r
-#define DHCP4_MESSAGE_TYPE_DISCOVER 1\r
-#define DHCP4_MESSAGE_TYPE_OFFER 2\r
-#define DHCP4_MESSAGE_TYPE_REQUEST 3\r
-#define DHCP4_MESSAGE_TYPE_DECLINE 4\r
-#define DHCP4_MESSAGE_TYPE_ACK 5\r
-#define DHCP4_MESSAGE_TYPE_NAK 6\r
-#define DHCP4_MESSAGE_TYPE_RELEASE 7\r
-#define DHCP4_MESSAGE_TYPE_INFORM 8\r
-#define DHCP4_SERVER_IDENTIFIER 54\r
-#define DHCP4_PARAMETER_REQUEST_LIST 55\r
-#define DHCP4_ERROR_MESSAGE 56\r
-#define DHCP4_MAX_MESSAGE_SIZE 57\r
-#define DHCP4_DEFAULT_MAX_MESSAGE_SIZE 576\r
-#define DHCP4_RENEWAL_TIME 58\r
-#define DHCP4_REBINDING_TIME 59\r
-#define DHCP4_CLASS_IDENTIFIER 60\r
-#define DHCP4_CLIENT_IDENTIFIER 61\r
-#define DHCP4_NISPLUS_DOMAIN_NAME 64\r
-#define DHCP4_NISPLUS_SERVERS 65\r
-#define DHCP4_TFTP_SERVER_NAME 66\r
-#define DHCP4_BOOTFILE 67\r
-#define DHCP4_MOBILE_IP_HOME_AGENTS 68\r
-#define DHCP4_SMPT_SERVERS 69\r
-#define DHCP4_POP3_SERVERS 70\r
-#define DHCP4_NNTP_SERVERS 71\r
-#define DHCP4_WWW_SERVERS 72\r
-#define DHCP4_FINGER_SERVERS 73\r
-#define DHCP4_IRC_SERVERS 74\r
-#define DHCP4_STREET_TALK_SERVERS 75\r
-#define DHCP4_STREET_TALK_DIR_ASSIST_SERVERS 76\r
-#define DHCP4_NDS_SERVERS 85\r
-#define DHCP4_NDS_TREE_NAME 86\r
-#define DHCP4_NDS_CONTEXT 87\r
-#define DHCP4_SYSTEM_ARCHITECTURE 93\r
-#define DHCP4_NETWORK_ARCHITECTURE 94\r
-#define DHCP4_PLATFORM_ID 97\r
-\r
-#pragma pack(1)\r
-typedef struct {\r
- UINT8 op;\r
- UINT8 len;\r
- UINT8 data[1];\r
-} DHCP4_OP;\r
-#pragma pack()\r
-\r
-\r
-typedef struct {\r
- DHCP4_PACKET Discover;\r
- DHCP4_PACKET Offer;\r
- DHCP4_PACKET Request;\r
- DHCP4_PACKET AckNak;\r
- BOOLEAN SetupCompleted;\r
- BOOLEAN InitCompleted;\r
- BOOLEAN SelectCompleted;\r
- BOOLEAN IsBootp;\r
- BOOLEAN IsAck;\r
-} EFI_PXE_DHCP4_DATA;\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_DHCP4_RUN)(\r
- IN EFI_PXE_DHCP4_PROTOCOL *This,\r
- IN OPTIONAL UINTN OpLen,\r
- IN OPTIONAL VOID *OpList\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_DHCP4_SETUP)(\r
- IN EFI_PXE_DHCP4_PROTOCOL *This,\r
- IN OPTIONAL EFI_PXE_DHCP4_DATA * NewData\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_DHCP4_INIT)(\r
- IN EFI_PXE_DHCP4_PROTOCOL *This,\r
- IN UINTN SecondsTimeout,\r
- OUT UINTN *Offers,\r
- OUT DHCP4_PACKET **OfferList\r
- );\r
-\r
-#define DHCP4_MIN_SECONDS 1\r
-#define DHCP4_MAX_SECONDS 60\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_DHCP4_SELECT)(\r
- IN EFI_PXE_DHCP4_PROTOCOL *This,\r
- IN UINTN SecondsTimeout,\r
- IN DHCP4_PACKET * offer\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_DHCP4_RENEW)(\r
- IN EFI_PXE_DHCP4_PROTOCOL *This,\r
- UINTN seconds_timeout\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_DHCP4_REBIND)(\r
- IN EFI_PXE_DHCP4_PROTOCOL *This,\r
- UINTN seconds_timeout\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_PXE_DHCP4_RELEASE)(\r
- IN EFI_PXE_DHCP4_PROTOCOL * This\r
- );\r
-\r
-#define EFI_PXE_DHCP4_PROTOCOL_REVISION 0x00010000\r
-\r
-struct _EFI_PXE_DHCP4_PROTOCOL {\r
- UINT64 Revision;\r
- EFI_PXE_DHCP4_RUN Run;\r
- EFI_PXE_DHCP4_SETUP Setup;\r
- EFI_PXE_DHCP4_INIT Init;\r
- EFI_PXE_DHCP4_SELECT Select;\r
- EFI_PXE_DHCP4_RENEW Renew;\r
- EFI_PXE_DHCP4_REBIND Rebind;\r
- EFI_PXE_DHCP4_RELEASE Release;\r
- EFI_PXE_DHCP4_DATA *Data;\r
-};\r
-\r
-extern EFI_GUID gEfiPxeDhcp4ProtocolGuid;\r
-\r
-#endif\r
+++ /dev/null
-/** @file\r
- EFI PXE DHCP4 Callback protocol definition.\r
-\r
-Copyright (c) 2006 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#ifndef __PXE_DHCP4CALLBACK_H__\r
-#define __PXE_DHCP4CALLBACK_H__\r
-\r
-#include <Protocol/PxeDhcp4.h>\r
-\r
-#define EFI_PXE_DHCP4_CALLBACK_PROTOCOL_GUID \\r
-{ 0xc1544c01, 0x92a4, 0x4198, {0x8a, 0x84, 0x77, 0x85, 0x83, 0xc2, 0x36, 0x21 } }\r
-\r
-#define EFI_PXE_DHCP4_CALLBACK_INTERFACE_REVISION 0x00010000\r
-\r
-typedef struct _EFI_PXE_DHCP4_CALLBACK_PROTOCOL EFI_PXE_DHCP4_CALLBACK_PROTOCOL;\r
-\r
-typedef enum {\r
- EFI_PXE_DHCP4_FUNCTION_FIRST,\r
- EFI_PXE_DHCP4_FUNCTION_INIT,\r
- EFI_PXE_DHCP4_FUNCTION_SELECT,\r
- EFI_PXE_DHCP4_FUNCTION_RENEW,\r
- EFI_PXE_DHCP4_FUNCTION_REBIND,\r
- EFI_PXE_DHCP4_FUNCTION_LAST\r
-} EFI_PXE_DHCP4_FUNCTION;\r
-\r
-typedef enum {\r
- EFI_PXE_DHCP4_CALLBACK_STATUS_FIRST,\r
- EFI_PXE_DHCP4_CALLBACK_STATUS_ABORT,\r
- EFI_PXE_DHCP4_CALLBACK_STATUS_IGNORE_ABORT,\r
- EFI_PXE_DHCP4_CALLBACK_STATUS_KEEP_ABORT,\r
- EFI_PXE_DHCP4_CALLBACK_STATUS_CONTINUE,\r
- EFI_PXE_DHCP4_CALLBACK_STATUS_IGNORE_CONTINUE,\r
- EFI_PXE_DHCP4_CALLBACK_STATUS_KEEP_CONTINUE,\r
- EFI_PXE_DHCP4_CALLBACK_STATUS_LAST\r
-} EFI_PXE_DHCP4_CALLBACK_STATUS;\r
-\r
-typedef\r
-EFI_PXE_DHCP4_CALLBACK_STATUS\r
-(EFIAPI *EFI_PXE_DHCP4_CALLBACK)(\r
- IN EFI_PXE_DHCP4_PROTOCOL *This,\r
- IN EFI_PXE_DHCP4_FUNCTION Function,\r
- IN UINT32 PacketLen,\r
- IN DHCP4_PACKET *Packet OPTIONAL\r
- );\r
-\r
-struct _EFI_PXE_DHCP4_CALLBACK_PROTOCOL {\r
- UINT64 Revision;\r
- EFI_PXE_DHCP4_CALLBACK Callback;\r
-};\r
-\r
-extern EFI_GUID gEfiPxeDhcp4CallbackProtocolGuid;\r
-\r
-#endif\r
-\r
+++ /dev/null
-/** @file\r
-\r
- This file defines EFI Transmission Control Protocol.\r
-\r
-Copyright (c) 2004 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-\r
-#ifndef __EFI_TCP_H__\r
-#define __EFI_TCP_H__\r
-\r
-\r
-#include <Protocol/PxeBaseCode.h>\r
-\r
-///\r
-/// EFI Transmission Control Protocol\r
-///\r
-#define EFI_TCP_PROTOCOL_GUID \\r
- { 0x02b3d5f2, 0xac28, 0x11d3, { 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d }}\r
-\r
-\r
-typedef UINT16 EFI_PXE_BASE_CODE_TCP_PORT;\r
-\r
-//\r
-// Port Receive Filter definitions\r
-//\r
-#define EFI_PXE_BASE_CODE_MAX_PORTCNT 8\r
-typedef struct {\r
- UINT8 Filters;\r
- UINT8 IpCnt;\r
- UINT16 reserved;\r
- EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_PORTCNT];\r
-} EFI_TCP_PORT_FILTER;\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCP_WRITE)(\r
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,\r
- IN UINT16 OpFlags,\r
- IN UINT16 *UrgentPointer,\r
- IN UINT32 *SequenceNumber,\r
- IN UINT32 *AckNumber,\r
- IN UINT16 *HlenResCode,\r
- IN UINT16 *Window,\r
- IN EFI_IP_ADDRESS *DestIp,\r
- IN UINT16 *DestPort,\r
- IN EFI_IP_ADDRESS *GatewayIp, OPTIONAL\r
- IN EFI_IP_ADDRESS *SrcIp, OPTIONAL\r
- IN UINT16 *SrcPort, OPTIONAL\r
- IN UINTN *HeaderSize, OPTIONAL\r
- IN VOID *HeaderPtr, OPTIONAL\r
- IN UINTN *BufferSize,\r
- IN VOID *BufferPtr\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCP_READ)(\r
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,\r
- IN UINT16 OpFlags,\r
- IN OUT EFI_IP_ADDRESS *DestIp, OPTIONAL\r
- IN OUT UINT16 *DestPort, OPTIONAL\r
- IN OUT EFI_IP_ADDRESS *SrcIp, OPTIONAL\r
- IN OUT UINT16 *SrcPort, OPTIONAL\r
- IN UINTN *HeaderSize, OPTIONAL\r
- IN VOID *HeaderPtr, OPTIONAL\r
- IN OUT UINTN *BufferSize,\r
- IN VOID *BufferPtr\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCP_SET_PORT_FILTER)(\r
- IN EFI_PXE_BASE_CODE_PROTOCOL *This,\r
- IN EFI_TCP_PORT_FILTER *NewFilter\r
- );\r
-\r
-///\r
-/// TCP Protocol structure\r
-///\r
-typedef struct _EFI_TCP_PROTOCOL {\r
- EFI_TCP_WRITE TcpWrite;\r
- EFI_TCP_READ TcpRead;\r
- EFI_TCP_SET_PORT_FILTER SetPortFilter;\r
-} EFI_TCP_PROTOCOL;\r
-\r
-extern EFI_GUID gEfiTcpProtocolGuid;\r
-\r
-#endif\r
-\r