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