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