+++ /dev/null
-/** @file\r
- The header file of IScsiImpl.c.\r
-\r
-Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#ifndef _ISCSI_IMPL_H_\r
-#define _ISCSI_IMPL_H_\r
-\r
-#include <Uefi.h>\r
-\r
-#include <IndustryStandard/Dhcp.h>\r
-\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/NetLib.h>\r
-#include <Library/PrintLib.h>\r
-#include <Library/UefiRuntimeServicesTableLib.h>\r
-\r
-#include <Guid/EventGroup.h>\r
-\r
-#include "IScsiCommon.h"\r
-#include "IScsiDriver.h"\r
-#include "IScsiInitiatorName.h"\r
-#include "ComponentName.h"\r
-#include "IScsiConfigNVDataStruc.h"\r
-#include "IScsiExtScsiPassThru.h"\r
-#include "IScsiProto.h"\r
-#include "IScsiMisc.h"\r
-#include "IScsiCHAP.h"\r
-#include "IScsiConfig.h"\r
-#include "IScsiDhcp.h"\r
-#include "IScsiTcp4Io.h"\r
-#include "IScsiIbft.h"\r
-\r
-\r
-#define ISCSI_SESSION_SIGNATURE SIGNATURE_32 ('I', 'S', 'S', 'N')\r
-\r
-struct _ISCSI_SESSION {\r
- UINT32 Signature;\r
-\r
- ISCSI_SESSION_CONFIG_DATA ConfigData;\r
- ISCSI_CHAP_AUTH_DATA AuthData;\r
-\r
- CHAR8 InitiatorName[ISCSI_NAME_MAX_SIZE];\r
- UINTN InitiatorNameLength;\r
- UINT8 State;\r
-\r
- UINT8 Isid[6];\r
- UINT16 Tsih;\r
-\r
- UINT32 CmdSN;\r
- UINT32 ExpCmdSN;\r
- UINT32 MaxCmdSN;\r
-\r
- UINT32 InitiatorTaskTag;\r
- UINT16 NextCid;\r
-\r
- LIST_ENTRY Conns;\r
- UINT32 NumConns;\r
-\r
- LIST_ENTRY TcbList;\r
-\r
- //\r
- // session-wide parameters\r
- //\r
- UINT16 TargetPortalGroupTag;\r
- UINT32 MaxConnections;\r
- BOOLEAN InitialR2T;\r
- BOOLEAN ImmediateData;\r
- UINT32 MaxBurstLength;\r
- UINT32 FirstBurstLength;\r
- UINT32 DefaultTime2Wait;\r
- UINT32 DefaultTime2Retain;\r
- UINT16 MaxOutstandingR2T;\r
- BOOLEAN DataPDUInOrder;\r
- BOOLEAN DataSequenceInOrder;\r
- UINT8 ErrorRecoveryLevel;\r
-};\r
-\r
-#define ISCSI_CONNECTION_SIGNATURE SIGNATURE_32 ('I', 'S', 'C', 'N')\r
-\r
-struct _ISCSI_CONNECTION {\r
- UINT32 Signature;\r
- LIST_ENTRY Link;\r
-\r
- EFI_EVENT TimeoutEvent;\r
-\r
- ISCSI_SESSION *Session;\r
-\r
- UINT8 State;\r
- UINT8 CurrentStage;\r
- UINT8 NextStage;\r
-\r
- UINT8 CHAPStep;\r
-\r
- BOOLEAN PartialReqSent;\r
- BOOLEAN PartialRspRcvd;\r
-\r
- BOOLEAN TransitInitiated;\r
-\r
- UINT16 Cid;\r
- UINT32 ExpStatSN;\r
-\r
- //\r
- // queues...\r
- //\r
- NET_BUF_QUEUE RspQue;\r
-\r
- TCP4_IO Tcp4Io;\r
-\r
- //\r
- // connection-only parameters\r
- //\r
- UINT32 MaxRecvDataSegmentLength;\r
- ISCSI_DIGEST_TYPE HeaderDigest;\r
- ISCSI_DIGEST_TYPE DataDigest;\r
-};\r
-\r
-#define ISCSI_DRIVER_DATA_SIGNATURE SIGNATURE_32 ('I', 'S', 'D', 'A')\r
-\r
-#define ISCSI_DRIVER_DATA_FROM_EXT_SCSI_PASS_THRU(PassThru) \\r
- CR ( \\r
- PassThru, \\r
- ISCSI_DRIVER_DATA, \\r
- IScsiExtScsiPassThru, \\r
- ISCSI_DRIVER_DATA_SIGNATURE \\r
- )\r
-#define ISCSI_DRIVER_DATA_FROM_IDENTIFIER(Identifier) \\r
- CR ( \\r
- Identifier, \\r
- ISCSI_DRIVER_DATA, \\r
- IScsiIdentifier, \\r
- ISCSI_DRIVER_DATA_SIGNATURE \\r
- )\r
-#define ISCSI_DRIVER_DATA_FROM_SESSION(s) \\r
- CR ( \\r
- s, \\r
- ISCSI_DRIVER_DATA, \\r
- Session, \\r
- ISCSI_DRIVER_DATA_SIGNATURE \\r
- )\r
-\r
-struct _ISCSI_DRIVER_DATA {\r
- UINT32 Signature;\r
- EFI_HANDLE Image;\r
- EFI_HANDLE Controller;\r
- ISCSI_PRIVATE_PROTOCOL IScsiIdentifier;\r
- EFI_HANDLE ChildHandle;\r
- EFI_EVENT ExitBootServiceEvent;\r
-\r
- EFI_EXT_SCSI_PASS_THRU_PROTOCOL IScsiExtScsiPassThru;\r
- EFI_EXT_SCSI_PASS_THRU_MODE ExtScsiPassThruMode;\r
- EFI_HANDLE ExtScsiPassThruHandle;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
-\r
- ISCSI_SESSION Session;\r
-};\r
-\r
-#endif\r