]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Bus/Usb/UsbMassStorage/Dxe/UsbMassStorage.c
Add some definitions for efi event in Uefi/UefiSpec.h to follow spec.
[mirror_edk2.git] / EdkModulePkg / Bus / Usb / UsbMassStorage / Dxe / UsbMassStorage.c
index 951ab0a186fcae887deee4c0ba17dbdb3c1ee8b4..daaf3f8fe41d72d2449e608cd43b53d685e84d2c 100644 (file)
@@ -1,6 +1,6 @@
 /*++\r
 \r
-Copyright (c) 2006, Intel Corporation\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
 All rights reserved. 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
@@ -350,6 +350,9 @@ USBFloppyReset (
   USB_FLOPPY_DEV          *UsbFloppyDevice;\r
   EFI_USB_ATAPI_PROTOCOL  *UsbAtapiInterface;\r
   EFI_STATUS              Status;\r
+  EFI_TPL                 OldTpl;\r
+\r
+  OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
 \r
   UsbFloppyDevice   = USB_FLOPPY_DEV_FROM_THIS (This);\r
 \r
@@ -360,6 +363,8 @@ USBFloppyReset (
   //\r
   Status = UsbAtapiInterface->UsbAtapiReset (UsbAtapiInterface, ExtendedVerification);\r
 \r
+  gBS->RestoreTPL (OldTpl);\r
+\r
   return Status;\r
 }\r
 \r
@@ -404,6 +409,7 @@ USBFloppyReadBlocks (
   UINTN               BlockSize;\r
   UINTN               NumberOfBlocks;\r
   BOOLEAN             MediaChange;\r
+  EFI_TPL             OldTpl;\r
 \r
   Status          = EFI_SUCCESS;\r
   MediaChange     = FALSE;\r
@@ -412,16 +418,16 @@ USBFloppyReadBlocks (
   //\r
   // Check parameters\r
   //\r
-  if (!Buffer) {\r
-    Status = EFI_INVALID_PARAMETER;\r
-    goto Done;\r
+  if (Buffer == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
   }\r
 \r
   if (BufferSize == 0) {\r
-    Status = EFI_SUCCESS;\r
-    goto Done;\r
+    return EFI_SUCCESS;\r
   }\r
 \r
+  OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
+\r
   UsbFloppyTestUnitReady (UsbFloppyDevice);\r
 \r
   Status = UsbFloppyDetectMedia (UsbFloppyDevice, &MediaChange);\r
@@ -485,6 +491,7 @@ USBFloppyReadBlocks (
     if (EFI_ERROR (Status)) {\r
       This->Reset (This, TRUE);\r
       Status = EFI_DEVICE_ERROR;\r
+      goto Done;\r
     }\r
 \r
     if (NumberOfBlocks > BLOCK_UNIT) {\r
@@ -499,6 +506,7 @@ USBFloppyReadBlocks (
  }\r
 \r
  Done:\r
+  gBS->RestoreTPL (OldTpl);\r
   return Status;\r
 }\r
 \r
@@ -546,6 +554,7 @@ USBFloppyWriteBlocks (
   UINTN               BlockSize;\r
   UINTN               NumberOfBlocks;\r
   BOOLEAN             MediaChange;\r
+  EFI_TPL             OldTpl;\r
 \r
   Status          = EFI_SUCCESS;\r
   MediaChange     = FALSE;\r
@@ -555,16 +564,16 @@ USBFloppyWriteBlocks (
   //\r
   // Check parameters\r
   //\r
-  if (!Buffer) {\r
-    Status = EFI_INVALID_PARAMETER;\r
-    goto Done;\r
+  if (Buffer == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
   }\r
 \r
   if (BufferSize == 0) {\r
-    Status = EFI_SUCCESS;\r
-    goto Done;\r
+    return EFI_SUCCESS;\r
   }\r
 \r
+  OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
+\r
   UsbFloppyTestUnitReady (UsbFloppyDevice);\r
 \r
   Status = UsbFloppyDetectMedia (UsbFloppyDevice, &MediaChange);\r
@@ -633,6 +642,7 @@ USBFloppyWriteBlocks (
     if (EFI_ERROR (Status)) {\r
       This->Reset (This, TRUE);\r
       Status = EFI_DEVICE_ERROR;\r
+      goto Done;\r
     }\r
 \r
     if (NumberOfBlocks > BLOCK_UNIT) {\r
@@ -647,7 +657,7 @@ USBFloppyWriteBlocks (
  }\r
 \r
 Done:\r
-\r
+  gBS->RestoreTPL (OldTpl);\r
   return Status;\r
 }\r
 \r