]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Include/Protocol/Tcp.h
Import ArpDxe, Dhcp4Dxe, Ip4Dxe, Mtftp4Dxe, PxeBcDxe and PxeDhcp4Dxe.
[mirror_edk2.git] / MdeModulePkg / Include / Protocol / Tcp.h
1 /*++
2
3 Copyright (c) 2004, Intel Corporation
4 All rights reserved. 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 <Protocol/PxeBaseCode.h>
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
41 typedef UINT16 EFI_PXE_BASE_CODE_TCP_PORT;
42
43 //
44 // Port Receive Filter definitions
45 //
46 #define EFI_PXE_BASE_CODE_MAX_PORTCNT 8
47 typedef struct {
48 UINT8 Filters;
49 UINT8 IpCnt;
50 UINT16 reserved;
51 EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_PORTCNT];
52 } EFI_TCP_PORT_FILTER;
53
54 typedef
55 EFI_STATUS
56 (EFIAPI *EFI_TCP_WRITE) (
57 IN EFI_PXE_BASE_CODE_PROTOCOL *This,
58 IN UINT16 OpFlags,
59 IN UINT16 *UrgentPointer,
60 IN UINT32 *SequenceNumber,
61 IN UINT32 *AckNumber,
62 IN UINT16 *HlenResCode,
63 IN UINT16 *Window,
64 IN EFI_IP_ADDRESS *DestIp,
65 IN UINT16 *DestPort,
66 IN EFI_IP_ADDRESS *GatewayIp, OPTIONAL
67 IN EFI_IP_ADDRESS *SrcIp, OPTIONAL
68 IN UINT16 *SrcPort, OPTIONAL
69 IN UINTN *HeaderSize, OPTIONAL
70 IN VOID *HeaderPtr, OPTIONAL
71 IN UINTN *BufferSize,
72 IN VOID *BufferPtr
73 );
74
75 typedef
76 EFI_STATUS
77 (EFIAPI *EFI_TCP_READ) (
78 IN EFI_PXE_BASE_CODE_PROTOCOL *This,
79 IN UINT16 OpFlags,
80 IN OUT EFI_IP_ADDRESS *DestIp, OPTIONAL
81 IN OUT UINT16 *DestPort, OPTIONAL
82 IN OUT EFI_IP_ADDRESS *SrcIp, OPTIONAL
83 IN OUT UINT16 *SrcPort, OPTIONAL
84 IN UINTN *HeaderSize, OPTIONAL
85 IN VOID *HeaderPtr, OPTIONAL
86 IN OUT UINTN *BufferSize,
87 IN VOID *BufferPtr
88 );
89
90 typedef
91 EFI_STATUS
92 (EFIAPI *EFI_TCP_SET_PORT_FILTER) (
93 IN EFI_PXE_BASE_CODE_PROTOCOL *This,
94 IN EFI_TCP_PORT_FILTER *NewFilter
95 );
96
97 //
98 // TCP Protocol structure
99 //
100 typedef struct _EFI_TCP_PROTOCOL {
101 EFI_TCP_WRITE TcpWrite;
102 EFI_TCP_READ TcpRead;
103 EFI_TCP_SET_PORT_FILTER SetPortFilter;
104 } EFI_TCP_PROTOCOL;
105
106 extern EFI_GUID gEfiTcpProtocolGuid;
107
108 #endif /* _EFITCP_H */