From f215e02bf85f68d3a6106c2a1f4f7f063f819064 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 Apr 2024 10:17:27 +0200 Subject: Adding upstream version 7.0.14-dfsg. Signed-off-by: Daniel Baumann --- .../EFI/Firmware/NetworkPkg/IScsiDxe/IScsiImpl.h | 202 +++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiImpl.h (limited to 'src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiImpl.h') diff --git a/src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiImpl.h b/src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiImpl.h new file mode 100644 index 00000000..cf7ae734 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware/NetworkPkg/IScsiDxe/IScsiImpl.h @@ -0,0 +1,202 @@ +/** @file + The shared head file for iSCSI driver. + +Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef _ISCSI_IMPL_H_ +#define _ISCSI_IMPL_H_ + +#include + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "IScsiConfigNVDataStruc.h" +#include "IScsiDriver.h" +#include "IScsiProto.h" +#include "IScsiCHAP.h" +#include "IScsiDhcp.h" +#include "IScsiDhcp6.h" + +#include "IScsiIbft.h" +#include "IScsiMisc.h" +#include "IScsiDns.h" +#include "IScsiConfig.h" + +#define ISCSI_AUTH_INITIAL 0 + +#define ISCSI_SESSION_SIGNATURE SIGNATURE_32 ('I', 'S', 'S', 'N') +/// +/// 10 seconds +/// +#define ISCSI_GET_MAPPING_TIMEOUT 100000000U +/// +/// 3 seconds +/// +#define ISCSI_WAIT_IPSEC_TIMEOUT 30000000U + +struct _ISCSI_SESSION { + UINT32 Signature; + + ISCSI_DRIVER_DATA *Private; + ISCSI_ATTEMPT_CONFIG_NVDATA *ConfigData; + + UINT8 AuthType; + union { + ISCSI_CHAP_AUTH_DATA CHAP; + } AuthData; + + UINT8 State; + + UINT8 Isid[6]; + UINT16 Tsih; + + UINT32 CmdSN; + UINT32 ExpCmdSN; + UINT32 MaxCmdSN; + + UINT32 InitiatorTaskTag; + UINT16 NextCid; + + LIST_ENTRY Conns; + UINT32 NumConns; + + LIST_ENTRY TcbList; + + // + // Session-wide parameters + // + UINT16 TargetPortalGroupTag; + UINT32 MaxConnections; + BOOLEAN InitialR2T; + BOOLEAN ImmediateData; + UINT32 MaxBurstLength; + UINT32 FirstBurstLength; + UINT32 DefaultTime2Wait; + UINT32 DefaultTime2Retain; + UINT16 MaxOutstandingR2T; + BOOLEAN DataPDUInOrder; + BOOLEAN DataSequenceInOrder; + UINT8 ErrorRecoveryLevel; +}; + +#define ISCSI_CONNECTION_SIGNATURE SIGNATURE_32 ('I', 'S', 'C', 'N') + +struct _ISCSI_CONNECTION { + UINT32 Signature; + LIST_ENTRY Link; + + EFI_EVENT TimeoutEvent; + + ISCSI_SESSION *Session; + + UINT8 State; + UINT8 CurrentStage; + UINT8 NextStage; + + UINT8 AuthStep; + + BOOLEAN PartialReqSent; + BOOLEAN PartialRspRcvd; + + BOOLEAN TransitInitiated; + BOOLEAN ParamNegotiated; + + UINT16 Cid; + UINT32 ExpStatSN; + + // + // Queues... + // + NET_BUF_QUEUE RspQue; + + BOOLEAN Ipv6Flag; + TCP_IO TcpIo; + + // + // Connection-only parameters. + // + UINT32 MaxRecvDataSegmentLength; + ISCSI_DIGEST_TYPE HeaderDigest; + ISCSI_DIGEST_TYPE DataDigest; +}; + +#define ISCSI_DRIVER_DATA_SIGNATURE SIGNATURE_32 ('I', 'S', 'D', 'A') + +#define ISCSI_DRIVER_DATA_FROM_EXT_SCSI_PASS_THRU(PassThru) \ + CR ( \ + PassThru, \ + ISCSI_DRIVER_DATA, \ + IScsiExtScsiPassThru, \ + ISCSI_DRIVER_DATA_SIGNATURE \ + ) + +#define ISCSI_DRIVER_DATA_FROM_IDENTIFIER(Identifier) \ + CR ( \ + Identifier, \ + ISCSI_DRIVER_DATA, \ + IScsiIdentifier, \ + ISCSI_DRIVER_DATA_SIGNATURE \ + ) + +struct _ISCSI_DRIVER_DATA { + UINT32 Signature; + EFI_HANDLE Image; + EFI_HANDLE Controller; + ISCSI_PRIVATE_PROTOCOL IScsiIdentifier; + + EFI_EVENT ExitBootServiceEvent; + + EFI_EXT_SCSI_PASS_THRU_PROTOCOL IScsiExtScsiPassThru; + EFI_EXT_SCSI_PASS_THRU_MODE ExtScsiPassThruMode; + EFI_HANDLE ExtScsiPassThruHandle; + EFI_DEVICE_PATH_PROTOCOL *DevicePath; + EFI_HANDLE ChildHandle; + ISCSI_SESSION *Session; +}; + +#endif -- cgit v1.2.3