2 The header file of IScsiImpl.c
4 Copyright (c) 2004 - 2008, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 The header file of IScsiImpl.c
22 #ifndef _ISCSI_IMPL_H_
23 #define _ISCSI_IMPL_H_
27 #include <Library/NetLib.h>
28 #include <Library/PrintLib.h>
29 #include <Library/UefiRuntimeServicesTableLib.h>
30 #include "IScsiCommon.h"
31 #include "IScsiDriver.h"
32 #include "IScsiConfigNVDataStruc.h"
33 #include "IScsiExtScsiPassThru.h"
34 #include "IScsiProto.h"
35 #include "IScsiCHAP.h"
36 #include "IScsiDhcp.h"
37 #include "IScsiTcp4Io.h"
38 #include "IScsiIbft.h"
39 #include "IScsiMisc.h"
40 #include "IScsiConfig.h"
42 #define ISCSI_SESSION_SIGNATURE EFI_SIGNATURE_32 ('I', 'S', 'S', 'N')
44 struct _ISCSI_SESSION
{
47 ISCSI_SESSION_CONFIG_DATA ConfigData
;
48 ISCSI_CHAP_AUTH_DATA AuthData
;
50 CHAR8 InitiatorName
[ISCSI_NAME_MAX_SIZE
];
51 UINTN InitiatorNameLength
;
61 UINT32 InitiatorTaskTag
;
70 // session-wide parameters
72 UINT16 TargetPortalGroupTag
;
73 UINT32 MaxConnections
;
75 BOOLEAN ImmediateData
;
76 UINT32 MaxBurstLength
;
77 UINT32 FirstBurstLength
;
78 UINT32 DefaultTime2Wait
;
79 UINT32 DefaultTime2Retain
;
80 UINT16 MaxOutstandingR2T
;
81 BOOLEAN DataPDUInOrder
;
82 BOOLEAN DataSequenceInOrder
;
83 UINT8 ErrorRecoveryLevel
;
86 #define ISCSI_CONNECTION_SIGNATURE EFI_SIGNATURE_32 ('I', 'S', 'C', 'N')
88 struct _ISCSI_CONNECTION
{
92 EFI_EVENT TimeoutEvent
;
94 ISCSI_SESSION
*Session
;
102 BOOLEAN PartialReqSent
;
103 BOOLEAN PartialRspRcvd
;
105 BOOLEAN TransitInitiated
;
113 NET_BUF_QUEUE RspQue
;
118 // connection-only parameters
120 UINT32 MaxRecvDataSegmentLength
;
121 ISCSI_DIGEST_TYPE HeaderDigest
;
122 ISCSI_DIGEST_TYPE DataDigest
;
125 #define ISCSI_DRIVER_DATA_SIGNATURE EFI_SIGNATURE_32 ('I', 'S', 'D', 'A')
127 #define ISCSI_DRIVER_DATA_FROM_EXT_SCSI_PASS_THRU(PassThru) \
131 IScsiExtScsiPassThru, \
132 ISCSI_DRIVER_DATA_SIGNATURE \
134 #define ISCSI_DRIVER_DATA_FROM_IDENTIFIER(Identifier) \
139 ISCSI_DRIVER_DATA_SIGNATURE \
141 #define ISCSI_DRIVER_DATA_FROM_SESSION(s) \
146 ISCSI_DRIVER_DATA_SIGNATURE \
149 struct _ISCSI_DRIVER_DATA
{
152 EFI_HANDLE Controller
;
153 ISCSI_PRIVATE_PROTOCOL IScsiIdentifier
;
155 EFI_EVENT ExitBootServiceEvent
;
157 EFI_EXT_SCSI_PASS_THRU_PROTOCOL IScsiExtScsiPassThru
;
158 EFI_EXT_SCSI_PASS_THRU_MODE ExtScsiPassThruMode
;
159 EFI_HANDLE ExtScsiPassThruHandle
;
160 EFI_DEVICE_PATH_PROTOCOL
*DevicePath
;
162 ISCSI_SESSION Session
;