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