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