]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/IScsiDxe/IScsiProto.c
Update the copyright notice format
[mirror_edk2.git] / MdeModulePkg / Universal / Network / IScsiDxe / IScsiProto.c
index a370e29a5c398a785269d91f513919a7422dbc8b..2390737f25186d6a694642c4253aabcfbb79fe73 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
   The implementation of iSCSI protocol based on RFC3720.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation.<BR>\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2004 - 2010, 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
@@ -215,7 +215,7 @@ IScsiCreateConnection (
                   &Conn->TimeoutEvent\r
                   );\r
   if (EFI_ERROR (Status)) {\r
-    gBS->FreePool (Conn);\r
+    FreePool (Conn);\r
     return NULL;\r
   }\r
 \r
@@ -225,8 +225,8 @@ IScsiCreateConnection (
   // set the default connection-only parameters\r
   //\r
   Conn->MaxRecvDataSegmentLength  = DEFAULT_MAX_RECV_DATA_SEG_LEN;\r
-  Conn->HeaderDigest              = ISCSI_DIGEST_NONE;\r
-  Conn->DataDigest                = ISCSI_DIGEST_NONE;\r
+  Conn->HeaderDigest              = IScsiDigestNone;\r
+  Conn->DataDigest                = IScsiDigestNone;\r
 \r
   CopyMem (&Tcp4IoConfig.LocalIp, &Session->ConfigData.NvData.LocalIp, sizeof (EFI_IPv4_ADDRESS));\r
   CopyMem (&Tcp4IoConfig.SubnetMask, &Session->ConfigData.NvData.SubnetMask, sizeof (EFI_IPv4_ADDRESS));\r
@@ -246,7 +246,7 @@ IScsiCreateConnection (
             );\r
   if (EFI_ERROR (Status)) {\r
     gBS->CloseEvent (Conn->TimeoutEvent);\r
-    gBS->FreePool (Conn);\r
+    FreePool (Conn);\r
     Conn = NULL;\r
   }\r
 \r
@@ -266,7 +266,7 @@ IScsiDestroyConnection (
   Tcp4IoDestroySocket (&Conn->Tcp4Io);\r
   NetbufQueFlush (&Conn->RspQue);\r
   gBS->CloseEvent (Conn->TimeoutEvent);\r
-  gBS->FreePool (Conn);\r
+  FreePool (Conn);\r
 }\r
 \r
 /**\r
@@ -276,7 +276,9 @@ IScsiDestroyConnection (
 \r
   @retval EFI_SUCCESS          The iSCSI session login procedure finished.\r
   @retval EFI_OUT_OF_RESOURCES Failed to allocate memory.\r
+  @retval EFI_NO_MEDIA         There was a media error.\r
   @retval Others               Other errors as indicated.\r
+\r
 **/\r
 EFI_STATUS\r
 IScsiSessionLogin (\r
@@ -287,9 +289,19 @@ IScsiSessionLogin (
   ISCSI_SESSION     *Session;\r
   ISCSI_CONNECTION  *Conn;\r
   EFI_TCP4_PROTOCOL *Tcp4;\r
+  BOOLEAN           MediaPresent;\r
 \r
   Session = &Private->Session;\r
 \r
+  //\r
+  // Check media status before session login\r
+  //\r
+  MediaPresent = TRUE;\r
+  NetLibDetectMedia (Private->Controller, &MediaPresent);\r
+  if (!MediaPresent) {\r
+    return EFI_NO_MEDIA;\r
+  }\r
+\r
   //\r
   // Create a connection for the session.\r
   //\r
@@ -868,6 +880,7 @@ IScsiUpdateTargetAddress (
   @param[in]  Arg The opaque parameter.\r
 **/\r
 VOID\r
+EFIAPI\r
 IScsiFreeNbufList (\r
   VOID *Arg\r
   )\r
@@ -875,7 +888,7 @@ IScsiFreeNbufList (
   ASSERT (Arg != NULL);\r
 \r
   NetbufFreeList ((LIST_ENTRY     *) Arg);\r
-  gBS->FreePool (Arg);\r
+  FreePool (Arg);\r
 }\r
 \r
 /**\r
@@ -884,6 +897,7 @@ IScsiFreeNbufList (
   @param[in]   Arg  The opaque parameter.\r
 **/\r
 VOID\r
+EFIAPI\r
 IScsiNbufExtFree (\r
   VOID *Arg\r
   )\r
@@ -944,7 +958,7 @@ IScsiReceivePdu (
   Len     = sizeof (ISCSI_BASIC_HEADER) + (HeaderDigest ? sizeof (UINT32) : 0);\r
   PduHdr  = NetbufAlloc (Len);\r
   if (PduHdr == NULL) {\r
-    gBS->FreePool (NbufList);\r
+    FreePool (NbufList);\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
@@ -1134,7 +1148,7 @@ IScsiCheckOpParams (
   //\r
   KeyValueList = IScsiBuildKeyValueList (Data, Len);\r
   if (KeyValueList == NULL) {\r
-    gBS->FreePool (Data);\r
+    FreePool (Data);\r
     return Status;\r
   }\r
   //\r
@@ -1146,11 +1160,11 @@ IScsiCheckOpParams (
   }\r
 \r
   if (AsciiStrCmp (Value, "CRC32") == 0) {\r
-    if (Conn->HeaderDigest != ISCSI_DIGEST_CRC32) {\r
+    if (Conn->HeaderDigest != IScsiDigestCRC32) {\r
       goto ON_ERROR;\r
     }\r
   } else if (AsciiStrCmp (Value, ISCSI_KEY_VALUE_NONE) == 0) {\r
-    Conn->HeaderDigest = ISCSI_DIGEST_NONE;\r
+    Conn->HeaderDigest = IScsiDigestNone;\r
   } else {\r
     goto ON_ERROR;\r
   }\r
@@ -1163,11 +1177,11 @@ IScsiCheckOpParams (
   }\r
 \r
   if (AsciiStrCmp (Value, "CRC32") == 0) {\r
-    if (Conn->DataDigest != ISCSI_DIGEST_CRC32) {\r
+    if (Conn->DataDigest != IScsiDigestCRC32) {\r
       goto ON_ERROR;\r
     }\r
   } else if (AsciiStrCmp (Value, ISCSI_KEY_VALUE_NONE) == 0) {\r
-    Conn->DataDigest = ISCSI_DIGEST_NONE;\r
+    Conn->DataDigest = IScsiDigestNone;\r
   } else {\r
     goto ON_ERROR;\r
   }\r
@@ -1337,7 +1351,7 @@ ON_ERROR:
 \r
   IScsiFreeKeyValueList (KeyValueList);\r
 \r
-  gBS->FreePool (Data);\r
+  FreePool (Data);\r
 \r
   return Status;\r
 }\r
@@ -1361,10 +1375,10 @@ IScsiFillOpParams (
 \r
   Session = Conn->Session;\r
 \r
-  AsciiSPrint (Value, sizeof (Value), "%a", (Conn->HeaderDigest == ISCSI_DIGEST_CRC32) ? "None,CRC32" : "None");\r
+  AsciiSPrint (Value, sizeof (Value), "%a", (Conn->HeaderDigest == IScsiDigestCRC32) ? "None,CRC32" : "None");\r
   IScsiAddKeyValuePair (Pdu, ISCSI_KEY_HEADER_DIGEST, Value);\r
 \r
-  AsciiSPrint (Value, sizeof (Value), "%a", (Conn->DataDigest == ISCSI_DIGEST_CRC32) ? "None,CRC32" : "None");\r
+  AsciiSPrint (Value, sizeof (Value), "%a", (Conn->DataDigest == IScsiDigestCRC32) ? "None,CRC32" : "None");\r
   IScsiAddKeyValuePair (Pdu, ISCSI_KEY_DATA_DIGEST, Value);\r
 \r
   AsciiSPrint (Value, sizeof (Value), "%d", Session->ErrorRecoveryLevel);\r
@@ -1485,7 +1499,7 @@ IScsiBuildKeyValueList (
       Data++;\r
       Len--;\r
     } else {\r
-      gBS->FreePool (KeyValuePair);\r
+      FreePool (KeyValuePair);\r
       goto ON_ERROR;\r
     }\r
 \r
@@ -1534,7 +1548,7 @@ IScsiGetValueByKeyFromList (
       Value = KeyValuePair->Value;\r
 \r
       RemoveEntryList (&KeyValuePair->List);\r
-      gBS->FreePool (KeyValuePair);\r
+      FreePool (KeyValuePair);\r
       break;\r
     }\r
   }\r
@@ -1559,10 +1573,10 @@ IScsiFreeKeyValueList (
     Entry         = NetListRemoveHead (KeyValueList);\r
     KeyValuePair  = NET_LIST_USER_STRUCT (Entry, ISCSI_KEY_VALUE_PAIR, List);\r
 \r
-    gBS->FreePool (KeyValuePair);\r
+    FreePool (KeyValuePair);\r
   }\r
 \r
-  gBS->FreePool (KeyValueList);\r
+  FreePool (KeyValueList);\r
 }\r
 \r
 /**\r
@@ -1678,7 +1692,7 @@ IScsiDelTcb (
 {\r
   RemoveEntryList (&Tcb->Link);\r
 \r
-  gBS->FreePool (Tcb);\r
+  FreePool (Tcb);\r
 }\r
 \r
 /**\r
@@ -1854,10 +1868,10 @@ IScsiNewScsiCmdPdu (
   ScsiCmd->CmdSN            = NTOHL (Tcb->CmdSN);\r
   ScsiCmd->ExpStatSN        = NTOHL (Tcb->Conn->ExpStatSN);\r
 \r
-  CopyMem (ScsiCmd->CDB, Packet->Cdb, sizeof (ScsiCmd->CDB));\r
+  CopyMem (ScsiCmd->Cdb, Packet->Cdb, sizeof (ScsiCmd->Cdb));\r
 \r
   if (Packet->CdbLength > 16) {\r
-    Header->Length  = NTOHS (Packet->CdbLength - 15);\r
+    Header->Length  = NTOHS ((UINT16) (Packet->CdbLength - 15));\r
     Header->Type    = ISCSI_AHS_TYPE_EXT_CDB;\r
 \r
     CopyMem (Header + 1, (UINT8 *) Packet->Cdb + 16, Packet->CdbLength - 16);\r
@@ -1969,7 +1983,7 @@ IScsiNewDataOutPdu (
   //\r
   PduHdr = NetbufAlloc (sizeof (ISCSI_SCSI_DATA_OUT));\r
   if (PduHdr == NULL) {\r
-    gBS->FreePool (NbufList);\r
+    FreePool (NbufList);\r
     return NULL;\r
   }\r
   //\r
@@ -2258,7 +2272,7 @@ IScsiOnR2TRcvd (
   R2THdr->InitiatorTaskTag = NTOHL (R2THdr->InitiatorTaskTag);\r
   R2THdr->TargetTransferTag = NTOHL (R2THdr->TargetTransferTag);\r
   R2THdr->StatSN = NTOHL (R2THdr->StatSN);\r
-  R2THdr->R2TSN = NTOHL (R2THdr->R2TSN);\r
+  R2THdr->R2TSeqNum = NTOHL (R2THdr->R2TSeqNum);\r
   R2THdr->BufferOffset = NTOHL (R2THdr->BufferOffset);\r
   R2THdr->DesiredDataTransferLength = NTOHL (R2THdr->DesiredDataTransferLength);\r
 \r
@@ -2268,7 +2282,7 @@ IScsiOnR2TRcvd (
   //\r
   // Check the sequence number.\r
   //\r
-  Status = IScsiCheckSN (&Tcb->ExpDataSN, R2THdr->R2TSN);\r
+  Status = IScsiCheckSN (&Tcb->ExpDataSN, R2THdr->R2TSeqNum);\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r