1 /*++ 2 3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR> 4 This program and the accompanying materials 5 are licensed and made available under the terms and conditions of the BSD License 6 which accompanies this distribution. The full text of the license may be found at 7 http://opensource.org/licenses/bsd-license.php 8 9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12 Module Name: 13 14 tcp.h 15 16 Abstract: 17 18 EFI Transmission Control Protocol 19 20 21 22 Revision History 23 24 --*/ 25 26 27 #ifndef _EFITCP_H 28 #define _EFITCP_H 29 30 31 #include EFI_PROTOCOL_DEFINITION(PxeBaseCode) 32 33 // 34 // PXE Base Code protocol 35 // 36 37 #define EFI_TCP_PROTOCOL_GUID \ 38 { 0x02b3d5f2, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } 39 40 EFI_FORWARD_DECLARATION (EFI_TCP_PROTOCOL); 41 42 43 typedef UINT16 EFI_PXE_BASE_CODE_TCP_PORT; 44 45 // 46 // Port Receive Filter definitions 47 // 48 #define EFI_PXE_BASE_CODE_MAX_PORTCNT 8 49 typedef struct { 50 UINT8 Filters; 51 UINT8 IpCnt; 52 UINT16 reserved; 53 EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_PORTCNT]; 54 } EFI_TCP_PORT_FILTER; 55 56 typedef 57 EFI_STATUS 58 (EFIAPI *EFI_TCP_WRITE) ( 59 IN EFI_PXE_BASE_CODE_PROTOCOL *This, 60 IN UINT16 OpFlags, 61 IN UINT16 *UrgentPointer, 62 IN UINT32 *SequenceNumber, 63 IN UINT32 *AckNumber, 64 IN UINT16 *HlenResCode, 65 IN UINT16 *Window, 66 IN EFI_IP_ADDRESS *DestIp, 67 IN UINT16 *DestPort, 68 IN EFI_IP_ADDRESS *GatewayIp, OPTIONAL 69 IN EFI_IP_ADDRESS *SrcIp, OPTIONAL 70 IN UINT16 *SrcPort, OPTIONAL 71 IN UINTN *HeaderSize, OPTIONAL 72 IN VOID *HeaderPtr, OPTIONAL 73 IN UINTN *BufferSize, 74 IN VOID *BufferPtr 75 ); 76 77 typedef 78 EFI_STATUS 79 (EFIAPI *EFI_TCP_READ) ( 80 IN EFI_PXE_BASE_CODE_PROTOCOL *This, 81 IN UINT16 OpFlags, 82 IN OUT EFI_IP_ADDRESS *DestIp, OPTIONAL 83 IN OUT UINT16 *DestPort, OPTIONAL 84 IN OUT EFI_IP_ADDRESS *SrcIp, OPTIONAL 85 IN OUT UINT16 *SrcPort, OPTIONAL 86 IN UINTN *HeaderSize, OPTIONAL 87 IN VOID *HeaderPtr, OPTIONAL 88 IN OUT UINTN *BufferSize, 89 IN VOID *BufferPtr 90 ); 91 92 typedef 93 EFI_STATUS 94 (EFIAPI *EFI_TCP_SET_PORT_FILTER) ( 95 IN EFI_PXE_BASE_CODE_PROTOCOL *This, 96 IN EFI_TCP_PORT_FILTER *NewFilter 97 ); 98 99 // 100 // TCP Protocol structure 101 // 102 struct _EFI_TCP_PROTOCOL { 103 EFI_TCP_WRITE TcpWrite; 104 EFI_TCP_READ TcpRead; 105 EFI_TCP_SET_PORT_FILTER SetPortFilter; 106 }; 107 108 extern EFI_GUID gEfiTcpProtocolGuid; 109 110 #endif /* _EFITCP_H */ 111