]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/IScsiDxe/IScsiImpl.h
MdeModulePkg/Ip4Dxe: Add Ip/Netmask pair check for Ip4Config2
[mirror_edk2.git] / MdeModulePkg / Universal / Network / IScsiDxe / IScsiImpl.h
CommitLineData
12618416 1/** @file\r
fa6fb82a 2 The header file of IScsiImpl.c.\r
6a690e23 3\r
ac6c3d90 4Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>\r
e5eed7d3 5This program and the accompanying materials\r
7a444476 6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
6a690e23 12\r
12618416 13**/\r
6a690e23 14\r
15#ifndef _ISCSI_IMPL_H_\r
16#define _ISCSI_IMPL_H_\r
17\r
19034421 18#include <Uefi.h>\r
19\r
ac6c3d90
ZL
20#include <IndustryStandard/Dhcp.h>\r
21\r
cfb1461b 22#include <Library/BaseMemoryLib.h>\r
23#include <Library/MemoryAllocationLib.h>\r
6a690e23 24#include <Library/NetLib.h>\r
25#include <Library/PrintLib.h>\r
26#include <Library/UefiRuntimeServicesTableLib.h>\r
01a5c994 27\r
28#include <Guid/EventGroup.h>\r
54fbbbd7 29#include <Guid/Acpi.h>\r
01a5c994 30\r
6a690e23 31#include "IScsiCommon.h"\r
32#include "IScsiDriver.h"\r
d0cca731 33#include "IScsiInitiatorName.h"\r
b263ee17 34#include "ComponentName.h"\r
6a690e23 35#include "IScsiConfigNVDataStruc.h"\r
36#include "IScsiExtScsiPassThru.h"\r
37#include "IScsiProto.h"\r
fa6fb82a 38#include "IScsiMisc.h"\r
6a690e23 39#include "IScsiCHAP.h"\r
fa6fb82a 40#include "IScsiConfig.h"\r
6a690e23 41#include "IScsiDhcp.h"\r
42#include "IScsiTcp4Io.h"\r
43#include "IScsiIbft.h"\r
fa6fb82a 44\r
45\r
f3f2e05d 46#define ISCSI_SESSION_SIGNATURE SIGNATURE_32 ('I', 'S', 'S', 'N')\r
6a690e23 47\r
69b0882d 48struct _ISCSI_SESSION {\r
6a690e23 49 UINT32 Signature;\r
50\r
51 ISCSI_SESSION_CONFIG_DATA ConfigData;\r
52 ISCSI_CHAP_AUTH_DATA AuthData;\r
53\r
54 CHAR8 InitiatorName[ISCSI_NAME_MAX_SIZE];\r
55 UINTN InitiatorNameLength;\r
56 UINT8 State;\r
57\r
a78d176c 58 UINT8 Isid[6];\r
59 UINT16 Tsih;\r
6a690e23 60\r
61 UINT32 CmdSN;\r
62 UINT32 ExpCmdSN;\r
63 UINT32 MaxCmdSN;\r
64\r
65 UINT32 InitiatorTaskTag;\r
a78d176c 66 UINT16 NextCid;\r
6a690e23 67\r
e48e37fc 68 LIST_ENTRY Conns;\r
6a690e23 69 UINT32 NumConns;\r
70\r
e48e37fc 71 LIST_ENTRY TcbList;\r
6a690e23 72\r
73 //\r
74 // session-wide parameters\r
75 //\r
76 UINT16 TargetPortalGroupTag;\r
77 UINT32 MaxConnections;\r
78 BOOLEAN InitialR2T;\r
79 BOOLEAN ImmediateData;\r
80 UINT32 MaxBurstLength;\r
81 UINT32 FirstBurstLength;\r
82 UINT32 DefaultTime2Wait;\r
83 UINT32 DefaultTime2Retain;\r
84 UINT16 MaxOutstandingR2T;\r
85 BOOLEAN DataPDUInOrder;\r
86 BOOLEAN DataSequenceInOrder;\r
87 UINT8 ErrorRecoveryLevel;\r
69b0882d 88};\r
6a690e23 89\r
f3f2e05d 90#define ISCSI_CONNECTION_SIGNATURE SIGNATURE_32 ('I', 'S', 'C', 'N')\r
6a690e23 91\r
69b0882d 92struct _ISCSI_CONNECTION {\r
6a690e23 93 UINT32 Signature;\r
e48e37fc 94 LIST_ENTRY Link;\r
6a690e23 95\r
96 EFI_EVENT TimeoutEvent;\r
97\r
98 ISCSI_SESSION *Session;\r
99\r
100 UINT8 State;\r
101 UINT8 CurrentStage;\r
102 UINT8 NextStage;\r
103\r
104 UINT8 CHAPStep;\r
105\r
106 BOOLEAN PartialReqSent;\r
107 BOOLEAN PartialRspRcvd;\r
108\r
109 BOOLEAN TransitInitiated;\r
110\r
a78d176c 111 UINT16 Cid;\r
6a690e23 112 UINT32 ExpStatSN;\r
113\r
114 //\r
115 // queues...\r
116 //\r
117 NET_BUF_QUEUE RspQue;\r
118\r
119 TCP4_IO Tcp4Io;\r
120\r
121 //\r
122 // connection-only parameters\r
123 //\r
124 UINT32 MaxRecvDataSegmentLength;\r
125 ISCSI_DIGEST_TYPE HeaderDigest;\r
126 ISCSI_DIGEST_TYPE DataDigest;\r
69b0882d 127};\r
6a690e23 128\r
f3f2e05d 129#define ISCSI_DRIVER_DATA_SIGNATURE SIGNATURE_32 ('I', 'S', 'D', 'A')\r
6a690e23 130\r
131#define ISCSI_DRIVER_DATA_FROM_EXT_SCSI_PASS_THRU(PassThru) \\r
132 CR ( \\r
133 PassThru, \\r
134 ISCSI_DRIVER_DATA, \\r
135 IScsiExtScsiPassThru, \\r
136 ISCSI_DRIVER_DATA_SIGNATURE \\r
137 )\r
138#define ISCSI_DRIVER_DATA_FROM_IDENTIFIER(Identifier) \\r
139 CR ( \\r
140 Identifier, \\r
141 ISCSI_DRIVER_DATA, \\r
142 IScsiIdentifier, \\r
143 ISCSI_DRIVER_DATA_SIGNATURE \\r
144 )\r
145#define ISCSI_DRIVER_DATA_FROM_SESSION(s) \\r
146 CR ( \\r
147 s, \\r
148 ISCSI_DRIVER_DATA, \\r
149 Session, \\r
150 ISCSI_DRIVER_DATA_SIGNATURE \\r
151 )\r
152\r
69b0882d 153struct _ISCSI_DRIVER_DATA {\r
6a690e23 154 UINT32 Signature;\r
155 EFI_HANDLE Image;\r
156 EFI_HANDLE Controller;\r
157 ISCSI_PRIVATE_PROTOCOL IScsiIdentifier;\r
fd627b16 158 EFI_HANDLE ChildHandle;\r
6a690e23 159 EFI_EVENT ExitBootServiceEvent;\r
160\r
161 EFI_EXT_SCSI_PASS_THRU_PROTOCOL IScsiExtScsiPassThru;\r
162 EFI_EXT_SCSI_PASS_THRU_MODE ExtScsiPassThruMode;\r
163 EFI_HANDLE ExtScsiPassThruHandle;\r
164 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
165\r
166 ISCSI_SESSION Session;\r
69b0882d 167};\r
6a690e23 168\r
169#endif\r