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