(((INT32) (s1) > (INT32) (s2)) && (s1 - s2) < ((UINT32) 1 << 31)) \\r
)\r
\r
-#define ISCSI_WELL_KNOWN_PORT 3260\r
-#define ISCSI_MAX_CONNS_PER_SESSION 1\r
+#define ISCSI_WELL_KNOWN_PORT 3260\r
+#define ISCSI_MAX_CONNS_PER_SESSION 1\r
\r
-#define DEFAULT_MAX_RECV_DATA_SEG_LEN 8192\r
-#define MAX_RECV_DATA_SEG_LEN_IN_FFP 65536\r
-#define DEFAULT_MAX_OUTSTANDING_R2T 1\r
+#define DEFAULT_MAX_RECV_DATA_SEG_LEN 8192\r
+#define MAX_RECV_DATA_SEG_LEN_IN_FFP 65536\r
+#define DEFAULT_MAX_OUTSTANDING_R2T 1\r
\r
-#define ISCSI_VERSION_MAX 0x00\r
-#define ISCSI_VERSION_MIN 0x00\r
+#define ISCSI_VERSION_MAX 0x00\r
+#define ISCSI_VERSION_MIN 0x00\r
\r
-#define ISCSI_CHECK_MEDIA_LOGIN_WAITING_TIME EFI_TIMER_PERIOD_SECONDS(20)\r
-#define ISCSI_CHECK_MEDIA_GET_DHCP_WAITING_TIME EFI_TIMER_PERIOD_SECONDS(20)\r
+#define ISCSI_CHECK_MEDIA_LOGIN_WAITING_TIME EFI_TIMER_PERIOD_SECONDS(20)\r
+#define ISCSI_CHECK_MEDIA_GET_DHCP_WAITING_TIME EFI_TIMER_PERIOD_SECONDS(20)\r
\r
-#define ISCSI_REDIRECT_ADDR_START_DELIMITER '['\r
-#define ISCSI_REDIRECT_ADDR_END_DELIMITER ']'\r
+#define ISCSI_REDIRECT_ADDR_START_DELIMITER '['\r
+#define ISCSI_REDIRECT_ADDR_END_DELIMITER ']'\r
\r
#define ISCSI_KEY_AUTH_METHOD "AuthMethod"\r
#define ISCSI_KEY_HEADER_DIGEST "HeaderDigest"\r
#define ISCSI_KEY_SESSION_TYPE "SessionType"\r
#define ISCSI_KEY_MAX_RECV_DATA_SEGMENT_LENGTH "MaxRecvDataSegmentLength"\r
\r
-#define ISCSI_KEY_VALUE_NONE "None"\r
+#define ISCSI_KEY_VALUE_NONE "None"\r
\r
///\r
/// connection state for initiator\r
///\r
\r
-#define CONN_STATE_FREE 0\r
-#define CONN_STATE_XPT_WAIT 1\r
-#define CONN_STATE_IN_LOGIN 2\r
-#define CONN_STATE_LOGGED_IN 3\r
-#define CONN_STATE_IN_LOGOUT 4\r
-#define CONN_STATE_LOGOUT_REQUESTED 5\r
-#define CONN_STATE_CLEANUP_WAIT 6\r
-#define CONN_STATE_IN_CLEANUP 7\r
+#define CONN_STATE_FREE 0\r
+#define CONN_STATE_XPT_WAIT 1\r
+#define CONN_STATE_IN_LOGIN 2\r
+#define CONN_STATE_LOGGED_IN 3\r
+#define CONN_STATE_IN_LOGOUT 4\r
+#define CONN_STATE_LOGOUT_REQUESTED 5\r
+#define CONN_STATE_CLEANUP_WAIT 6\r
+#define CONN_STATE_IN_CLEANUP 7\r
\r
///\r
/// session state for initiator\r
///\r
-#define SESSION_STATE_FREE 0\r
-#define SESSION_STATE_LOGGED_IN 1\r
-#define SESSION_STATE_FAILED 2\r
+#define SESSION_STATE_FREE 0\r
+#define SESSION_STATE_LOGGED_IN 1\r
+#define SESSION_STATE_FAILED 2\r
\r
-#define ISCSI_RESERVED_TAG 0xffffffff\r
+#define ISCSI_RESERVED_TAG 0xffffffff\r
\r
-#define ISCSI_REQ_IMMEDIATE 0x40\r
-#define ISCSI_OPCODE_MASK 0x3F\r
+#define ISCSI_REQ_IMMEDIATE 0x40\r
+#define ISCSI_OPCODE_MASK 0x3F\r
\r
#define ISCSI_SET_OPCODE(PduHdr, Op, Flgs) ((((ISCSI_BASIC_HEADER *) (PduHdr))->OpCode) = ((Op) | (Flgs)))\r
#define ISCSI_GET_OPCODE(PduHdr) ((((ISCSI_BASIC_HEADER *) (PduHdr))->OpCode) & ISCSI_OPCODE_MASK)\r
#define ISCSI_GET_CURRENT_STAGE(PduHdr) ((UINT8) (((PduHdr)->Flags >> 2) & 0x3))\r
#define ISCSI_GET_NEXT_STAGE(PduHdr) ((UINT8) (((PduHdr)->Flags) & 0x3))\r
\r
-#define ISCSI_GET_PAD_LEN(DataLen) ((~(DataLen) + 1) & 0x3)\r
-#define ISCSI_ROUNDUP(DataLen) (((DataLen) + 3) &~(0x3))\r
+#define ISCSI_GET_PAD_LEN(DataLen) ((~(DataLen) + 1) & 0x3)\r
+#define ISCSI_ROUNDUP(DataLen) (((DataLen) + 3) &~(0x3))\r
\r
#define HTON24(Dst, Src) \\r
do { \\r
(Dst)[2] = (UINT8) ((UINT8) (Src) & 0xFF); \\r
} while (0);\r
\r
-#define NTOH24(src) (((src)[0] << 16) | ((src)[1] << 8) | ((src)[2]))\r
+#define NTOH24(src) (((src)[0] << 16) | ((src)[1] << 8) | ((src)[2]))\r
\r
#define ISCSI_GET_DATASEG_LEN(PduHdr) NTOH24 (((ISCSI_BASIC_HEADER *) (PduHdr))->DataSegmentLength)\r
#define ISCSI_SET_DATASEG_LEN(PduHdr, Len) HTON24 (((ISCSI_BASIC_HEADER *) (PduHdr))->DataSegmentLength, (Len))\r
//\r
// Target opcodes.\r
//\r
-#define ISCSI_OPCODE_NOP_IN 0x20\r
-#define ISCSI_OPCODE_SCSI_RSP 0x21\r
-#define ISCSI_OPCODE_SCSI_TMF_RSP 0x22\r
-#define ISCSI_OPCODE_LOGIN_RSP 0x23\r
-#define ISCSI_OPCODE_TEXT_RSP 0x24\r
-#define ISCSI_OPCODE_SCSI_DATA_IN 0x25\r
-#define ISCSI_OPCODE_LOGOUT_RSP 0x26\r
-#define ISCSI_OPCODE_R2T 0x31\r
-#define ISCSI_OPCODE_ASYNC_MSG 0x32\r
-#define ISCSI_OPCODE_VENDOR_T0 0x3c\r
-#define ISCSI_OPCODE_VENDOR_T1 0x3d\r
-#define ISCSI_OPCODE_VENDOR_T2 0x3e\r
-#define ISCSI_OPCODE_REJECT 0x3f\r
-\r
-#define ISCSI_BHS_FLAG_FINAL 0x80\r
+#define ISCSI_OPCODE_NOP_IN 0x20\r
+#define ISCSI_OPCODE_SCSI_RSP 0x21\r
+#define ISCSI_OPCODE_SCSI_TMF_RSP 0x22\r
+#define ISCSI_OPCODE_LOGIN_RSP 0x23\r
+#define ISCSI_OPCODE_TEXT_RSP 0x24\r
+#define ISCSI_OPCODE_SCSI_DATA_IN 0x25\r
+#define ISCSI_OPCODE_LOGOUT_RSP 0x26\r
+#define ISCSI_OPCODE_R2T 0x31\r
+#define ISCSI_OPCODE_ASYNC_MSG 0x32\r
+#define ISCSI_OPCODE_VENDOR_T0 0x3c\r
+#define ISCSI_OPCODE_VENDOR_T1 0x3d\r
+#define ISCSI_OPCODE_VENDOR_T2 0x3e\r
+#define ISCSI_OPCODE_REJECT 0x3f\r
+\r
+#define ISCSI_BHS_FLAG_FINAL 0x80\r
\r
//\r
// Defined AHS types, others are reserved.\r
//\r
-#define ISCSI_AHS_TYPE_EXT_CDB 0x1\r
-#define ISCSI_AHS_TYPE_BI_EXP_READ_DATA_LEN 0x2\r
+#define ISCSI_AHS_TYPE_EXT_CDB 0x1\r
+#define ISCSI_AHS_TYPE_BI_EXP_READ_DATA_LEN 0x2\r
\r
-#define SCSI_CMD_PDU_FLAG_READ 0x40\r
-#define SCSI_CMD_PDU_FLAG_WRITE 0x20\r
+#define SCSI_CMD_PDU_FLAG_READ 0x40\r
+#define SCSI_CMD_PDU_FLAG_WRITE 0x20\r
\r
#define ISCSI_CMD_PDU_TASK_ATTR_MASK 0x07\r
\r
//\r
// Flag bit definitions in SCSI response.\r
//\r
-#define SCSI_RSP_PDU_FLAG_BI_READ_OVERFLOW 0x10\r
-#define SCSI_RSP_PDU_FLAG_BI_READ_UNDERFLOW 0x08\r
-#define SCSI_RSP_PDU_FLAG_OVERFLOW 0x04\r
-#define SCSI_RSP_PDU_FLAG_UNDERFLOW 0x02\r
+#define SCSI_RSP_PDU_FLAG_BI_READ_OVERFLOW 0x10\r
+#define SCSI_RSP_PDU_FLAG_BI_READ_UNDERFLOW 0x08\r
+#define SCSI_RSP_PDU_FLAG_OVERFLOW 0x04\r
+#define SCSI_RSP_PDU_FLAG_UNDERFLOW 0x02\r
\r
//\r
// iSCSI service response codes.\r
#define ISCSI_SERVICE_RSP_COMMAND_COMPLETE_AT_TARGET 0x00\r
#define ISCSI_SERVICE_RSP_TARGET_FAILURE 0x01\r
\r
-#define ISCSI_TMF_RSP_PDU_RSP_FUNCTION_COMPLETE 0\r
-#define ISCSI_TMF_RSP_PDU_RSP_TASK_NOT_EXIST 1\r
-#define ISCSI_TMF_RSP_PDU_RSP_LUN_NOT_EXIST 2\r
-#define ISCSI_TMF_RSP_PDU_RSP_TASK_STILL_ALLEGIANT 3\r
-#define ISCSI_TMF_RSP_PDU_RSP_TASK_REASSGIN_NOT_SUPPORTED 4\r
-#define ISCSI_TMF_RSP_PDU_RSP_NOT_SUPPORTED 5\r
-#define ISCSI_TMF_RSP_PDU_RSP_FUNCTION_AHTH_FAILED 6\r
-#define ISCSI_TMF_RSP_PDU_RSP_FUNCTION_REJECTED 255\r
+#define ISCSI_TMF_RSP_PDU_RSP_FUNCTION_COMPLETE 0\r
+#define ISCSI_TMF_RSP_PDU_RSP_TASK_NOT_EXIST 1\r
+#define ISCSI_TMF_RSP_PDU_RSP_LUN_NOT_EXIST 2\r
+#define ISCSI_TMF_RSP_PDU_RSP_TASK_STILL_ALLEGIANT 3\r
+#define ISCSI_TMF_RSP_PDU_RSP_TASK_REASSGIN_NOT_SUPPORTED 4\r
+#define ISCSI_TMF_RSP_PDU_RSP_NOT_SUPPORTED 5\r
+#define ISCSI_TMF_RSP_PDU_RSP_FUNCTION_AHTH_FAILED 6\r
+#define ISCSI_TMF_RSP_PDU_RSP_FUNCTION_REJECTED 255\r
\r
#define SCSI_DATA_IN_PDU_FLAG_ACKKNOWLEDGE 0x40\r
#define SCSI_DATA_IN_PDU_FLAG_OVERFLOW SCSI_RSP_PDU_FLAG_OVERFLOW\r
#define SCSI_DATA_IN_PDU_FLAG_UNDERFLOW SCSI_RSP_PDU_FLAG_UNDERFLOW\r
#define SCSI_DATA_IN_PDU_FLAG_STATUS_VALID 0x01\r
\r
-#define ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT 0x80\r
-#define ISCSI_LOGIN_REQ_PDU_FLAG_CONTINUE 0x40\r
+#define ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT 0x80\r
+#define ISCSI_LOGIN_REQ_PDU_FLAG_CONTINUE 0x40\r
\r
-#define ISCSI_LOGIN_RSP_PDU_FLAG_TRANSIT ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT\r
-#define ISCSI_LOGIN_RSP_PDU_FLAG_CONTINUE ISCSI_LOGIN_REQ_PDU_FLAG_CONTINUE\r
+#define ISCSI_LOGIN_RSP_PDU_FLAG_TRANSIT ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT\r
+#define ISCSI_LOGIN_RSP_PDU_FLAG_CONTINUE ISCSI_LOGIN_REQ_PDU_FLAG_CONTINUE\r
\r
#define ISCSI_LOGIN_STATUS_SUCCESS 0\r
#define ISCSI_LOGIN_STATUS_REDIRECTION 1\r
#define ISCSI_SNACK_REQUEST_TYPE_DATA_ACK 2\r
#define ISCSI_SNACK_REQUEST_TYPE_RDATA 3\r
\r
-#define ISCSI_SECURITY_NEGOTIATION 0\r
-#define ISCSI_LOGIN_OPERATIONAL_NEGOTIATION 1\r
-#define ISCSI_FULL_FEATURE_PHASE 3\r
+#define ISCSI_SECURITY_NEGOTIATION 0\r
+#define ISCSI_LOGIN_OPERATIONAL_NEGOTIATION 1\r
+#define ISCSI_FULL_FEATURE_PHASE 3\r
\r
-typedef struct _ISCSI_SESSION ISCSI_SESSION;\r
-typedef struct _ISCSI_CONNECTION ISCSI_CONNECTION;\r
+typedef struct _ISCSI_SESSION ISCSI_SESSION;\r
+typedef struct _ISCSI_CONNECTION ISCSI_CONNECTION;\r
\r
typedef enum {\r
DataIn = 0,\r
/// iSCSI Basic Header Segment\r
///\r
typedef struct _ISCSI_BASIC_HEADER {\r
- UINT8 OpCode;\r
- UINT8 Flags;\r
- UINT16 OpCodeSpecific1;\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Lun[8];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 OpCodeSpecific2[7];\r
+ UINT8 OpCode;\r
+ UINT8 Flags;\r
+ UINT16 OpCodeSpecific1;\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Lun[8];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 OpCodeSpecific2[7];\r
} ISCSI_BASIC_HEADER;\r
\r
typedef struct _ISCSI_ADDTIONAL_HEADER {\r
- UINT16 Length;\r
- UINT8 Type;\r
- UINT8 TypeSpecific[1];\r
+ UINT16 Length;\r
+ UINT8 Type;\r
+ UINT8 TypeSpecific[1];\r
} ISCSI_ADDITIONAL_HEADER;\r
\r
typedef struct _ISCSI_BI_EXP_READ_DATA_LEN_AHS {\r
- UINT16 Length;\r
- UINT8 Type;\r
- UINT8 Reserved;\r
- UINT32 ExpReadDataLength;\r
+ UINT16 Length;\r
+ UINT8 Type;\r
+ UINT8 Reserved;\r
+ UINT32 ExpReadDataLength;\r
} ISCSI_BI_EXP_READ_DATA_LEN_AHS;\r
\r
///\r
/// SCSI Command\r
///\r
typedef struct _SCSI_COMMAND {\r
- UINT8 OpCode;\r
- UINT8 Flags;\r
- UINT16 Reserved;\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Lun[8];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 ExpDataXferLength;\r
- UINT32 CmdSN;\r
- UINT32 ExpStatSN;\r
- UINT8 Cdb[16];\r
+ UINT8 OpCode;\r
+ UINT8 Flags;\r
+ UINT16 Reserved;\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Lun[8];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 ExpDataXferLength;\r
+ UINT32 CmdSN;\r
+ UINT32 ExpStatSN;\r
+ UINT8 Cdb[16];\r
} SCSI_COMMAND;\r
\r
///\r
/// SCSI Response\r
///\r
typedef struct _SCSI_RESPONSE {\r
- UINT8 OpCode;\r
- UINT8 Flags;\r
- UINT8 Response;\r
- UINT8 Status;\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Reserved[8];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 SNACKTag;\r
- UINT32 StatSN;\r
- UINT32 ExpCmdSN;\r
- UINT32 MaxCmdSN;\r
- UINT32 ExpDataSN;\r
- UINT32 BiReadResidualCount;\r
- UINT32 ResidualCount;\r
+ UINT8 OpCode;\r
+ UINT8 Flags;\r
+ UINT8 Response;\r
+ UINT8 Status;\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Reserved[8];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 SNACKTag;\r
+ UINT32 StatSN;\r
+ UINT32 ExpCmdSN;\r
+ UINT32 MaxCmdSN;\r
+ UINT32 ExpDataSN;\r
+ UINT32 BiReadResidualCount;\r
+ UINT32 ResidualCount;\r
} SCSI_RESPONSE;\r
\r
typedef struct _ISCSI_SENSE_DATA {\r
- UINT16 Length;\r
- UINT8 Data[2];\r
+ UINT16 Length;\r
+ UINT8 Data[2];\r
} ISCSI_SENSE_DATA;\r
\r
///\r
/// iSCSI Task Management Function Request.\r
///\r
typedef struct _ISCSI_TMF_REQUEST {\r
- UINT8 OpCode;\r
- UINT8 Fuction;\r
- UINT16 Reserved1;\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Lun[8];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 ReferencedTaskTag;\r
- UINT32 CmdSN;\r
- UINT32 ExpStatSN;\r
- UINT32 RefCmdSN;\r
- UINT32 ExpDataSN;\r
- UINT32 Reserved2[2];\r
+ UINT8 OpCode;\r
+ UINT8 Fuction;\r
+ UINT16 Reserved1;\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Lun[8];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 ReferencedTaskTag;\r
+ UINT32 CmdSN;\r
+ UINT32 ExpStatSN;\r
+ UINT32 RefCmdSN;\r
+ UINT32 ExpDataSN;\r
+ UINT32 Reserved2[2];\r
} ISCSI_TMF_REQUEST;\r
\r
///\r
/// iSCSI Task Management Function Response.\r
///\r
typedef struct _ISCSI_TMF_RESPONSE {\r
- UINT8 OpCode;\r
- UINT8 Reserved1;\r
- UINT8 Response;\r
- UINT8 Reserved2;\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT32 Reserver3[2];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 Reserved4;\r
- UINT32 StatSN;\r
- UINT32 ExpCmdSN;\r
- UINT32 MaxCmdSN;\r
- UINT32 Reserved[3];\r
+ UINT8 OpCode;\r
+ UINT8 Reserved1;\r
+ UINT8 Response;\r
+ UINT8 Reserved2;\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT32 Reserver3[2];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 Reserved4;\r
+ UINT32 StatSN;\r
+ UINT32 ExpCmdSN;\r
+ UINT32 MaxCmdSN;\r
+ UINT32 Reserved[3];\r
} ISCSI_TMF_RESPONSE;\r
\r
///\r
/// SCSI Data-Out\r
///\r
typedef struct _ISCSI_SCSI_DATA_OUT {\r
- UINT8 OpCode;\r
- UINT8 Reserved1[3];\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Lun[8];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 TargetTransferTag;\r
- UINT32 Reserved2;\r
- UINT32 ExpStatSN;\r
- UINT32 Reserved3;\r
- UINT32 DataSN;\r
- UINT32 BufferOffset;\r
- UINT32 Reserved4;\r
+ UINT8 OpCode;\r
+ UINT8 Reserved1[3];\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Lun[8];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 TargetTransferTag;\r
+ UINT32 Reserved2;\r
+ UINT32 ExpStatSN;\r
+ UINT32 Reserved3;\r
+ UINT32 DataSN;\r
+ UINT32 BufferOffset;\r
+ UINT32 Reserved4;\r
} ISCSI_SCSI_DATA_OUT;\r
\r
///\r
/// SCSI Data-In\r
///\r
typedef struct _ISCSI_SCSI_DATA_IN {\r
- UINT8 OpCode;\r
- UINT8 Flags;\r
- UINT8 Reserved1;\r
- UINT8 Status;\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Lun[8];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 TargetTransferTag;\r
- UINT32 StatSN;\r
- UINT32 ExpCmdSN;\r
- UINT32 MaxCmdSN;\r
- UINT32 DataSN;\r
- UINT32 BufferOffset;\r
- UINT32 ResidualCount;\r
+ UINT8 OpCode;\r
+ UINT8 Flags;\r
+ UINT8 Reserved1;\r
+ UINT8 Status;\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Lun[8];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 TargetTransferTag;\r
+ UINT32 StatSN;\r
+ UINT32 ExpCmdSN;\r
+ UINT32 MaxCmdSN;\r
+ UINT32 DataSN;\r
+ UINT32 BufferOffset;\r
+ UINT32 ResidualCount;\r
} ISCSI_SCSI_DATA_IN;\r
\r
///\r
/// Ready To Transfer.\r
///\r
typedef struct _ISCSI_READY_TO_TRANSFER {\r
- UINT8 OpCode;\r
- UINT8 Reserved1[3];\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Lun[8];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 TargetTransferTag;\r
- UINT32 StatSN;\r
- UINT32 ExpCmdSN;\r
- UINT32 MaxCmdSN;\r
- UINT32 R2TSeqNum;\r
- UINT32 BufferOffset;\r
- UINT32 DesiredDataTransferLength;\r
+ UINT8 OpCode;\r
+ UINT8 Reserved1[3];\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Lun[8];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 TargetTransferTag;\r
+ UINT32 StatSN;\r
+ UINT32 ExpCmdSN;\r
+ UINT32 MaxCmdSN;\r
+ UINT32 R2TSeqNum;\r
+ UINT32 BufferOffset;\r
+ UINT32 DesiredDataTransferLength;\r
} ISCSI_READY_TO_TRANSFER;\r
\r
typedef struct _ISCSI_ASYNC_MESSAGE {\r
- UINT8 OpCode;\r
- UINT8 Reserved1[8];\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Lun[8];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 Reserved2;\r
- UINT32 StatSN;\r
- UINT32 ExpCmdSN;\r
- UINT32 MaxCmdSN;\r
- UINT8 AsyncEvent;\r
- UINT8 AsyncVCode;\r
- UINT16 Parameter1;\r
- UINT16 Parameter2;\r
- UINT16 Parameter3;\r
- UINT32 Reserved3;\r
+ UINT8 OpCode;\r
+ UINT8 Reserved1[8];\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Lun[8];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 Reserved2;\r
+ UINT32 StatSN;\r
+ UINT32 ExpCmdSN;\r
+ UINT32 MaxCmdSN;\r
+ UINT8 AsyncEvent;\r
+ UINT8 AsyncVCode;\r
+ UINT16 Parameter1;\r
+ UINT16 Parameter2;\r
+ UINT16 Parameter3;\r
+ UINT32 Reserved3;\r
} ISCSI_ASYNC_MESSAGE;\r
\r
///\r
/// Login Request.\r
///\r
typedef struct _ISCSI_LOGIN_REQUEST {\r
- UINT8 OpCode;\r
- UINT8 Flags;\r
- UINT8 VersionMax;\r
- UINT8 VersionMin;\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Isid[6];\r
- UINT16 Tsih;\r
- UINT32 InitiatorTaskTag;\r
- UINT16 Cid;\r
- UINT16 Reserved1;\r
- UINT32 CmdSN;\r
- UINT32 ExpStatSN;\r
- UINT32 Reserved2[4];\r
+ UINT8 OpCode;\r
+ UINT8 Flags;\r
+ UINT8 VersionMax;\r
+ UINT8 VersionMin;\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Isid[6];\r
+ UINT16 Tsih;\r
+ UINT32 InitiatorTaskTag;\r
+ UINT16 Cid;\r
+ UINT16 Reserved1;\r
+ UINT32 CmdSN;\r
+ UINT32 ExpStatSN;\r
+ UINT32 Reserved2[4];\r
} ISCSI_LOGIN_REQUEST;\r
\r
///\r
/// Login Response.\r
///\r
typedef struct _ISCSI_LOGIN_RESPONSE {\r
- UINT8 OpCode;\r
- UINT8 Flags;\r
- UINT8 VersionMax;\r
- UINT8 VersionActive;\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Isid[6];\r
- UINT16 Tsih;\r
- UINT32 InitiatorTaskTag;\r
- UINT32 Reserved1;\r
- UINT32 StatSN;\r
- UINT32 ExpCmdSN;\r
- UINT32 MaxCmdSN;\r
- UINT8 StatusClass;\r
- UINT8 StatusDetail;\r
- UINT8 Reserved2[10];\r
+ UINT8 OpCode;\r
+ UINT8 Flags;\r
+ UINT8 VersionMax;\r
+ UINT8 VersionActive;\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Isid[6];\r
+ UINT16 Tsih;\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 Reserved1;\r
+ UINT32 StatSN;\r
+ UINT32 ExpCmdSN;\r
+ UINT32 MaxCmdSN;\r
+ UINT8 StatusClass;\r
+ UINT8 StatusDetail;\r
+ UINT8 Reserved2[10];\r
} ISCSI_LOGIN_RESPONSE;\r
\r
///\r
/// Logout Request.\r
///\r
typedef struct _ISCSI_LOGOUT_REQUEST {\r
- UINT8 OpCode;\r
- UINT8 ReasonCode;\r
- UINT16 Reserved1;\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT32 Reserved2[2];\r
- UINT32 InitiatorTaskTag;\r
- UINT16 Cid;\r
- UINT16 Reserved3;\r
- UINT32 CmdSN;\r
- UINT32 ExpStatSN;\r
- UINT32 Reserved4[4];\r
+ UINT8 OpCode;\r
+ UINT8 ReasonCode;\r
+ UINT16 Reserved1;\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT32 Reserved2[2];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT16 Cid;\r
+ UINT16 Reserved3;\r
+ UINT32 CmdSN;\r
+ UINT32 ExpStatSN;\r
+ UINT32 Reserved4[4];\r
} ISCSI_LOGOUT_REQUEST;\r
\r
///\r
/// Logout Response.\r
///\r
typedef struct _ISCSI_LOGOUT_RESPONSE {\r
- UINT8 OpCode;\r
- UINT8 Reserved1;\r
- UINT8 Response;\r
- UINT8 Reserved2;\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT32 Reserved3[2];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 Reserved4;\r
- UINT32 StatSN;\r
- UINT32 ExpCmdSN;\r
- UINT32 MaxCmdSN;\r
- UINT32 Reserved5;\r
- UINT16 Time2Wait;\r
- UINT16 Time2Retain;\r
- UINT32 Reserved6;\r
+ UINT8 OpCode;\r
+ UINT8 Reserved1;\r
+ UINT8 Response;\r
+ UINT8 Reserved2;\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT32 Reserved3[2];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 Reserved4;\r
+ UINT32 StatSN;\r
+ UINT32 ExpCmdSN;\r
+ UINT32 MaxCmdSN;\r
+ UINT32 Reserved5;\r
+ UINT16 Time2Wait;\r
+ UINT16 Time2Retain;\r
+ UINT32 Reserved6;\r
} ISCSI_LOGOUT_RESPONSE;\r
\r
///\r
/// SNACK Request.\r
///\r
typedef struct _ISCSI_SNACK_REQUEST {\r
- UINT8 OpCode;\r
- UINT8 Type;\r
- UINT16 Reserved1;\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Lun[8];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 TargetTransferTag;\r
- UINT32 Reserved2;\r
- UINT32 ExpStatSN;\r
- UINT32 Reserved[2];\r
- UINT32 BegRun;\r
- UINT32 RunLength;\r
+ UINT8 OpCode;\r
+ UINT8 Type;\r
+ UINT16 Reserved1;\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Lun[8];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 TargetTransferTag;\r
+ UINT32 Reserved2;\r
+ UINT32 ExpStatSN;\r
+ UINT32 Reserved[2];\r
+ UINT32 BegRun;\r
+ UINT32 RunLength;\r
} ISCSI_SNACK_REQUEST;\r
\r
///\r
/// Reject.\r
///\r
typedef struct _ISCSI_REJECT {\r
- UINT8 OpCode;\r
- UINT8 Reserved1;\r
- UINT8 Reason;\r
- UINT8 Reserved2;\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT32 Reserved3[2];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 Reserved4;\r
- UINT32 StatSN;\r
- UINT32 ExpCmdSN;\r
- UINT32 MaxCmdSN;\r
- UINT32 DataSN;\r
- UINT32 Reserved5[2];\r
+ UINT8 OpCode;\r
+ UINT8 Reserved1;\r
+ UINT8 Reason;\r
+ UINT8 Reserved2;\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT32 Reserved3[2];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 Reserved4;\r
+ UINT32 StatSN;\r
+ UINT32 ExpCmdSN;\r
+ UINT32 MaxCmdSN;\r
+ UINT32 DataSN;\r
+ UINT32 Reserved5[2];\r
} ISCSI_REJECT;\r
\r
///\r
/// NOP-Out.\r
///\r
typedef struct _ISCSI_NOP_OUT {\r
- UINT8 OpCode;\r
- UINT8 Reserved1[3];\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Lun[8];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 TargetTransferTag;\r
- UINT32 CmdSN;\r
- UINT32 ExpStatSN;\r
- UINT32 Reserved2[4];\r
+ UINT8 OpCode;\r
+ UINT8 Reserved1[3];\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Lun[8];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 TargetTransferTag;\r
+ UINT32 CmdSN;\r
+ UINT32 ExpStatSN;\r
+ UINT32 Reserved2[4];\r
} ISCSI_NOP_OUT;\r
\r
///\r
/// NOP-In.\r
///\r
typedef struct _ISCSI_NOP_IN {\r
- UINT8 OpCode;\r
- UINT8 Reserved1[3];\r
- UINT8 TotalAHSLength;\r
- UINT8 DataSegmentLength[3];\r
- UINT8 Lun[8];\r
- UINT32 InitiatorTaskTag;\r
- UINT32 TargetTransferTag;\r
- UINT32 StatSN;\r
- UINT32 ExpCmdSN;\r
- UINT32 MaxCmdSN;\r
- UINT32 Reserved2[3];\r
+ UINT8 OpCode;\r
+ UINT8 Reserved1[3];\r
+ UINT8 TotalAHSLength;\r
+ UINT8 DataSegmentLength[3];\r
+ UINT8 Lun[8];\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 TargetTransferTag;\r
+ UINT32 StatSN;\r
+ UINT32 ExpCmdSN;\r
+ UINT32 MaxCmdSN;\r
+ UINT32 Reserved2[3];\r
} ISCSI_NOP_IN;\r
\r
typedef enum {\r
} ISCSI_DIGEST_TYPE;\r
\r
typedef struct _ISCSI_XFER_CONTEXT {\r
- UINT32 TargetTransferTag;\r
- UINT32 Offset;\r
- UINT32 DesiredLength;\r
- UINT32 ExpDataSN;\r
+ UINT32 TargetTransferTag;\r
+ UINT32 Offset;\r
+ UINT32 DesiredLength;\r
+ UINT32 ExpDataSN;\r
} ISCSI_XFER_CONTEXT;\r
\r
typedef struct _ISCSI_IN_BUFFER_CONTEXT {\r
- UINT8 *InData;\r
- UINT32 InDataLen;\r
+ UINT8 *InData;\r
+ UINT32 InDataLen;\r
} ISCSI_IN_BUFFER_CONTEXT;\r
\r
typedef struct _ISCSI_TCB {\r
- LIST_ENTRY Link;\r
-\r
- BOOLEAN SoFarInOrder;\r
- UINT32 ExpDataSN;\r
- BOOLEAN FbitReceived;\r
- BOOLEAN StatusXferd;\r
- UINT32 ActiveR2Ts;\r
- UINT32 Response;\r
- CHAR8 *Reason;\r
- UINT32 InitiatorTaskTag;\r
- UINT32 CmdSN;\r
- UINT32 SNACKTag;\r
-\r
- ISCSI_XFER_CONTEXT XferContext;\r
-\r
- ISCSI_CONNECTION *Conn;\r
+ LIST_ENTRY Link;\r
+\r
+ BOOLEAN SoFarInOrder;\r
+ UINT32 ExpDataSN;\r
+ BOOLEAN FbitReceived;\r
+ BOOLEAN StatusXferd;\r
+ UINT32 ActiveR2Ts;\r
+ UINT32 Response;\r
+ CHAR8 *Reason;\r
+ UINT32 InitiatorTaskTag;\r
+ UINT32 CmdSN;\r
+ UINT32 SNACKTag;\r
+\r
+ ISCSI_XFER_CONTEXT XferContext;\r
+\r
+ ISCSI_CONNECTION *Conn;\r
} ISCSI_TCB;\r
\r
typedef struct _ISCSI_KEY_VALUE_PAIR {\r
- LIST_ENTRY List;\r
+ LIST_ENTRY List;\r
\r
- CHAR8 *Key;\r
- CHAR8 *Value;\r
+ CHAR8 *Key;\r
+ CHAR8 *Value;\r
} ISCSI_KEY_VALUE_PAIR;\r
\r
/**\r
**/\r
EFI_STATUS\r
IScsiConnLogin (\r
- IN OUT ISCSI_CONNECTION *Conn,\r
- IN UINT16 Timeout\r
+ IN OUT ISCSI_CONNECTION *Conn,\r
+ IN UINT16 Timeout\r
);\r
\r
/**\r
**/\r
ISCSI_CONNECTION *\r
IScsiCreateConnection (\r
- IN ISCSI_SESSION *Session\r
+ IN ISCSI_SESSION *Session\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
IScsiAddKeyValuePair (\r
- IN OUT NET_BUF *Pdu,\r
- IN CHAR8 *Key,\r
- IN CHAR8 *Value\r
+ IN OUT NET_BUF *Pdu,\r
+ IN CHAR8 *Key,\r
+ IN CHAR8 *Value\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
IScsiUpdateTargetAddress (\r
- IN OUT ISCSI_SESSION *Session,\r
- IN CHAR8 *Data,\r
- IN UINT32 Len\r
+ IN OUT ISCSI_SESSION *Session,\r
+ IN CHAR8 *Data,\r
+ IN UINT32 Len\r
);\r
\r
/**\r
VOID\r
EFIAPI\r
IScsiFreeNbufList (\r
- VOID *Arg\r
+ VOID *Arg\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
IScsiReceivePdu (\r
- IN ISCSI_CONNECTION *Conn,\r
- OUT NET_BUF **Pdu,\r
- IN ISCSI_IN_BUFFER_CONTEXT *Context OPTIONAL,\r
- IN BOOLEAN HeaderDigest,\r
- IN BOOLEAN DataDigest,\r
- IN EFI_EVENT TimeoutEvent OPTIONAL\r
+ IN ISCSI_CONNECTION *Conn,\r
+ OUT NET_BUF **Pdu,\r
+ IN ISCSI_IN_BUFFER_CONTEXT *Context OPTIONAL,\r
+ IN BOOLEAN HeaderDigest,\r
+ IN BOOLEAN DataDigest,\r
+ IN EFI_EVENT TimeoutEvent OPTIONAL\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
IScsiPadSegment (\r
- IN OUT NET_BUF *Pdu,\r
- IN UINT32 Len\r
+ IN OUT NET_BUF *Pdu,\r
+ IN UINT32 Len\r
);\r
\r
/**\r
**/\r
LIST_ENTRY *\r
IScsiBuildKeyValueList (\r
- IN CHAR8 *Data,\r
- IN UINT32 Len\r
+ IN CHAR8 *Data,\r
+ IN UINT32 Len\r
);\r
\r
/**\r
**/\r
CHAR8 *\r
IScsiGetValueByKeyFromList (\r
- IN OUT LIST_ENTRY *KeyValueList,\r
- IN CHAR8 *Key\r
+ IN OUT LIST_ENTRY *KeyValueList,\r
+ IN CHAR8 *Key\r
);\r
\r
/**\r
**/\r
VOID\r
IScsiFreeKeyValueList (\r
- IN LIST_ENTRY *KeyValueList\r
+ IN LIST_ENTRY *KeyValueList\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
IScsiNormalizeName (\r
- IN OUT CHAR8 *Name,\r
- IN UINTN Len\r
+ IN OUT CHAR8 *Name,\r
+ IN UINTN Len\r
);\r
\r
/**\r