]> 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 7f6cd4daf26796f7320d227acdde074f10b9e6ef..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
@@ -24,44 +24,6 @@ Revision History
 #include "UsbMassStorage.h"\r
 #include "UsbMassStorageHelper.h"\r
 \r
-extern EFI_COMPONENT_NAME_PROTOCOL  gUsbMassStorageComponentName;\r
-\r
-//\r
-// Prototypes\r
-// Driver model protocol interface\r
-//\r
-EFI_STATUS\r
-EFIAPI\r
-USBMassStorageDriverBindingEntryPoint (\r
-  IN EFI_HANDLE           ImageHandle,\r
-  IN EFI_SYSTEM_TABLE     *SystemTable\r
-  );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-USBFloppyDriverBindingSupported (\r
-  IN EFI_DRIVER_BINDING_PROTOCOL    *This,\r
-  IN EFI_HANDLE                     Controller,\r
-  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath\r
-  );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-USBFloppyDriverBindingStart (\r
-  IN EFI_DRIVER_BINDING_PROTOCOL    *This,\r
-  IN EFI_HANDLE                     Controller,\r
-  IN EFI_DEVICE_PATH_PROTOCOL       *RemainingDevicePath\r
-  );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-USBFloppyDriverBindingStop (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL    *This,\r
-  IN  EFI_HANDLE                     Controller,\r
-  IN  UINTN                          NumberOfChildren,\r
-  IN  EFI_HANDLE                     *ChildHandleBuffer\r
-  );\r
-\r
 //\r
 // Block I/O Protocol Interface\r
 //\r
@@ -388,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
@@ -398,6 +363,8 @@ USBFloppyReset (
   //\r
   Status = UsbAtapiInterface->UsbAtapiReset (UsbAtapiInterface, ExtendedVerification);\r
 \r
+  gBS->RestoreTPL (OldTpl);\r
+\r
   return Status;\r
 }\r
 \r
@@ -442,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
@@ -450,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
@@ -523,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
@@ -537,6 +506,7 @@ USBFloppyReadBlocks (
  }\r
 \r
  Done:\r
+  gBS->RestoreTPL (OldTpl);\r
   return Status;\r
 }\r
 \r
@@ -584,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
@@ -593,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
@@ -671,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
@@ -685,7 +657,7 @@ USBFloppyWriteBlocks (
  }\r
 \r
 Done:\r
-\r
+  gBS->RestoreTPL (OldTpl);\r
   return Status;\r
 }\r
 \r