]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/IScsiDxe/IScsiImpl.h
MdeModulePkg: Remove redundant library classes and GUIDs
[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
29\r
6a690e23 30#include "IScsiCommon.h"\r
31#include "IScsiDriver.h"\r
d0cca731 32#include "IScsiInitiatorName.h"\r
b263ee17 33#include "ComponentName.h"\r
6a690e23 34#include "IScsiConfigNVDataStruc.h"\r
35#include "IScsiExtScsiPassThru.h"\r
36#include "IScsiProto.h"\r
fa6fb82a 37#include "IScsiMisc.h"\r
6a690e23 38#include "IScsiCHAP.h"\r
fa6fb82a 39#include "IScsiConfig.h"\r
6a690e23 40#include "IScsiDhcp.h"\r
41#include "IScsiTcp4Io.h"\r
42#include "IScsiIbft.h"\r
fa6fb82a 43\r
44\r
f3f2e05d 45#define ISCSI_SESSION_SIGNATURE SIGNATURE_32 ('I', 'S', 'S', 'N')\r
6a690e23 46\r
69b0882d 47struct _ISCSI_SESSION {\r
6a690e23 48 UINT32 Signature;\r
49\r
50 ISCSI_SESSION_CONFIG_DATA ConfigData;\r
51 ISCSI_CHAP_AUTH_DATA AuthData;\r
52\r
53 CHAR8 InitiatorName[ISCSI_NAME_MAX_SIZE];\r
54 UINTN InitiatorNameLength;\r
55 UINT8 State;\r
56\r
a78d176c 57 UINT8 Isid[6];\r
58 UINT16 Tsih;\r
6a690e23 59\r
60 UINT32 CmdSN;\r
61 UINT32 ExpCmdSN;\r
62 UINT32 MaxCmdSN;\r
63\r
64 UINT32 InitiatorTaskTag;\r
a78d176c 65 UINT16 NextCid;\r
6a690e23 66\r
e48e37fc 67 LIST_ENTRY Conns;\r
6a690e23 68 UINT32 NumConns;\r
69\r
e48e37fc 70 LIST_ENTRY TcbList;\r
6a690e23 71\r
72 //\r
73 // session-wide parameters\r
74 //\r
75 UINT16 TargetPortalGroupTag;\r
76 UINT32 MaxConnections;\r
77 BOOLEAN InitialR2T;\r
78 BOOLEAN ImmediateData;\r
79 UINT32 MaxBurstLength;\r
80 UINT32 FirstBurstLength;\r
81 UINT32 DefaultTime2Wait;\r
82 UINT32 DefaultTime2Retain;\r
83 UINT16 MaxOutstandingR2T;\r
84 BOOLEAN DataPDUInOrder;\r
85 BOOLEAN DataSequenceInOrder;\r
86 UINT8 ErrorRecoveryLevel;\r
69b0882d 87};\r
6a690e23 88\r
f3f2e05d 89#define ISCSI_CONNECTION_SIGNATURE SIGNATURE_32 ('I', 'S', 'C', 'N')\r
6a690e23 90\r
69b0882d 91struct _ISCSI_CONNECTION {\r
6a690e23 92 UINT32 Signature;\r
e48e37fc 93 LIST_ENTRY Link;\r
6a690e23 94\r
95 EFI_EVENT TimeoutEvent;\r
96\r
97 ISCSI_SESSION *Session;\r
98\r
99 UINT8 State;\r
100 UINT8 CurrentStage;\r
101 UINT8 NextStage;\r
102\r
103 UINT8 CHAPStep;\r
104\r
105 BOOLEAN PartialReqSent;\r
106 BOOLEAN PartialRspRcvd;\r
107\r
108 BOOLEAN TransitInitiated;\r
109\r
a78d176c 110 UINT16 Cid;\r
6a690e23 111 UINT32 ExpStatSN;\r
112\r
113 //\r
114 // queues...\r
115 //\r
116 NET_BUF_QUEUE RspQue;\r
117\r
118 TCP4_IO Tcp4Io;\r
119\r
120 //\r
121 // connection-only parameters\r
122 //\r
123 UINT32 MaxRecvDataSegmentLength;\r
124 ISCSI_DIGEST_TYPE HeaderDigest;\r
125 ISCSI_DIGEST_TYPE DataDigest;\r
69b0882d 126};\r
6a690e23 127\r
f3f2e05d 128#define ISCSI_DRIVER_DATA_SIGNATURE SIGNATURE_32 ('I', 'S', 'D', 'A')\r
6a690e23 129\r
130#define ISCSI_DRIVER_DATA_FROM_EXT_SCSI_PASS_THRU(PassThru) \\r
131 CR ( \\r
132 PassThru, \\r
133 ISCSI_DRIVER_DATA, \\r
134 IScsiExtScsiPassThru, \\r
135 ISCSI_DRIVER_DATA_SIGNATURE \\r
136 )\r
137#define ISCSI_DRIVER_DATA_FROM_IDENTIFIER(Identifier) \\r
138 CR ( \\r
139 Identifier, \\r
140 ISCSI_DRIVER_DATA, \\r
141 IScsiIdentifier, \\r
142 ISCSI_DRIVER_DATA_SIGNATURE \\r
143 )\r
144#define ISCSI_DRIVER_DATA_FROM_SESSION(s) \\r
145 CR ( \\r
146 s, \\r
147 ISCSI_DRIVER_DATA, \\r
148 Session, \\r
149 ISCSI_DRIVER_DATA_SIGNATURE \\r
150 )\r
151\r
69b0882d 152struct _ISCSI_DRIVER_DATA {\r
6a690e23 153 UINT32 Signature;\r
154 EFI_HANDLE Image;\r
155 EFI_HANDLE Controller;\r
156 ISCSI_PRIVATE_PROTOCOL IScsiIdentifier;\r
fd627b16 157 EFI_HANDLE ChildHandle;\r
6a690e23 158 EFI_EVENT ExitBootServiceEvent;\r
159\r
160 EFI_EXT_SCSI_PASS_THRU_PROTOCOL IScsiExtScsiPassThru;\r
161 EFI_EXT_SCSI_PASS_THRU_MODE ExtScsiPassThruMode;\r
162 EFI_HANDLE ExtScsiPassThruHandle;\r
163 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
164\r
165 ISCSI_SESSION Session;\r
69b0882d 166};\r
6a690e23 167\r
168#endif\r