Commit in reactos/drivers/dd on MAIN
ide/.cvsignore-81.7 removed
   /ide.c-22681.61 removed
   /ide.h-2561.16 removed
   /ide.rc-391.3 removed
   /makefile-191.27 removed
   /partitio.h-411.5 removed
floppy/.cvsignore-81.5 removed
      /Makefile-201.12 removed
      /dpc.c-2791.8 removed
      /floppy.c-6091.25 removed
      /floppy.h-2581.9 removed
      /floppy.rc-381.4 removed
      /isr.c-2101.7 removed
-4053
13 removed files
Remove obsolete ide and (old) floppy drivers

reactos/drivers/dd/ide
.cvsignore removed after 1.7
diff -N .cvsignore
--- .cvsignore	20 Sep 2003 20:12:43 -0000	1.7
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,8 +0,0 @@
-*.tmp
-*.exp
-*.coff
-*.d
-*.o
-*.sym
-*.sys
-*.map

reactos/drivers/dd/ide
ide.c removed after 1.61
diff -N ide.c
--- ide.c	7 May 2004 05:12:10 -0000	1.61
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,2268 +0,0 @@
-/* $Id: ide.c,v 1.61 2004/05/07 05:12:10 royce Exp $
- *
- *  IDE.C - IDE Disk driver 
- *     written by Rex Jolliff
- *     with help from various documentation sources and a few peeks at
- *       linux and freebsd sources.
- * 
- *    This driver supports PCI controllers and up to 4 ISA controllers
- *    with up to 2 drives each.
- *    The device names are assigned as follows:
- *      \Devices\HarddiskX\Partition0
- *    for the raw device, and 
- *      \Devices\HarddiskX\PartitionY
- *    for partitions
- *    where:
- *      X is computed by counting the available drives from the following
- *          sequence: the controller number (0=0x1f0, 1=0x170, 2=0x1e8, 
- *          3=0x168) * 2 plus the drive number (0,1)
- *      Y is the partition number
- * 
- *     The driver exports the following function:
- * 
- *       DriverEntry() - NT device driver initialization routine
- * 
- *     And the following functions are exported implicitly:
- * 
- *       IDEStartIo() - called to start an I/O request packet
- *       IDEDispatchOpenClose() - Called to open/close the device.  a NOOP
- *       IDEDispatchReadWrite() - Called to read/write the device.
- *       IDEDispatchQueryInformation() - Called to get device information 
- *       IDEDispatchSetInformation() - Called to set device information
- *       IDEDispatchDeviceControl() - Called to execute device control requests
- * 
- *   Modification History:
- *     05/25/98  RJJ  Created.
- *     05/30/98  RJJ  Removed IRQ handler and inserted busy waits
- *                    just to get something working...
- *     07/18/98  RJJ  Made drastic changes so that the driver
- *                    resembles a WinNT driver.
- *     08/05/98  RJJ  Changed to .C extension
- *     09/19/98  RJJ  First release (run for cover!)
- *
- *   Test List:
- *     09/17/98  RJJ  Pri/MST: 14.12X19 WDC AC31000H  Test Passed
- *                    Pri/SLV: None.
- *     
- *
- *   To Do:
- * FIXME: a timer should be used to watch for device timeouts and errors
- * FIXME: errors should be retried
- * FIXME: a drive reset/recalibrate should be attempted if errors occur
- * FIXME: Use DMA for transfers if drives support it
- * FIXME: should we support unloading of this driver???
- * FIXME: the device information should come from AUTODETECT (via registry)
- * FIXME: really big devices need to be handled correctly
- * FIXME: should get device info from the registry
- * FIXME: should report hardware usage to iomgr
- * FIXME: finish implementation of QueryInformation
- * FIXME: finish implementation of SetInformation
- * FIXME: finish implementation of DeviceControl
- * FIXME: bring up to ATA-3 spec
- * FIXME: add general support for ATAPI devices
- * FIXME: add support for ATAPI CDROMs
- * FIXME: add support for ATAPI ZIP drives/RHDs
- * FIXME: add support for ATAPI tape drives
- */
-
-//  -------------------------------------------------------------------------
-
-#include <ddk/ntddk.h>
-
-#define NDEBUG
-#include <debug.h>
-
-#include "ide.h"
-#include "partitio.h"
-
-#define  VERSION  "V0.1.5"
-
-/* uncomment the following line to enable the secondary ide channel */
-//#define ENABLE_SECONDARY_IDE_CHANNEL
-
-//  -------------------------------------------------------  File Static Data
-
-
-typedef struct _IDE_CONTROLLER_PARAMETERS
-{
-  int              CommandPortBase;
-  int              CommandPortSpan;
-  int              ControlPortBase;
-  int              ControlPortSpan;
-  int              Vector;
-  KINTERRUPT_MODE  InterruptMode;
-} IDE_CONTROLLER_PARAMETERS, *PIDE_CONTROLLER_PARAMETERS;
-
-//  NOTE: Do not increase max drives above 2
-
-#define  IDE_MAX_DRIVES       2
-
-#define  IDE_MAX_CONTROLLERS  2
-IDE_CONTROLLER_PARAMETERS Controllers[IDE_MAX_CONTROLLERS] = 
-{
-  {0x01f0, 8, 0x03f6, 1, 14, Latched},
-  {0x0170, 8, 0x0376, 1, 15, Latched}
-/*  {0x01E8, 8, 0x03ee, 1, 11, LevelSensitive},
-  {0x0168, 8, 0x036e, 1, 10, LevelSensitive}*/
-};
-
-static BOOLEAN IDEInitialized = FALSE;
-
-//  -----------------------------------------------  Discardable Declarations
-
-#ifdef  ALLOC_PRAGMA
-
-//  make the initialization routines discardable, so that they 
-//  don't waste space
-
-#pragma  alloc_text(init, DriverEntry)
-#pragma  alloc_text(init, IDECreateController)
-#pragma  alloc_text(init, IDECreateDevices)
-#pragma  alloc_text(init, IDECreateDevice)
-#pragma  alloc_text(init, IDEPolledRead)
-
-//  make the PASSIVE_LEVEL routines pageable, so that they don't
-//  waste nonpaged memory
-
-#pragma  alloc_text(page, IDEShutdown)
-#pragma  alloc_text(page, IDEDispatchOpenClose)
-#pragma  alloc_text(page, IDEDispatchRead)
-#pragma  alloc_text(page, IDEDispatchWrite)
-
-#endif  /*  ALLOC_PRAGMA  */
-
-//  ---------------------------------------------------- Forward Declarations
-
-static NTSTATUS
-IdeFindControllers(IN PDRIVER_OBJECT DriverObject);
-
-static NTSTATUS
-IdeCreateController(IN PDRIVER_OBJECT DriverObject,
-                    IN PIDE_CONTROLLER_PARAMETERS ControllerParams,
-                    IN int ControllerIdx);
-
-static BOOLEAN IDEResetController(IN WORD CommandPort, IN WORD ControlPort);
-static BOOLEAN IDECreateDevices(IN PDRIVER_OBJECT DriverObject,
-                                IN PCONTROLLER_OBJECT ControllerObject,
-                                IN PIDE_CONTROLLER_EXTENSION ControllerExtension,
-                                IN int DriveIdx,
-                                IN int HarddiskIdx);
-static BOOLEAN IDEGetDriveIdentification(IN int CommandPort,
-                                         IN int DriveNum,
-                                         OUT PIDE_DRIVE_IDENTIFY DrvParms);
-static NTSTATUS IDECreateDiskDevice(IN PDRIVER_OBJECT DriverObject,
-                                OUT PDEVICE_OBJECT *DeviceObject,
-                                IN PCONTROLLER_OBJECT ControllerObject,
-                                IN int UnitNumber,
-                                IN ULONG DiskNumber,
-                                IN PIDE_DRIVE_IDENTIFY DrvParms,
-                                IN ULONG SectorCount);
-static NTSTATUS IDECreatePartitionDevice(IN PDRIVER_OBJECT DriverObject,
-                                         OUT PDEVICE_OBJECT *DeviceObject,
-                                         IN PCONTROLLER_OBJECT ControllerObject,
-                                         IN PVOID DiskDeviceExtension,
-                                         IN int UnitNumber,
-                                         IN ULONG DiskNumber,
-                                         IN PIDE_DRIVE_IDENTIFY DrvParms,
-                                         IN PPARTITION_INFORMATION PartitionInfo);
-static int IDEPolledRead(IN WORD Address,
-                         IN BYTE PreComp,
-                         IN BYTE SectorCnt,
-                         IN BYTE SectorNum,
-                         IN BYTE CylinderLow,
-                         IN BYTE CylinderHigh,
-                         IN BYTE DrvHead,
-                         IN BYTE Command,
-                         OUT BYTE *Buffer);
-static NTSTATUS STDCALL IDEDispatchOpenClose(IN PDEVICE_OBJECT pDO, IN PIRP Irp);
-static NTSTATUS STDCALL IDEDispatchReadWrite(IN PDEVICE_OBJECT pDO, IN PIRP Irp);
-static NTSTATUS STDCALL IDEDispatchDeviceControl(IN PDEVICE_OBJECT pDO, IN PIRP Irp);
-static VOID STDCALL IDEStartIo(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
-static IO_ALLOCATION_ACTION STDCALL
-IDEAllocateController(IN PDEVICE_OBJECT DeviceObject,
-                      IN PIRP Irp,
-                      IN PVOID MapRegisterBase,
-                      IN PVOID Ccontext);
-static BOOLEAN STDCALL
-IDEStartController(IN OUT PVOID Context);
-VOID IDEBeginControllerReset(PIDE_CONTROLLER_EXTENSION ControllerExtension);
-static BOOLEAN STDCALL IDEIsr(IN PKINTERRUPT Interrupt, IN PVOID ServiceContext);
-static VOID IDEDpcForIsr(IN PKDPC Dpc,
-                         IN PDEVICE_OBJECT DpcDeviceObject,
-                         IN PIRP DpcIrp,
-                         IN PVOID DpcContext);
-static VOID IDEFinishOperation(PIDE_CONTROLLER_EXTENSION ControllerExtension);
-static VOID STDCALL IDEIoTimer(PDEVICE_OBJECT DeviceObject, PVOID Context);
-
-//  ----------------------------------------------------------------  Inlines
-
-void
-IDESwapBytePairs(char *Buf,
-                 int Cnt)
-{
-  char  t;
-  int   i;
-
-  for (i = 0; i < Cnt; i += 2)
-    {
-      t = Buf[i];
-      Buf[i] = Buf[i+1];
-      Buf[i+1] = t;
-    }
-}
-
-//  -------------------------------------------------------  Public Interface
-
-//    DriverEntry
-//
-//  DESCRIPTION:
-//    This function initializes the driver, locates and claims 
-//    hardware resources, and creates various NT objects needed
-//    to process I/O requests.
-//
-//  RUN LEVEL:
-//    PASSIVE_LEVEL
-//
-//  ARGUMENTS:
-//    IN  PDRIVER_OBJECT   DriverObject  System allocated Driver Object
-//                                       for this driver
-//    IN  PUNICODE_STRING  RegistryPath  Name of registry driver service 
-//                                       key
-//
-//  RETURNS:
-//    NTSTATUS  
-
-STDCALL NTSTATUS
-DriverEntry(IN PDRIVER_OBJECT DriverObject,
-            IN PUNICODE_STRING RegistryPath)
-{
-  NTSTATUS Status;
-
-  DPRINT("IDE Driver %s\n", VERSION);
-
-  /* Export other driver entry points... */
-  DriverObject->DriverStartIo = IDEStartIo;
-  DriverObject->MajorFunction[IRP_MJ_CREATE] = (PDRIVER_DISPATCH)IDEDispatchOpenClose;
-  DriverObject->MajorFunction[IRP_MJ_CLOSE] = (PDRIVER_DISPATCH)IDEDispatchOpenClose;
-  DriverObject->MajorFunction[IRP_MJ_READ] = (PDRIVER_DISPATCH)IDEDispatchReadWrite;
-  DriverObject->MajorFunction[IRP_MJ_WRITE] = (PDRIVER_DISPATCH)IDEDispatchReadWrite;
-//  DriverObject->MajorFunction[IRP_MJ_QUERY_INFORMATION] = (PDRIVER_DISPATCH)IDEDispatchQueryInformation;
-//  DriverObject->MajorFunction[IRP_MJ_SET_INFORMATION] = (PDRIVER_DISPATCH)IDEDispatchSetInformation;
-  DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = (PDRIVER_DISPATCH)IDEDispatchDeviceControl;
-
-  Status = IdeFindControllers(DriverObject);
-  if (NT_SUCCESS(Status))
-    {
-      IDEInitialized = TRUE;
-    }
-
-  return(Status);
-}
-
-//  ----------------------------------------------------  Discardable statics
-
-static NTSTATUS
-IdeFindControllers(IN PDRIVER_OBJECT DriverObject)
-{
-  PCI_COMMON_CONFIG PciConfig;
-  ULONG Bus;
-  ULONG Slot;
-  ULONG Size;
-  NTSTATUS ReturnedStatus = STATUS_NO_SUCH_DEVICE;
-  NTSTATUS Status;
-  INT ControllerIdx = 0;
-  PCONFIGURATION_INFORMATION ConfigInfo;
-
-  DPRINT("IdeFindControllers() called!\n");
-
-  ConfigInfo = IoGetConfigurationInformation();
-
-  /* Search PCI busses for IDE controllers */
-  for (Bus = 0; Bus < 8; Bus++)
-    {
-      for (Slot = 0; Slot < 256; Slot++)
-	{
-	  Size = HalGetBusData(PCIConfiguration,
-			       Bus,
-			       Slot,
-			       &PciConfig,
-			       sizeof(PCI_COMMON_CONFIG));
-	  if (Size != 0)
-	    {
-	      if ((PciConfig.BaseClass == 0x01) &&
-		  (PciConfig.SubClass == 0x01))
-		{
-		  DPRINT("IDE controller found!\n");
-
-		  DPRINT("Bus %1lu  Device %2lu  Func %1lu  VenID 0x%04hx  DevID 0x%04hx\n",
-			Bus,
-			Slot>>3,
-			Slot & 0x07,
-			PciConfig.VendorID,
-			PciConfig.DeviceID);
-		  if ((PciConfig.HeaderType & 0x7FFFFFFF) == 0)
-		    {
-		      DPRINT("  IPR 0x%X  ILR 0x%X\n",
-			      PciConfig.u.type0.InterruptPin,
-			      PciConfig.u.type0.InterruptLine);
-		    }
-
-		  if (PciConfig.ProgIf & 0x01)
-		    {
-		      DPRINT("Primary channel: PCI native mode\n");
-		    }
-		  else
-		    {
-		      DPRINT("Primary channel: Compatibility mode\n");
-		      if (ConfigInfo->AtDiskPrimaryAddressClaimed == FALSE)
-			{
-			  Status = IdeCreateController(DriverObject,
-						       &Controllers[0],
-						       ControllerIdx);
-			  if (NT_SUCCESS(Status))
-			    {
-			      ControllerIdx++;
-			      ConfigInfo->AtDiskPrimaryAddressClaimed = TRUE;
-			      ConfigInfo->ScsiPortCount++;
-			      ReturnedStatus = Status;
-			    }
-			}
-		      else
-			{
-			  /*
-			   * FIXME: Switch controller to native pci mode
-			   *        if it is programmable.
-			   */
-			}
-		    }
-		  if (PciConfig.ProgIf & 0x02)
-		    {
-		      DPRINT("Primary channel: programmable\n");
-		    }
-		  else
-		    {
-		      DPRINT("Primary channel: not programmable\n");
-		    }
-
-#ifdef ENABLE_SECONDARY_IDE_CHANNEL
-		  if (PciConfig.ProgIf & 0x04)
-		    {
-		      DPRINT("Secondary channel: PCI native mode\n");
-		    }
-		  else
-		    {
-		      DPRINT("Secondary channel: Compatibility mode\n");
-		      if (ConfigInfo->AtDiskSecondaryAddressClaimed == FALSE)
-			{
-			  Status = IdeCreateController(DriverObject,
-						       &Controllers[1],
-						       ControllerIdx);
-			  if (NT_SUCCESS(Status))
-			    {
-			      ControllerIdx++;
-			      ConfigInfo->AtDiskSecondaryAddressClaimed = TRUE;
-			      ConfigInfo->ScsiPortCount++;
-			      ReturnedStatus = Status;
-			    }
-			}
-		      else
-			{
-			  /*
-			   * FIXME: Switch controller to native pci mode
-			   *        if it is programmable.
-			   */
-			}
-		    }
-		  if (PciConfig.ProgIf & 0x08)
-		    {
-		      DPRINT("Secondary channel: programmable\n");
-		    }
-		  else
-		    {
-		      DPRINT("Secondary channel: not programmable\n");
-		    }
-
-		  if (PciConfig.ProgIf & 0x80)
-		    {
-		      DPRINT("Master IDE device: 1\n");
-		    }
-		  else
-		    {
-		      DPRINT("Master IDE device: 0\n");
-		    }
-
-		  for (i = 0; i < PCI_TYPE0_ADDRESSES; i++)
-		    {
-		      DPRINT("BaseAddress: 0x%08X\n", PciConfig.u.type0.BaseAddresses[i]);
-		    }
-#endif
-		}
-	    }
-	}
-    }
-
-  /* Search for ISA IDE controller if no primary controller was found */
-  if (ConfigInfo->AtDiskPrimaryAddressClaimed == FALSE)
-    {
-      DPRINT("Searching for primary ISA IDE controller!\n");
-
-      if (IDEResetController(Controllers[0].CommandPortBase,
-			     Controllers[0].ControlPortBase))
-	{
-	  Status = IdeCreateController(DriverObject,
-				       &Controllers[0],
-				       0);
-	  if (NT_SUCCESS(Status))
-	    {
-	      DPRINT("  Found primary ISA IDE controller!\n");
-	      ControllerIdx++;
-	      ConfigInfo->AtDiskPrimaryAddressClaimed = TRUE;
-	      ConfigInfo->ScsiPortCount++;
-	      ReturnedStatus = Status;
-	    }
-	}
-    }
-
-  /* Search for ISA IDE controller if no secondary controller was found */
-#ifdef ENABLE_SECONDARY_IDE_CHANNEL
-  if (ConfigInfo->AtDiskSecondaryAddressClaimed == FALSE)
-    {
-      DPRINT("Searching for secondary ISA IDE controller!\n");
-
-      if (IDEResetController(Controllers[1].CommandPortBase,
-			     Controllers[1].ControlPortBase))
-	{
-	  Status = IdeCreateController(DriverObject,
-				       &Controllers[1],
-				       1);
-	  if (NT_SUCCESS(Status))
-	    {
-	      DPRINT("  Found secondary ISA IDE controller!\n");
-	      ControllerIdx++;
-	      ConfigInfo->AtDiskSecondaryAddressClaimed = TRUE;
-	      ConfigInfo->ScsiPortCount++;
-	      ReturnedStatus = Status;
-	    }
-	}
-    }
-#endif
-
-  DPRINT("IdeFindControllers() done!\n");
-
-  return(ReturnedStatus);
-}
-
-
-//    IdeCreateController
-//
-//  DESCRIPTION:
-//    Creates a controller object and a device object for each valid
-//    device on the controller
-//
-//  RUN LEVEL:
-//    PASSIVE LEVEL
-//
-//  ARGUMENTS:
-//    IN  PDRIVER_OBJECT  DriverObject  The system created driver object
-//    IN  PIDE_CONTROLLER_PARAMETERS    The parameter block for this
-//                    ControllerParams  controller
-//    IN  int            ControllerIdx  The index of this controller
-//
-//  RETURNS:
-//    TRUE   Devices where found on this controller
-//    FALSE  The controller does not respond or there are no devices on it
-//
-
-static NTSTATUS
-IdeCreateController(IN PDRIVER_OBJECT DriverObject,
-                    IN PIDE_CONTROLLER_PARAMETERS ControllerParams,
-                    IN int ControllerIdx)
-{
-  BOOLEAN                    CreatedDevices, ThisDriveExists;
-  int                        DriveIdx;
-  NTSTATUS                   RC;
-  PCONTROLLER_OBJECT         ControllerObject;
-  PIDE_CONTROLLER_EXTENSION  ControllerExtension;
-  ULONG MappedIrq;
-  KIRQL Dirql;
-  KAFFINITY Affinity;
-
-  ControllerObject = IoCreateController(sizeof(IDE_CONTROLLER_EXTENSION));
-  if (ControllerObject == NULL)
-    {
-      DbgPrint ("Could not create controller object for controller %d\n",
-                ControllerIdx);
-      return STATUS_NO_SUCH_DEVICE;
-    }
-
-  MappedIrq = HalGetInterruptVector(Isa,
-				    0,
-				    ControllerParams->Vector,
-				    ControllerParams->Vector,
-				    &Dirql,
-				    &Affinity);
-
-    //  Fill out Controller extension data
-  ControllerExtension = (PIDE_CONTROLLER_EXTENSION)
-      ControllerObject->ControllerExtension;
-  ControllerExtension->Number = ControllerIdx;
-  ControllerExtension->CommandPortBase = ControllerParams->CommandPortBase;
-  ControllerExtension->ControlPortBase = ControllerParams->ControlPortBase;
-  ControllerExtension->Vector = MappedIrq;
-  ControllerExtension->DMASupported = FALSE;
-  ControllerExtension->ControllerInterruptBug = FALSE;
-  ControllerExtension->OperationInProgress = FALSE;
-
-    //  Initialize the spin lock in the controller extension
-  KeInitializeSpinLock(&ControllerExtension->SpinLock);
-
-    //  Register an interrupt handler for this controller
-  RC = IoConnectInterrupt(&ControllerExtension->Interrupt,
-                          IDEIsr,
-                          ControllerExtension,
-                          &ControllerExtension->SpinLock,
-                          ControllerExtension->Vector,
-                          Dirql,
-                          Dirql,
-                          ControllerParams->InterruptMode,
-                          FALSE,
-                          Affinity,
-                          FALSE);
-  if (!NT_SUCCESS(RC))
-    {
-      DbgPrint ("Could not Connect Interrupt %d\n", 
-                ControllerExtension->Vector);
-      IoDeleteController (ControllerObject);
-      return RC;
-    }
-
-/* TEST */
-   IDEInitialized = TRUE;
-
-    //  Create device objects for each raw device (and for partitions) 
-  CreatedDevices = FALSE;
-  for (DriveIdx = 0; DriveIdx < IDE_MAX_DRIVES; DriveIdx++) 
-    {
-      ThisDriveExists = IDECreateDevices(DriverObject, 
-                                         ControllerObject,
-                                         ControllerExtension, 
-                                         DriveIdx, 
-                                         ControllerIdx * 2 + DriveIdx);
-      if (ThisDriveExists) 
-        {
-          CreatedDevices = TRUE;
-        }
-    }
-
-  if (!CreatedDevices)
-    {
-      DbgPrint ("Did not find any devices for controller %d\n", 
-                ControllerIdx);
-      IoDisconnectInterrupt (ControllerExtension->Interrupt);
-      IoDeleteController (ControllerObject);
-    }
-  else
-    {
-      IDEResetController(ControllerParams->CommandPortBase,
-                         ControllerParams->ControlPortBase);
-      IoStartTimer(ControllerExtension->TimerDevice);
-    }
-
-  return((CreatedDevices == TRUE)?STATUS_SUCCESS:STATUS_NO_SUCH_DEVICE);
-}
-
-
-//    IDEResetController
-//
-//  DESCRIPTION:
-//    Reset the controller and report completion status
-//
-//  RUN LEVEL:
-//    PASSIVE_LEVEL
-//
-//  ARGUMENTS:
-//    IN  WORD  CommandPort  The address of the command port
-//    IN  WORD  ControlPort  The address of the control port
-//
-//  RETURNS:
-//
-
-BOOLEAN  
-IDEResetController(IN WORD CommandPort, 
-                   IN WORD ControlPort) 
-{
-  int  Retries;
-
-    //  Assert drive reset line
-  IDEWriteDriveControl(ControlPort, IDE_DC_SRST);
-
-    //  Wait for min. 25 microseconds
-  KeStallExecutionProcessor(IDE_RESET_PULSE_LENGTH);
-
-    //  Negate drive reset line
-  IDEWriteDriveControl(ControlPort, 0);
-
-    //  Wait for BUSY negation
-  for (Retries = 0; Retries < IDE_RESET_BUSY_TIMEOUT * 1000; Retries++)
-    {
-      if (!(IDEReadStatus(CommandPort) & IDE_SR_BUSY))
-        {
-          break;
-        }
-      KeStallExecutionProcessor(10);
-    }
-  CHECKPOINT;
-  if (Retries >= IDE_RESET_BUSY_TIMEOUT * 1000)
-    {
-      return FALSE;
-    }
-  CHECKPOINT;
-    //  return TRUE if controller came back to life. and
-    //  the registers are initialized correctly
-  return  IDEReadError(CommandPort) == 1;
-}
-
-
-//    IDECreateDevices
-//
-//  DESCRIPTION:
-//    Create the raw device and any partition devices on this drive
-//
-//  RUN LEVEL:
-//    PASSIVE_LEVEL
-//
-//  ARGUMENTS:
-//    IN  PDRIVER_OBJECT  DriverObject  The system created driver object
-//    IN  PCONTROLLER_OBJECT         ControllerObject
-//    IN  PIDE_CONTROLLER_EXTENSION  ControllerExtension
-//                                      The IDE controller extension for
-//                                      this device
-//    IN  int             DriveIdx      The index of the drive on this
-//                                      controller
-//    IN  int             HarddiskIdx   The NT device number for this
-//                                      drive
-//
-//  RETURNS:
-//    TRUE   Drive exists and devices were created
-//    FALSE  no devices were created for this device
-//
-
-BOOLEAN
-IDECreateDevices(IN PDRIVER_OBJECT DriverObject,
-                 IN PCONTROLLER_OBJECT ControllerObject,
-                 IN PIDE_CONTROLLER_EXTENSION ControllerExtension,
-                 IN int DriveIdx,
-                 IN int HarddiskIdx)
-{
-  WCHAR                  NameBuffer[IDE_MAX_NAME_LENGTH];
-  int                    CommandPort;
-  NTSTATUS               Status;
-  IDE_DRIVE_IDENTIFY     DrvParms;
-  PDEVICE_OBJECT         DiskDeviceObject;
-  PDEVICE_OBJECT         PartitionDeviceObject;
-  UNICODE_STRING         UnicodeDeviceDirName;
-  OBJECT_ATTRIBUTES      DeviceDirAttributes;
-  HANDLE                 Handle;
-  ULONG                  SectorCount = 0;
-  PDRIVE_LAYOUT_INFORMATION PartitionList = NULL;
-  PPARTITION_INFORMATION PartitionEntry;
-  ULONG i;
-
-   /* Copy I/O port offsets for convenience */
-  CommandPort = ControllerExtension->CommandPortBase;
-//  ControlPort = ControllerExtension->ControlPortBase;
-  DPRINT("probing IDE controller %d Addr %04lx Drive %d\n",
-         ControllerExtension->Number,
-         CommandPort,
-         DriveIdx);
-
-  /* Get the Drive Identification Data */
-  if (!IDEGetDriveIdentification(CommandPort, DriveIdx, &DrvParms))
-    {
-      DPRINT("No ATA drive %d found on controller %d...\n",
-             DriveIdx,
-             ControllerExtension->Number);
-      return(FALSE);
-    }
-
-  DPRINT("Found ATA drive %d on controller %d...\n",
-           DriveIdx,
-           ControllerExtension->Number);
-
-  /* Create the harddisk device directory */
-  swprintf (NameBuffer,
-            L"\\Device\\Harddisk%d",
-            HarddiskIdx);
-  RtlInitUnicodeString(&UnicodeDeviceDirName,
-                       NameBuffer);
-  InitializeObjectAttributes(&DeviceDirAttributes,
-                             &UnicodeDeviceDirName,
-                             0,
-                             NULL,
-                             NULL);
-  Status = ZwCreateDirectoryObject(&Handle, 0, &DeviceDirAttributes);
-  if (!NT_SUCCESS(Status))
-    {
-      DbgPrint("Could not create device dir object\n");
-      return(FALSE);
-    }
-
-  /* Create the disk device */
-  if (DrvParms.Capabilities & IDE_DRID_LBA_SUPPORTED)
-    {
-      SectorCount =
-         (ULONG)((DrvParms.TMSectorCountHi << 16) + DrvParms.TMSectorCountLo);
-    }
-  else
-    {
-      SectorCount =
-         (ULONG)(DrvParms.LogicalCyls * DrvParms.LogicalHeads * DrvParms.SectorsPerTrack);
-    }
-  DPRINT("SectorCount %lu\n", SectorCount);
-
-  Status = IDECreateDiskDevice(DriverObject,
-                               &DiskDeviceObject,
-                               ControllerObject,
-                               DriveIdx,
-                               HarddiskIdx,
-                               &DrvParms,
-                               SectorCount);
-  if (!NT_SUCCESS(Status))
-    {
-      DbgPrint("IDECreateDevice call failed for raw device\n");
-      return FALSE;
-    }
-
-  /* Increase number of available physical disk drives */
-  IoGetConfigurationInformation()->DiskCount++;
-
-  /*
-   * Initialize the controller timer here
-   * (since it has to be tied to a device)
-   */
-  if (DriveIdx == 0)
-    {
-      ControllerExtension->TimerState = IDETimerIdle;
-      ControllerExtension->TimerCount = 0;
-      ControllerExtension->TimerDevice = DiskDeviceObject;
-      IoInitializeTimer(DiskDeviceObject,
-                        IDEIoTimer,
-                        ControllerExtension);
-    }
-
-  DPRINT("DrvParms.BytesPerSector %ld\n",DrvParms.BytesPerSector);
-
-  /* Read partition table */
-  Status = IoReadPartitionTable(DiskDeviceObject,
-                                DrvParms.BytesPerSector,
-                                TRUE,
-                                &PartitionList);
-  if (!NT_SUCCESS(Status))
-    {
-      DbgPrint("IoReadPartitionTable() failed\n");
-      return FALSE;
-    }
-
-  DPRINT("  Number of partitions: %u\n", PartitionList->PartitionCount);
-  for (i=0;i < PartitionList->PartitionCount; i++)
-    {
-      PartitionEntry = &PartitionList->PartitionEntry[i];
-
-      DPRINT("Partition %02ld: nr: %d boot: %1x type: %x offset: %I64d size: %I64d\n",
-             i,
-             PartitionEntry->PartitionNumber,
-             PartitionEntry->BootIndicator,
-             PartitionEntry->PartitionType,
-             PartitionEntry->StartingOffset.QuadPart / DrvParms.BytesPerSector,
-             PartitionEntry->PartitionLength.QuadPart / DrvParms.BytesPerSector);
-
-      /* Create device for partition */
-      Status = IDECreatePartitionDevice(DriverObject,
-                                        &PartitionDeviceObject,
-                                        ControllerObject,
-                                        DiskDeviceObject->DeviceExtension,
-                                        DriveIdx,
-                                        HarddiskIdx,
-                                        &DrvParms,
-                                        PartitionEntry);
-      if (!NT_SUCCESS(Status))
-        {
-          DbgPrint("IDECreateDevice() failed\n");
-          break;
-        }
-    }
-
-  if (PartitionList != NULL)
-    ExFreePool(PartitionList);
-
-  return  TRUE;
-}
-
-//    IDEGetDriveIdentification
-//
-//  DESCRIPTION:
-//    Get the identification block from the drive
-//
-//  RUN LEVEL:
-//    PASSIVE_LEVEL
-//
-//  ARGUMENTS:
-//    IN   int                  CommandPort  Address of the command port
-//    IN   int                  DriveNum     The drive index (0,1)
-//    OUT  PIDE_DRIVE_IDENTIFY  DrvParms     Address to write drive ident block
-//
-//  RETURNS:
-//    TRUE  The drive identification block was retrieved successfully
-//
-
-static BOOLEAN
-IDEGetDriveIdentification(IN int CommandPort,
-                          IN int DriveNum,
-                          OUT PIDE_DRIVE_IDENTIFY DrvParms)
-{
-
-  /* Get the Drive Identify block from drive or die */
-  if (IDEPolledRead(CommandPort, 0, 1, 0, 0, 0, (DriveNum ? IDE_DH_DRV1 : 0),
-                    IDE_CMD_IDENT_DRV, (BYTE *)DrvParms) != 0)
-    {
-      return(FALSE);
-    }
-
-  /* Report on drive parameters if debug mode */
-  IDESwapBytePairs(DrvParms->SerialNumber, 20);
-  IDESwapBytePairs(DrvParms->FirmwareRev, 8);
-  IDESwapBytePairs(DrvParms->ModelNumber, 40);
-  DPRINT("Config:%04x  Cyls:%5d  Heads:%2d  Sectors/Track:%3d  Gaps:%02d %02d\n",
-         DrvParms->ConfigBits,
-         DrvParms->LogicalCyls,
-         DrvParms->LogicalHeads,
-         DrvParms->SectorsPerTrack,
-         DrvParms->InterSectorGap,
-         DrvParms->InterSectorGapSize);
-  DPRINT("Bytes/PLO:%3d  Vendor Cnt:%2d  Serial number:[%.20s]\n",
-         DrvParms->BytesInPLO,
-         DrvParms->VendorUniqueCnt,
-         DrvParms->SerialNumber);
-  DPRINT("Cntlr type:%2d  BufSiz:%5d  ECC bytes:%3d  Firmware Rev:[%.8s]\n",
-         DrvParms->ControllerType,
-         DrvParms->BufferSize * IDE_SECTOR_BUF_SZ,
-         DrvParms->ECCByteCnt,
-         DrvParms->FirmwareRev);
-  DPRINT("Model:[%.40s]\n", DrvParms->ModelNumber);
-  DPRINT("RWMult?:%02x  LBA:%d  DMA:%d  MinPIO:%d ns  MinDMA:%d ns\n",
-         (DrvParms->RWMultImplemented) & 0xff,
-         (DrvParms->Capabilities & IDE_DRID_LBA_SUPPORTED) ? 1 : 0,
-         (DrvParms->Capabilities & IDE_DRID_DMA_SUPPORTED) ? 1 : 0,
-         DrvParms->MinPIOTransTime,
-         DrvParms->MinDMATransTime);
-  DPRINT("TM:Cyls:%d  Heads:%d  Sectors/Trk:%d Capacity:%ld\n",
-         DrvParms->TMCylinders,
-         DrvParms->TMHeads,
-         DrvParms->TMSectorsPerTrk,
-         (ULONG)(DrvParms->TMCapacityLo + (DrvParms->TMCapacityHi << 16)));
-  DPRINT("TM:SectorCount: 0x%04x%04x = %lu\n",
-         DrvParms->TMSectorCountHi,
-         DrvParms->TMSectorCountLo,
-         (ULONG)((DrvParms->TMSectorCountHi << 16) + DrvParms->TMSectorCountLo));
-
-  /*
-   * Fix default ATA sector size.
-   * Attention: Default ATAPI sector size is 2048 bytes!!
-   */
-  DPRINT("BytesPerSector %d\n", DrvParms->BytesPerSector);
-  DrvParms->BytesPerSector = 512;
-  DPRINT("BytesPerSector %d\n", DrvParms->BytesPerSector);
-
-  return(TRUE);
-}
-
-
-//    IDECreateDiskDevice
-//
-//  DESCRIPTION:
-//    Creates the disk device object
-//
-//  RUN LEVEL:
-//    PASSIVE_LEVEL
-//
-//  ARGUMENTS:
-//    IN   PDRIVER_OBJECT      DriverObject      The system supplied driver object
-//    OUT  PDEVICE_OBJECT     *DeviceObject      The created device object
-//    IN   PCONTROLLER_OBJECT  ControllerObject  The Controller for the device
-//    IN   BOOLEAN             LBASupported      Does the drive support LBA addressing?
-//    IN   BOOLEAN             DMASupported      Does the drive support DMA?
-//    IN   int                 SectorsPerLogCyl  Sectors per cylinder
-//    IN   int                 SectorsPerLogTrk  Sectors per track
-//    IN   DWORD               Offset            First valid sector for this device
-//    IN   DWORD               Size              Count of valid sectors for this device
-//
-//  RETURNS:
-//    NTSTATUS
-//
-
-NTSTATUS
-IDECreateDiskDevice(IN PDRIVER_OBJECT DriverObject,
-                    OUT PDEVICE_OBJECT *DeviceObject,
-                    IN PCONTROLLER_OBJECT ControllerObject,
-                    IN int UnitNumber,
-                    IN ULONG DiskNumber,
-                    IN PIDE_DRIVE_IDENTIFY DrvParms,
-                    IN ULONG SectorCount)
-{
-  WCHAR                  NameBuffer[IDE_MAX_NAME_LENGTH];
-  UNICODE_STRING         DeviceName;
-  NTSTATUS               RC;
-  PIDE_DEVICE_EXTENSION  DeviceExtension;
-
-  /* Create a unicode device name */
-  swprintf(NameBuffer,
-           L"\\Device\\Harddisk%d\\Partition0",
-           DiskNumber);
-  RtlInitUnicodeString(&DeviceName,
-                       NameBuffer);
-
-  /* Create the device */
-  RC = IoCreateDevice(DriverObject,
-                      sizeof(IDE_DEVICE_EXTENSION),
-                      &DeviceName,
-                      FILE_DEVICE_DISK,
-                      0,
-                      TRUE,
-                      DeviceObject);
-  if (!NT_SUCCESS(RC))
-    {
-      DbgPrint("IoCreateDevice call failed\n");
-      return(RC);
-    }
-
-  /* Set the buffering strategy here... */
-  (*DeviceObject)->Flags |= DO_DIRECT_IO;
-  (*DeviceObject)->AlignmentRequirement = FILE_WORD_ALIGNMENT;
-
-  /* Fill out Device extension data */
-  DeviceExtension = (PIDE_DEVICE_EXTENSION) (*DeviceObject)->DeviceExtension;
-  DeviceExtension->DeviceObject = (*DeviceObject);
-  DeviceExtension->ControllerObject = ControllerObject;
-  DeviceExtension->DiskDeviceExtension = DeviceExtension;
-  DeviceExtension->UnitNumber = UnitNumber;
-  DeviceExtension->LBASupported = 
-    (DrvParms->Capabilities & IDE_DRID_LBA_SUPPORTED) ? 1 : 0;
-  DeviceExtension->DMASupported = 
-    (DrvParms->Capabilities & IDE_DRID_DMA_SUPPORTED) ? 1 : 0;
-  DeviceExtension->BytesPerSector = DrvParms->BytesPerSector;
-  DeviceExtension->SectorsPerLogCyl =
-    DrvParms->LogicalHeads * DrvParms->SectorsPerTrack;
-  DeviceExtension->SectorsPerLogTrk = DrvParms->SectorsPerTrack;
-  DeviceExtension->LogicalHeads = DrvParms->LogicalHeads;
-  DeviceExtension->LogicalCylinders = 
-    (DrvParms->Capabilities & IDE_DRID_LBA_SUPPORTED) ? DrvParms->TMCylinders : DrvParms->LogicalCyls;
-
-  DeviceExtension->StartingOffset.QuadPart = 0;
-  DeviceExtension->PartitionLength.QuadPart = (ULONGLONG)SectorCount *
-                                              (ULONGLONG)DrvParms->BytesPerSector;
-  DeviceExtension->HiddenSectors = 0;
-  DeviceExtension->PartitionNumber = 0;
-  DeviceExtension->PartitionType = 0;
-  DeviceExtension->BootIndicator = FALSE;
-
-  DPRINT("%wZ: offset %I64d length %I64d\n",
-         &DeviceName,
-         DeviceExtension->StartingOffset.QuadPart,
-         DeviceExtension->PartitionLength.QuadPart);
-
-  /* Initialize the DPC object here */
-  IoInitializeDpcRequest(*DeviceObject,
-                         IDEDpcForIsr);
-
-  return  RC;
-}
-
-
-//    IDECreatePartitionDevice
-//
-//  DESCRIPTION:
-//    Creates a partition device object
-//
-//  RUN LEVEL:
-//    PASSIVE_LEVEL
-//
-//  ARGUMENTS:
-//    IN   PDRIVER_OBJECT      DriverObject      The system supplied driver object
-//    OUT  PDEVICE_OBJECT     *DeviceObject      The created device object
-//    IN   PCONTROLLER_OBJECT  ControllerObject  The Controller for the device
-//    IN   BOOLEAN             LBASupported      Does the drive support LBA addressing?
-//    IN   BOOLEAN             DMASupported      Does the drive support DMA?
-//    IN   int                 SectorsPerLogCyl  Sectors per cylinder
-//    IN   int                 SectorsPerLogTrk  Sectors per track
[truncated at 1000 lines; 1272 more skipped]

reactos/drivers/dd/ide
ide.h removed after 1.16
diff -N ide.h
--- ide.h	12 Mar 2002 20:16:53 -0000	1.16
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,256 +0,0 @@
-//
-//  IDE.H - defines and typedefs for the IDE Driver module.
-//
-
-#ifndef __IDE_H
-#define __IDE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define  IDE_MAXIMUM_DEVICES    8
-
-#define IDE_MAX_NAME_LENGTH     50
-
-#define  IDE_SECTOR_BUF_SZ         512
-#define  IDE_MAX_SECTORS_PER_XFER  256
-#define  IDE_MAX_RESET_RETRIES     10000
-#define  IDE_MAX_POLL_RETRIES      100000
-#define  IDE_MAX_WRITE_RETRIES     1000
-#define  IDE_MAX_BUSY_RETRIES      50000
-#define  IDE_MAX_DRQ_RETRIES       10000
-//#define  IDE_MAX_CMD_RETRIES       1
-#define  IDE_MAX_CMD_RETRIES       0
-#define  IDE_CMD_TIMEOUT           5
-#define  IDE_RESET_PULSE_LENGTH    500  /* maybe a little too long */
-#define  IDE_RESET_BUSY_TIMEOUT    120
-#define  IDE_RESET_DRDY_TIMEOUT    120
-
-// Control Block offsets and masks
-#define  IDE_REG_ALT_STATUS     0x0000
-#define  IDE_REG_DEV_CNTRL      0x0000  /* device control register */
-#define    IDE_DC_SRST            0x04  /* drive reset (both drives) */
-#define    IDE_DC_nIEN            0x02  /* IRQ enable (active low) */
-#define  IDE_REG_DRV_ADDR       0x0001
-
-// Command Block offsets and masks
-#define  IDE_REG_DATA_PORT      0x0000
-#define  IDE_REG_ERROR          0x0001  /* error register */
-#define    IDE_ER_AMNF            0x01  /* addr mark not found */
-#define    IDE_ER_TK0NF           0x02  /* track 0 not found */
-#define    IDE_ER_ABRT            0x04  /* command aborted */
-#define    IDE_ER_MCR             0x08  /* media change requested */
-#define    IDE_ER_IDNF            0x10  /* ID not found */
-#define    IDE_ER_MC              0x20  /* Media changed */
-#define    IDE_ER_UNC             0x40  /* Uncorrectable data error */
-#define  IDE_REG_PRECOMP        0x0001
-#define  IDE_REG_SECTOR_CNT     0x0002
-#define  IDE_REG_SECTOR_NUM     0x0003
-#define  IDE_REG_CYL_LOW        0x0004
-#define  IDE_REG_CYL_HIGH       0x0005
-#define  IDE_REG_DRV_HEAD       0x0006
-#define    IDE_DH_FIXED           0xA0
-#define    IDE_DH_LBA             0x40
-#define    IDE_DH_HDMASK          0x0F
-#define    IDE_DH_DRV0            0x00
-#define    IDE_DH_DRV1            0x10
-#define  IDE_REG_STATUS         0x0007
-#define    IDE_SR_BUSY            0x80
-#define    IDE_SR_DRDY            0x40
-#define    IDE_SR_DRQ             0x08
-#define    IDE_SR_ERR             0x01
-#define  IDE_REG_COMMAND        0x0007
-#define    IDE_CMD_READ           0x20
-#define    IDE_CMD_READ_RETRY     0x21
-#define    IDE_CMD_WRITE          0x30
-#define    IDE_CMD_WRITE_RETRY    0x31
-#define    IDE_CMD_IDENT_DRV      0xEC
-
-//
-//  Access macros for command registers
-//  Each macro takes an address of the command port block, and data
-//
-#define IDEReadError(Address) \
-  (READ_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_ERROR)))
-#define IDEWritePrecomp(Address, Data) \
-  (WRITE_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_PRECOMP), (Data)))
-#define IDEReadSectorCount(Address) \
-  (READ_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_SECTOR_CNT)))
-#define IDEWriteSectorCount(Address, Data) \
-  (WRITE_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_SECTOR_CNT), (Data)))
-#define IDEReadSectorNum(Address) \
-  (READ_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_SECTOR_NUM)))
-#define IDEWriteSectorNum(Address, Data) \
-  (WRITE_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_SECTOR_NUM), (Data)))
-#define IDEReadCylinderLow(Address) \
-  (READ_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_CYL_LOW)))
-#define IDEWriteCylinderLow(Address, Data) \
-  (WRITE_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_CYL_LOW), (Data)))
-#define IDEReadCylinderHigh(Address) \
-  (READ_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_CYL_HIGH)))
-#define IDEWriteCylinderHigh(Address, Data) \
-  (WRITE_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_CYL_HIGH), (Data)))
-#define IDEReadDriveHead(Address) \
-  (READ_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_DRV_HEAD)))
-#define IDEWriteDriveHead(Address, Data) \
-  (WRITE_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_DRV_HEAD), (Data)))
-#define IDEReadStatus(Address) \
-  (READ_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_STATUS)))
-#define IDEWriteCommand(Address, Data) \
-  (WRITE_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_COMMAND), (Data)))
-
-
-//
-//  Data block read and write commands
-//
-#define IDEReadBlock(Address, Buffer, Count) \
-  (READ_PORT_BUFFER_USHORT((PUSHORT)((Address) + IDE_REG_DATA_PORT), (PUSHORT)(Buffer), (Count) / 2))
-#define IDEWriteBlock(Address, Buffer, Count) \
-  (WRITE_PORT_BUFFER_USHORT((PUSHORT)((Address) + IDE_REG_DATA_PORT), (PUSHORT)(Buffer), (Count) / 2))
-
-//
-//  Access macros for control registers
-//  Each macro takes an address of the control port blank and data
-//
-#define IDEWriteDriveControl(Address, Data) \
-  (WRITE_PORT_UCHAR((PUCHAR)((Address) + IDE_REG_DEV_CNTRL), (Data)))
-
-//    IDE_DEVICE_EXTENSION
-//
-//  DESCRIPTION:
-//    Extension to be placed in each device object
-//
-//  ACCESS:
-//    Allocated from NON-PAGED POOL
-//    Available at any IRQL
-//
-
-typedef struct _IDE_DEVICE_EXTENSION
-{
-  PDEVICE_OBJECT         DeviceObject;
-  PCONTROLLER_OBJECT     ControllerObject;
-  PVOID                  DiskDeviceExtension;
-  int                    UnitNumber;
-  BOOLEAN                LBASupported;
-  BOOLEAN                DMASupported;
-  int                    BytesPerSector;
-  int                    LogicalHeads;
-  int                    LogicalCylinders;
-  int                    SectorsPerLogCyl;
-  int                    SectorsPerLogTrk;
-
-  LARGE_INTEGER          StartingOffset;
-  LARGE_INTEGER          PartitionLength;
-  ULONG                  HiddenSectors;
-  ULONG                  PartitionNumber;
-  UCHAR                  PartitionType;
-  BOOLEAN                BootIndicator;
-
-  int                    Operation;
-  ULONG                  BytesRequested;
-  ULONG                  BytesToTransfer;
-  ULONG                  BytesRemaining;
-  ULONG                  StartingSector;
-  int                    SectorsTransferred;
-  BYTE                  *TargetAddress;
-
-} IDE_DEVICE_EXTENSION, *PIDE_DEVICE_EXTENSION;
-
-//    IDE_TIMER_STATES
-//
-//  DESCRIPTION:
-//    An enumeration containing the states in the timer DFA
-//
-
-typedef enum _IDE_TIMER_STATES {
-  IDETimerIdle,
-  IDETimerCmdWait,
-  IDETimerResetWaitForBusyNegate,
-  IDETimerResetWaitForDrdyAssert
-} IDE_TIMER_STATES;
-
-//    IDE_CONTROLLER_EXTENSION
-//
-//  DESCRIPTION:
-//    Driver-defined structure used to hold miscellaneous controller information.
-//
-//  ACCESS:
-//    Allocated from NON-PAGED POOL
-//    Available at any IRQL
-//
-
-typedef struct _IDE_CONTROLLER_EXTENSION {
-  KSPIN_LOCK             SpinLock;
-  int                    Number;
-  int                    Vector;
-  int                    CommandPortBase;
-  int                    ControlPortBase;
-  BOOLEAN                DMASupported;
-  BOOLEAN                ControllerInterruptBug;
-  PKINTERRUPT            Interrupt;
-
-  BOOLEAN                OperationInProgress;
-  BYTE                   DeviceStatus;
-  PIDE_DEVICE_EXTENSION  DeviceForOperation;
-  PIRP                   CurrentIrp;
-  int                    Retries;
-
-  IDE_TIMER_STATES       TimerState;
-  LONG                   TimerCount;
-  PDEVICE_OBJECT         TimerDevice;
-
-} IDE_CONTROLLER_EXTENSION, *PIDE_CONTROLLER_EXTENSION;
-
-//    IDE_DRIVE_IDENTIFY
-
-typedef struct _IDE_DRIVE_IDENTIFY {
-  WORD  ConfigBits;          /*00*/
-  WORD  LogicalCyls;         /*01*/
-  WORD  Reserved02;          /*02*/
-  WORD  LogicalHeads;        /*03*/
-  WORD  BytesPerTrack;       /*04*/
-  WORD  BytesPerSector;      /*05*/
-  WORD  SectorsPerTrack;     /*06*/
-  BYTE   InterSectorGap;      /*07*/
-  BYTE   InterSectorGapSize;
-  BYTE   Reserved08H;         /*08*/
-  BYTE   BytesInPLO;
-  WORD  VendorUniqueCnt;     /*09*/
-  char   SerialNumber[20];    /*10*/
-  WORD  ControllerType;      /*20*/
-  WORD  BufferSize;          /*21*/
-  WORD  ECCByteCnt;          /*22*/
-  char   FirmwareRev[8];      /*23*/
-  char   ModelNumber[40];     /*27*/
-  WORD  RWMultImplemented;   /*47*/
-  WORD  Reserved48;          /*48*/
-  WORD  Capabilities;        /*49*/
-#define IDE_DRID_STBY_SUPPORTED   0x2000
-#define IDE_DRID_IORDY_SUPPORTED  0x0800
-#define IDE_DRID_IORDY_DISABLE    0x0400
-#define IDE_DRID_LBA_SUPPORTED    0x0200
-#define IDE_DRID_DMA_SUPPORTED    0x0100
-  WORD  Reserved50;          /*50*/
-  WORD  MinPIOTransTime;     /*51*/
-  WORD  MinDMATransTime;     /*52*/
-  WORD  TMFieldsValid;       /*53*/
-  WORD  TMCylinders;         /*54*/
-  WORD  TMHeads;             /*55*/
-  WORD  TMSectorsPerTrk;     /*56*/
-  WORD  TMCapacityLo;        /*57*/
-  WORD  TMCapacityHi;        /*58*/
-  WORD  Reserved59;          /*59*/
-  WORD  TMSectorCountLo;     /*60*/
-  WORD  TMSectorCountHi;     /*61*/
-  WORD  Reserved62[194];     /*62*/
-} IDE_DRIVE_IDENTIFY, *PIDE_DRIVE_IDENTIFY;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  /*  __IDE_H  */
-
-

reactos/drivers/dd/ide
ide.rc removed after 1.3
diff -N ide.rc
--- ide.rc	8 Sep 2002 10:22:05 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-
-#include <defines.h>
-#include <reactos/resource.h>
-
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-
-VS_VERSION_INFO VERSIONINFO
-	FILEVERSION	RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
-	PRODUCTVERSION	RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
-	FILEFLAGSMASK	0x3fL
-#ifdef _DEBUG
-	FILEFLAGS	0x1L
-#else
-	FILEFLAGS	0x0L
-#endif
-	FILEOS		0x40004L
-	FILETYPE	0x2L
-	FILESUBTYPE	0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "040904b0"
-        BEGIN
-            VALUE "CompanyName",	RES_STR_COMPANY_NAME
-            VALUE "FileDescription",	"IDE Disk Device Driver\0"
-            VALUE "FileVersion",	"0.1.4\0"
-            VALUE "InternalName",	"ide\0"
-            VALUE "LegalCopyright",	RES_STR_LEGAL_COPYRIGHT
-            VALUE "OriginalFilename",	"ide.sys\0"
-            VALUE "ProductName",	RES_STR_PRODUCT_NAME
-            VALUE "ProductVersion",	RES_STR_PRODUCT_VERSION
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x409, 1200
-    END
-END
-

reactos/drivers/dd/ide
makefile removed after 1.27
diff -N makefile
--- makefile	14 Nov 2003 17:13:25 -0000	1.27
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
-# $Id: makefile,v 1.27 2003/11/14 17:13:25 weiden Exp $
-
-PATH_TO_TOP = ../../..
-
-TARGET_TYPE = driver
-
-TARGET_NAME = ide
-
-TARGET_CFLAGS = -Wall -Werror
-
-TARGET_OBJECTS = ide.o
-
-TARGET_HEADERS = *.h
-
-TARGET_GCCLIBS = gcc
-
-include $(PATH_TO_TOP)/rules.mak
-
-include $(TOOLS_PATH)/helper.mk

reactos/drivers/dd/ide
partitio.h removed after 1.5
diff -N partitio.h
--- partitio.h	18 Aug 2000 17:24:17 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,41 +0,0 @@
-/**
-*** Partition.h - defines and structs for harddrive partition info
-***
-***  05/30/98  RJJ  Created
-**/
-
-#ifndef __PARTITION_H
-#define __PARTITION_H
-
-#define  PARTITION_MAGIC    0xaa55
-#define  PART_MAGIC_OFFSET  0x01fe
-#define  PARTITION_OFFSET   0x01be
-#define  PARTITION_TBL_SIZE 4
-#define  PTCHSToLBA(c, h, s, scnt, hcnt) ((s) & 0x3f) + \
-    (scnt) * ( (h) + (hcnt) * ((c) | (((s) & 0xc0) << 2)))
-#define  PTLBAToCHS(lba, c, h, s, scnt, hcnt) ( \
-    (s) = (lba) % (scnt) + 1,  \
-    (lba) /= (scnt), \
-    (h) = (lba) % (hcnt), \
-    (lba) /= (heads), \
-    (c) = (lba) & 0xff, \
-    (s) |= ((lba) >> 2) & 0xc0)
-
-
-typedef struct Partition {
-  unsigned char   BootFlags;
-  unsigned char   StartingHead;
-  unsigned char   StartingSector;
-  unsigned char   StartingCylinder;
-  unsigned char   PartitionType;
-  unsigned char   EndingHead;
-  unsigned char   EndingSector;
-  unsigned char   EndingCylinder;
-  unsigned int  StartingBlock;
-  unsigned int  SectorCount;
-
-} PARTITION;
-
-#endif  // PARTITION_H
-
-

reactos/drivers/dd/floppy
.cvsignore removed after 1.5
diff -N .cvsignore
--- .cvsignore	20 Sep 2003 20:12:43 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,8 +0,0 @@
-*.tmp
-*.exp
-*.coff
-*.d
-*.o
-*.sym
-*.sys
-*.map

reactos/drivers/dd/floppy
Makefile removed after 1.12
diff -N Makefile
--- Makefile	13 Nov 2003 14:22:03 -0000	1.12
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,20 +0,0 @@
-# $Id: Makefile,v 1.12 2003/11/13 14:22:03 ekohl Exp $
-
-PATH_TO_TOP = ../../..
-
-TARGET_BOOTSTRAP = yes
-
-TARGET_TYPE = driver
-
-TARGET_NAME = floppy
-
-TARGET_OBJECTS = \
-  dpc.o \
-  floppy.o \
-  isr.o
-
-TARGET_CFLAGS = -Wall -Werror
-
-include $(PATH_TO_TOP)/rules.mak
-
-include $(TOOLS_PATH)/helper.mk

reactos/drivers/dd/floppy
dpc.c removed after 1.8
diff -N dpc.c
--- dpc.c	10 May 2004 18:02:19 -0000	1.8
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,279 +0,0 @@
-/****************************************************************************
- * Defered procedure calls for floppy disk driver, reactos project, created *
- * by Phillip Susi on 2/25/2001.  This software is published under the GNU  *
- * general public license, see the README file for more details             *
- ***************************************************************************/
-
-#include <ddk/ntddk.h>
-#define NDEBUG
-#include <debug.h>
-#include "floppy.h"
-
-
-VOID STDCALL
-FloppyDpc (PKDPC Dpc,
-	   PDEVICE_OBJECT DeviceObject,
-	   PIRP Irp,
-	   PVOID Context)
-{
-  PCONTROLLER_OBJECT Controller;
-  PFLOPPY_CONTROLLER_EXTENSION ControllerExtension;
-
-  Controller = (PCONTROLLER_OBJECT)Context;
-  ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)Controller->ControllerExtension;
-
-  ControllerExtension->DpcState (Dpc,
-				 DeviceObject,
-				 Irp,
-				 Context);
-}
-
-
-VOID STDCALL
-FloppyDpcDetect (PKDPC Dpc,
-		 PDEVICE_OBJECT DeviceObject,
-		 PIRP Irp,
-		 PVOID Context)
-{
-  PCONTROLLER_OBJECT Controller;
-  PFLOPPY_CONTROLLER_EXTENSION ControllerExtension;
-
-  Controller = (PCONTROLLER_OBJECT)Context;
-  ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)Controller->ControllerExtension;
-
-  KeSetEvent (&ControllerExtension->Event,
-	      0,
-	      FALSE);
-}
-
-
-VOID STDCALL
-FloppyDpcFailIrp (PKDPC Dpc,
-		  PDEVICE_OBJECT DeviceObject,
-		  PIRP Irp,
-		  PVOID Context)
-{
-  Irp->IoStatus.Status = STATUS_DEVICE_NOT_READY;
-  Irp->IoStatus.Information = 0;
-  CHECKPOINT;
-  IoCompleteRequest (Irp,
-		     IO_NO_INCREMENT);
-}
-
-
-VOID STDCALL
-FloppyMotorSpindownDpc (PKDPC Dpc,
-			PVOID Context,
-			PVOID Arg1,
-			PVOID Arg2)
-{
-  PCONTROLLER_OBJECT Controller;
-  PFLOPPY_CONTROLLER_EXTENSION ControllerExtension;
-
-  Controller = (PCONTROLLER_OBJECT)Context;
-  ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)Controller->ControllerExtension;
-
-  /* queue call to turn off motor */
-  IoAllocateController (Controller,
-			ControllerExtension->Device,
-			FloppyExecuteSpindown,
-			ControllerExtension);
-}
-
-
-VOID STDCALL
-FloppyMotorSpinupDpc (PKDPC Dpc,
-		      PVOID Context,
-		      PVOID Arg1,
-		      PVOID Arg2)
-{
-  PCONTROLLER_OBJECT Controller;
-  PFLOPPY_CONTROLLER_EXTENSION ControllerExtension;
-  PFLOPPY_DEVICE_EXTENSION DeviceExtension;
-  LARGE_INTEGER Timeout;
-
-  Controller = (PCONTROLLER_OBJECT)Context;
-  ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)Controller->ControllerExtension;
-  DeviceExtension = (PFLOPPY_DEVICE_EXTENSION)ControllerExtension->Device->DeviceExtension;
-  Timeout.QuadPart = FLOPPY_MOTOR_SPINDOWN_TIME;
-
-  // Motor has had time to spin up, mark motor as spun up and restart IRP
-  // don't forget to set the spindown timer
-  KeSetTimer (&ControllerExtension->SpinupTimer,
-	      Timeout,
-	      &ControllerExtension->MotorSpindownDpc);
-  DPRINT ("Motor spun up, retrying operation\n");
-
-  ControllerExtension->MotorOn = DeviceExtension->DriveSelect;
-
-  IoFreeController (Controller);
-  IoAllocateController (Controller,
-			ControllerExtension->Device,
-			FloppyExecuteReadWrite,
-			ControllerExtension->Irp);
-}
-
-
-VOID STDCALL
-FloppySeekDpc (PKDPC Dpc,
-	       PDEVICE_OBJECT DeviceObject,
-	       PIRP Irp,
-	       PVOID Context)
-{
-  PFLOPPY_DEVICE_EXTENSION DeviceExtension;
-  PFLOPPY_CONTROLLER_EXTENSION ControllerExtension;
-
-  DeviceExtension = (PFLOPPY_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
-  ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)DeviceExtension->Controller->ControllerExtension;
-
-  /* If the seek failed, fail the IRP */
-  if (ControllerExtension->St0 & FLOPPY_ST0_GDMASK)
-    {
-      ControllerExtension->Irp->IoStatus.Status = STATUS_DISK_CORRUPT_ERROR;
-      ControllerExtension->Irp->IoStatus.Information = 0;
-      DPRINT ("Failing IRP: St0 = %2x, St1 = %2x, St2 = %2x\n",
-	      ControllerExtension->St0,
-	      ControllerExtension->St1,
-	      ControllerExtension->St2);
-      for (;;);
-      IoCompleteRequest (ControllerExtension->Irp,
-			 IO_NO_INCREMENT);
-      IoFreeController (DeviceExtension->Controller);
-      return;
-    }
-
-  KeStallExecutionProcessor (10000);
-
-  DPRINT ("Seek completed, now on cyl %2x\n", DeviceExtension->Cyl);
-
-  /* Now that we are on the right cyl, restart the read */
-  if (FloppyExecuteReadWrite (DeviceObject,
-			      ControllerExtension->Irp,
-			      ControllerExtension->MapRegisterBase,
-			      ControllerExtension->Irp) == DeallocateObject)
-    {
-      IoFreeController (DeviceExtension->Controller);
-    }
-}
-
-
-VOID STDCALL
-FloppyDpcReadWrite (PKDPC Dpc,
-		    PDEVICE_OBJECT DeviceObject,
-		    PIRP Irp,
-		    PVOID Context)
-{
-  PCONTROLLER_OBJECT Controller;
-  PFLOPPY_CONTROLLER_EXTENSION ControllerExtension;
-  PFLOPPY_DEVICE_EXTENSION DeviceExtension;
-  ULONG SectorSize;
-  PIO_STACK_LOCATION Stack;
-  BOOLEAN WriteToDevice;
-
-
-  Controller = (PCONTROLLER_OBJECT)Context;
-  ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)Controller->ControllerExtension;
-  DeviceExtension = (PFLOPPY_DEVICE_EXTENSION)ControllerExtension->Device->DeviceExtension;
-
-  Irp = ControllerExtension->Irp;
-
-  Stack = IoGetCurrentIrpStackLocation (Irp);
-
-  SectorSize = 128 << ControllerExtension->SectorSizeCode;
-
-  WriteToDevice = Stack->MajorFunction == IRP_MJ_WRITE ? TRUE : FALSE;
-
-  /* If the IO failed, fail the IRP */
-  if (ControllerExtension->St0 & FLOPPY_ST0_GDMASK)
-    {
-      Irp->IoStatus.Status = STATUS_DISK_CORRUPT_ERROR;
-      Irp->IoStatus.Information = 0;
-      DPRINT( "Failing IRP: St0 = %2x, St1 = %2x, St2 = %2x\n",
-	      ControllerExtension->St0,
-	      ControllerExtension->St1,
-	      ControllerExtension->St2 );
-      for(;;);
-      IoCompleteRequest (Irp,
-			 IO_NO_INCREMENT);
-      IoFreeController (Controller);
-      return;
-    }
-
-  /* Don't forget to flush the buffers */
-  IoFlushAdapterBuffers( ControllerExtension->AdapterObject,
-			 ControllerExtension->Irp->MdlAddress,
-			 ControllerExtension->MapRegisterBase,
-			 ControllerExtension->Irp->Tail.Overlay.DriverContext[0],
-			 ControllerExtension->TransferLength,
-			 WriteToDevice);
-  DPRINT ("St0 = %2x  St1 = %2x  St2 = %2x\n",
-	  ControllerExtension->St0,
-	  ControllerExtension->St1,
-	  ControllerExtension->St2);
-
-  /* Update buffer info */
-  Stack->Parameters.Read.ByteOffset.u.LowPart += ControllerExtension->TransferLength;
-  Stack->Parameters.Read.Length -= ControllerExtension->TransferLength;
-
-  /* drivercontext used for current va */
-  ControllerExtension->Irp->Tail.Overlay.DriverContext[0] = (PVOID) ((ULONG) ControllerExtension->Irp->Tail.Overlay.DriverContext[0]
-                                                                     + ControllerExtension->TransferLength);
-  DPRINT ("First ulong: %x\n", *((PULONG)ControllerExtension->MapRegisterBase))
-
-  /* If there is more IO to be done, restart execute routine to issue next read */
-  if (Stack->Parameters.Read.Length != 0)
-    {
-      if (FloppyExecuteReadWrite (DeviceObject,
-				  Irp,
-				  ControllerExtension->MapRegisterBase,
-				  Irp ) == DeallocateObject)
-	{
-	  IoFreeController (Controller);
-	}
-    }
-  else
-    {
-      /* Otherwise, complete the IRP */
-      IoCompleteRequest (Irp,
-			 IO_NO_INCREMENT);
-      IoFreeController (Controller);
-    }
-}
-
-
-VOID STDCALL
-FloppyDpcDetectMedia (PKDPC Dpc,
-		      PDEVICE_OBJECT DeviceObject,
-		      PIRP Irp,
-		      PVOID Context)
-{
-  PCONTROLLER_OBJECT Controller;
-  PFLOPPY_CONTROLLER_EXTENSION ControllerExtension;
-
-  Controller = (PCONTROLLER_OBJECT)Context;
-  ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)Controller->ControllerExtension;
-
-  /* If the read ID failed, fail the IRP */
-  if (ControllerExtension->St1 != 0)
-    {
-      DPRINT1 ("Read ID failed: ST1 = %2x\n", ControllerExtension->St1);
-      IoFreeController (Controller);
-      Irp->IoStatus.Information = 0;
-      Irp->IoStatus.Status = STATUS_DEVICE_NOT_READY;
-      IoCompleteRequest (Irp,
-			 IO_NO_INCREMENT);
-      return;
-    }
-
-  /* Set media type, and restart the IRP from the beginning */
-  ((PFLOPPY_DEVICE_EXTENSION)ControllerExtension->Device->DeviceExtension)->MediaType = 0;
-  DPRINT ("Media detected, restarting IRP\n");
-
-  /* Don't forget to free the controller so that the now queued routine may execute */
-  IoFreeController (Controller);
-
-  IoAllocateController (Controller,
-			DeviceObject,
-			FloppyExecuteReadWrite,
-			Irp);
-}

reactos/drivers/dd/floppy
floppy.c removed after 1.25
diff -N floppy.c
--- floppy.c	10 Feb 2004 16:22:55 -0000	1.25
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,609 +0,0 @@
-/*
- *  FLOPPY.C - NEC-765/8272A floppy device driver
- *   written by Rex Jolliff
- *    with help from various other sources, including but not limited to:
- *    Art Baker's NT Device Driver Book, Linux Source, and the internet.
- *
- *  Modification History:
- *    08/19/98  RJJ  Created.
- *    01/31/01  PJS  Heavy rewrite, most of code thrown out
- *
- *  To do:
- * FIXME: get it working
- * FIXME: add support for DMA hardware
- * FIXME: should add support for floppy tape/zip devices
- */
-
-#include <ddk/ntddk.h>
-
-#include "floppy.h"
-#define NDEBUG
-#include <debug.h>
-#include <rosrtl/string.h>
-
-FLOPPY_CONTROLLER_PARAMETERS ControllerParameters[FLOPPY_MAX_CONTROLLERS] = 
-{
-  {0x03f0, 6, 2, Latched}
-  //  {0x0370, 6, 6, Latched}
-};
-
-const FLOPPY_MEDIA_TYPE MediaTypes[] = {
-   { 0x02, 80, 2, 18, 512 },
-   { 0, 0, 0, 0, 0 } };
-
-static BOOLEAN
-FloppyCreateController(PDRIVER_OBJECT DriverObject,
-                       PFLOPPY_CONTROLLER_PARAMETERS ControllerParameters,
-                       int Index)
-{
-   PCONTROLLER_OBJECT ControllerObject;
-   PFLOPPY_CONTROLLER_EXTENSION ControllerExtension;
-   PFLOPPY_DEVICE_EXTENSION DeviceExtension;
-   UNICODE_STRING DeviceName;
-   NTSTATUS Status;
-   PDEVICE_OBJECT DeviceObject;
-//   PCONFIGURATION_INFORMATION ConfigInfo;
-   LARGE_INTEGER Timeout;
-//   BYTE Byte;
-//   int c;
-   PCONFIGURATION_INFORMATION Config;
-   DEVICE_DESCRIPTION DeviceDescription;
-   ULONG MaxMapRegs;
-   ULONG MappedIrq;
-   KIRQL Dirql;
-   KAFFINITY Affinity;
-   KIRQL oldIrql;
-   
-   /* FIXME: Register port ranges with HAL */
-   MappedIrq = HalGetInterruptVector(Isa,
-				     0,
-				     ControllerParameters->Vector,
-				     ControllerParameters->Vector,
-				     &Dirql,
-				     &Affinity);
-
-   /*  Create controller object for FDC  */
-   ControllerObject = IoCreateController(sizeof(FLOPPY_CONTROLLER_EXTENSION));
-   if (ControllerObject == NULL)
-     {
-	DPRINT("Could not create controller object for controller %d\n",
-	       Index);
-	return FALSE;
-     }
-   
-   /* FIXME: fill out controller data */
-   ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)
-     ControllerObject->ControllerExtension;
-   ControllerExtension->Number = Index;
-   ControllerExtension->PortBase = ControllerParameters->PortBase;
-   ControllerExtension->Vector = MappedIrq;
-   KeInitializeEvent( &ControllerExtension->Event, SynchronizationEvent, FALSE );
-   ControllerExtension->Device = 0;  // no active device
-   ControllerExtension->Irp = 0;     // no active IRP
-   /*  Initialize the spin lock in the controller extension  */
-   KeInitializeSpinLock(&ControllerExtension->SpinLock);
-   ControllerExtension->IsrState = FloppyIsrDetect;
-   ControllerExtension->DpcState = FloppyDpcDetect;
-   
-   /*  Register an interrupt handler for this controller  */
-   Status = IoConnectInterrupt(&ControllerExtension->Interrupt,
-			       FloppyIsr, 
-			       ControllerObject, 
-			       &ControllerExtension->SpinLock, 
-			       MappedIrq, 
-			       Dirql, 
-			       Dirql, 
-			       ControllerParameters->InterruptMode, 
-			       FALSE, 
-			       Affinity, 
-			       FALSE);
-   if (!NT_SUCCESS(Status)) 
-     {
-	DPRINT("Could not Connect Interrupt %d\n", 
-	       ControllerExtension->Vector);
-	goto controllercleanup;
-     }
-
-   
-   /* setup DMA stuff for controller */
-   DeviceDescription.Version = DEVICE_DESCRIPTION_VERSION;
-   DeviceDescription.Master = FALSE;
-   DeviceDescription.ScatterGather = FALSE;
-   DeviceDescription.AutoInitialize = FALSE;
-   DeviceDescription.Dma32BitAddresses = FALSE;
-   DeviceDescription.DmaChannel = ControllerParameters->DmaChannel;
-   DeviceDescription.InterfaceType = Isa;
-   //   DeviceDescription.DmaWidth = Width8Bits;
-   ControllerExtension->AdapterObject = HalGetAdapter( &DeviceDescription, &MaxMapRegs );
-   if( ControllerExtension->AdapterObject == NULL )
-      {
-	 DPRINT1( "Could not get adapter object\n" );
-	 goto interruptcleanup;
-      }
-			     
-#if 0
-   /*  Check for each possible drive and create devices for them */
-   for (DriveIdx = 0; DriveIdx < FLOPPY_MAX_DRIVES; DriveIdx++)
-     {
-	/* FIXME: try to identify the drive */
-	/* FIXME: create a device if it's there */
-     }
-#endif
-    
-   /* FIXME: Let's assume one drive and one controller for the moment */
-   RtlRosInitUnicodeStringFromLiteral(&DeviceName, L"\\Device\\Floppy0");
-   Status = IoCreateDevice(DriverObject,
-			   sizeof(FLOPPY_DEVICE_EXTENSION),
-			   &DeviceName,
-			   FILE_DEVICE_DISK,
-			   FILE_REMOVABLE_MEDIA | FILE_FLOPPY_DISKETTE,
-			   FALSE,
-			   &DeviceObject);
-   if (!NT_SUCCESS(Status))
-     {
-	goto interruptcleanup;
-     }
-   DeviceExtension = (PFLOPPY_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
-   DeviceExtension->DriveSelect = 0;
-   DeviceExtension->Controller = ControllerObject;
-   DeviceExtension->MediaType = ~0;
-   ControllerExtension->MotorOn = ~0;
-   // set up DPC
-   ControllerExtension->Device = DeviceObject;
-   KeInitializeDpc( &ControllerExtension->MotorSpinupDpc,
-		    FloppyMotorSpinupDpc,
-		    ControllerObject );
-   KeInitializeDpc( &ControllerExtension->MotorSpindownDpc,
-		    FloppyMotorSpindownDpc,
-		    ControllerObject );
-   KeInitializeTimer( &ControllerExtension->SpinupTimer );
-   IoInitializeDpcRequest( DeviceObject, FloppyDpc );
-   // reset controller and wait for interrupt
-   DPRINT( "Controller Off\n" );
-   FloppyWriteDOR( ControllerExtension->PortBase, 0 );
-   // let controller reset for at least FLOPPY_RESET_TIME
-   KeStallExecutionProcessor( FLOPPY_RESET_TIME );
-   DPRINT( "Controller On\n" ); 
-   FloppyWriteDOR( ControllerExtension->PortBase, FLOPPY_DOR_ENABLE | FLOPPY_DOR_DMA );
-   // wait for interrupt now
-   Timeout.QuadPart = -10000000;
-   Status = KeWaitForSingleObject( &ControllerExtension->Event,
-				   Executive,
-				   KernelMode,
-				   FALSE,
-				   &Timeout );
-   if( Status != STATUS_WAIT_0 )
-      {
-	 DPRINT1( "Error: KeWaitForSingleObject returned: %x\n", Status );
-	 goto devicecleanup;
-      }
-   // set for high speed mode
-   //   FloppyWriteCCNTL( ControllerExtension->PortBase, FLOPPY_CCNTL_1MBIT );
-   // ok, so we have an FDC, now check for drives
-   // aparently the sense drive status command does not work on any FDC I can find
-   // so instead we will just have to assume a 1.44 meg 3.5 inch floppy.  At some
-   // point we should get the bios disk parameters passed in to the kernel at boot
-   // and stored in the HARDWARE registry key for us to pick up here.
-
-   // Issue SPECIFY command
-   FloppyWriteDATA (ControllerExtension->PortBase, FLOPPY_CMD_SPEC_CHARS);
-   KeStallExecutionProcessor (100);
-   FloppyWriteDATA (ControllerExtension->PortBase, 0xD1);
-   KeStallExecutionProcessor (100);
-   FloppyWriteDATA (ControllerExtension->PortBase, 0x02);
-   KeStallExecutionProcessor (10000);
-   FloppyWriteMSTAT (ControllerExtension->PortBase, 0x00);
-
-
-   // turn on motor, wait for spinup time, and recalibrate the drive
-   FloppyWriteDOR( ControllerExtension->PortBase, FLOPPY_DRIVE0_ON );
-   Timeout.QuadPart = FLOPPY_MOTOR_SPINUP_TIME;
-   KeDelayExecutionThread( KernelMode, FALSE, &Timeout );
-   DPRINT( "MSTAT: %2x\n", FloppyReadMSTAT( ControllerExtension->PortBase ) );
-   FloppyWriteDATA( ControllerExtension->PortBase, FLOPPY_CMD_RECAL );
-   DPRINT( "MSTAT: %2x\n", FloppyReadMSTAT( ControllerExtension->PortBase ) );
-   KeStallExecutionProcessor( 10000 );
-   FloppyWriteDATA( ControllerExtension->PortBase, 0 ); // drive select
-   Timeout.QuadPart = FLOPPY_RECAL_TIMEOUT;
-   Status = KeWaitForSingleObject( &ControllerExtension->Event,
-				   Executive,
-				   KernelMode,
-				   FALSE,
-				   &Timeout );
-   if( Status != STATUS_WAIT_0 )
-      {
-	 DPRINT1( "Error: KeWaitForSingleObject returned: %x\n", Status );
-	 goto devicecleanup;
-      }
-   if( ControllerExtension->St0 != FLOPPY_ST0_SEEKGD )
-     {
-       DbgPrint( "Floppy: error recalibrating drive, ST0: %2x\n", (DWORD)ControllerExtension->St0 );
-       goto devicecleanup;
-     }
-   DeviceExtension->Cyl = 0;
-   // drive is good, and it is now on track 0, turn off the motor
-   FloppyWriteDOR( ControllerExtension->PortBase, FLOPPY_DOR_ENABLE | FLOPPY_DOR_DMA );
-   /* Initialize the device */
-   DeviceObject->Flags = DeviceObject->Flags | DO_DIRECT_IO;
-   DeviceObject->AlignmentRequirement = FILE_512_BYTE_ALIGNMENT;
-   // change state machine, no interrupt expected
-   ControllerExtension->IsrState = FloppyIsrUnexpected;
-   Config = IoGetConfigurationInformation();
-   Config->FloppyCount++;
-   // call IoAllocateAdapterChannel, and wait for execution routine to be given the channel
-   CHECKPOINT;
-   
-   /* DDK: IoAllocateAdapterChannel _must_ be called at DISPATCH_LEVEL */
-   KeRaiseIrql(DISPATCH_LEVEL, &oldIrql);
-   Status = IoAllocateAdapterChannel( ControllerExtension->AdapterObject,
-				      DeviceObject,
-				      0x3000/PAGE_SIZE,  // max track size is 12k
-				      FloppyAdapterControl,
-				      ControllerExtension );
-   KeLowerIrql(oldIrql);              
-              
-   if( !NT_SUCCESS( Status ) )
-     {
-       DPRINT1( "Error: IoAllocateAdapterChannel returned %x\n", Status );
-       goto devicecleanup;
-     }
-   CHECKPOINT;
-   Status = KeWaitForSingleObject( &ControllerExtension->Event,
-				   Executive,
-				   KernelMode,
-				   FALSE,
-				   &Timeout );
-   CHECKPOINT;
-   if( Status != STATUS_WAIT_0 )
-      {
-	 DPRINT1( "Error: KeWaitForSingleObject returned: %x\n", Status );
-	 goto devicecleanup;
-      }
-   // Ok, we own the adapter object, from now on we can just IoMapTransfer, and not
-   // bother releasing the adapter ever.
-
-   DPRINT( "Floppy drive initialized\n" );
-   return TRUE;
-
- devicecleanup:
-   IoDeleteDevice( DeviceObject );
- interruptcleanup:
-   IoDisconnectInterrupt(ControllerExtension->Interrupt);
- controllercleanup:
-   // turn off controller
-   FloppyWriteDOR( ControllerExtension->PortBase, 0 );
-   IoDeleteController(ControllerObject);
-   return FALSE;
-}
-
-IO_ALLOCATION_ACTION STDCALL
-FloppyExecuteSpindown(PDEVICE_OBJECT DeviceObject,
-		      PIRP Irp,
-		      PVOID MapRegisterbase,
-		      PVOID Context)
-{
-   PFLOPPY_CONTROLLER_EXTENSION ControllerExtension= (PFLOPPY_CONTROLLER_EXTENSION)Context;
-
-   // turn off motor, and return
-   DPRINT( "Spinning down motor\n" );
-   ControllerExtension->MotorOn = ~0;
-   FloppyWriteDOR( ControllerExtension->PortBase,
-		   FLOPPY_DOR_ENABLE | FLOPPY_DOR_DMA );
-   return DeallocateObject;
-}
-
-IO_ALLOCATION_ACTION STDCALL
-FloppyExecuteReadWrite(PDEVICE_OBJECT DeviceObject,
-		       PIRP Irp,
-		       PVOID MapRegisterbase,
-		       PVOID Context)
-{
-   PFLOPPY_DEVICE_EXTENSION DeviceExtension = (PFLOPPY_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
-   PFLOPPY_CONTROLLER_EXTENSION ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)DeviceExtension->Controller->ControllerExtension;
-   LARGE_INTEGER Timeout;
-   BOOLEAN WriteToDevice;
-   ULONG Cyl, Sector, Head;
-   PIO_STACK_LOCATION Stk;
-   ULONG Length;
-
-   DPRINT( "FloppyExecuteReadWrite()\n" );
-
-   ControllerExtension->Irp = Irp = (PIRP)Context;
-   Stk = IoGetCurrentIrpStackLocation( Irp );
-   ControllerExtension->Device = DeviceObject;
-   Timeout.QuadPart = FLOPPY_MOTOR_SPINUP_TIME;
-   CHECKPOINT;
-   WriteToDevice = Stk->MajorFunction == IRP_MJ_WRITE ? TRUE : FALSE;
-   // verify drive is spun up and selected
-   if( ControllerExtension->MotorOn != DeviceExtension->DriveSelect )
-      {
-	 // turn on and select drive, and allow it to spin up
-	 // FloppyMotorSpinupDpc will restart this operation once motor is spun up
-	 DPRINT( "Motor not on, turning it on now\n" );
-	 FloppyWriteDOR( ControllerExtension->PortBase,
-			 DeviceExtension->DriveSelect ? FLOPPY_DRIVE1_ON : FLOPPY_DRIVE0_ON );
-	 // cancel possible spindown timer first
-	 KeCancelTimer( &ControllerExtension->SpinupTimer );
-	 KeSetTimerEx( &ControllerExtension->SpinupTimer,
-		       Timeout,
-		       0,
-		       &ControllerExtension->MotorSpinupDpc );
-	 return KeepObject;
-      }
-   else
-      {
-	 Timeout.QuadPart = FLOPPY_MOTOR_SPINDOWN_TIME;
-	 // motor is already spinning, so reset the spindown timer
-	 KeCancelTimer( &ControllerExtension->SpinupTimer );
-	 KeSetTimer( &ControllerExtension->SpinupTimer,
-		     Timeout,
-		     &ControllerExtension->MotorSpindownDpc );
-      }
-#if 0
-   /* Handle disk change, doesn't work correctly */
-   if( FloppyReadDIR( ControllerExtension->PortBase ) & FLOPPY_DI_DSKCHNG )
-      {
-	 // No disk is in the drive
-	 DPRINT( "No disk is in the drive\n" );
-	 Irp->IoStatus.Status = STATUS_MEDIA_CHANGED;
-	 Irp->IoStatus.Information = 0;
-	 IoCompleteRequest( Irp, 0 );
-	 return DeallocateObject;
-      }
-#endif
-   if( DeviceExtension->MediaType == ~0 )
-      {
-	 // media is in disk, but we have not yet detected what kind it is,
-	 // so detect it now
-	 // First, we need to recalibrate the drive though
-	 ControllerExtension->IsrState = FloppyIsrRecal;
-	 DPRINT( "Recalibrating drive\n" );
-	 KeStallExecutionProcessor( 1000 );
-	 FloppyWriteDATA( ControllerExtension->PortBase, FLOPPY_CMD_RECAL );
-	 KeStallExecutionProcessor( 1000 );
-	 FloppyWriteDATA( ControllerExtension->PortBase, DeviceExtension->DriveSelect );
-	 return KeepObject;
-      }
-   // looks like we have media in the drive.... do the read
-   // first, calculate geometry for read
-   Sector = Stk->Parameters.Read.ByteOffset.u.LowPart / MediaTypes[DeviceExtension->MediaType].BytesPerSector;
-   // absolute sector right now
-   Cyl = Sector / MediaTypes[DeviceExtension->MediaType].SectorsPerTrack;
-   DPRINT( "Sector = %x, Offset = %x, Cyl = %x, Heads = %x MediaType = %x\n", Sector, Stk->Parameters.Read.ByteOffset.u.LowPart, (DWORD)Cyl, (DWORD)MediaTypes[DeviceExtension->MediaType].Heads, (DWORD)DeviceExtension->MediaType );
-   Head = Cyl % MediaTypes[DeviceExtension->MediaType].Heads;
-   DPRINT( "Head = %2x\n", Head );
-   // convert absolute cyl to relative
-   Cyl /= MediaTypes[DeviceExtension->MediaType].Heads;
-   // convert absolute sector to relative
-   Sector %= MediaTypes[DeviceExtension->MediaType].SectorsPerTrack;
-   Sector++;  // track relative sector numbers are 1 based, not 0 based
-   DPRINT( "Cyl = %2x, Head = %2x, Sector = %2x\n", Cyl, Head, Sector );
-
-   // seek if we need to seek
-   if( DeviceExtension->Cyl != Cyl )
-     {
-       DPRINT( "Seeking...\n" );
-       ControllerExtension->IsrState = FloppyIsrDetect;
-       ControllerExtension->DpcState = FloppySeekDpc;
-       FloppyWriteDATA( ControllerExtension->PortBase, FLOPPY_CMD_SEEK );
-       KeStallExecutionProcessor( 100 );
-       FloppyWriteDATA( ControllerExtension->PortBase, DeviceExtension->DriveSelect );
-       KeStallExecutionProcessor( 100 );
-       FloppyWriteDATA( ControllerExtension->PortBase, Cyl );
-       return KeepObject;
-     }
-   //set up DMA and issue read command
-   Length = MediaTypes[DeviceExtension->MediaType].SectorsPerTrack - Sector + 1;
-   // number of sectors untill end of track
-   Length *= 512;   // convert to bytes
-   if( Length > Stk->Parameters.Read.Length )
-     Length = Stk->Parameters.Read.Length;
-   DPRINT( "Sector: %d, Length: %d\n", Sector, Length );
-   ControllerExtension->TransferLength = Length;
-   IoMapTransfer( ControllerExtension->AdapterObject,
-		  Irp->MdlAddress,
-		  ControllerExtension->MapRegisterBase,
-		  Irp->Tail.Overlay.DriverContext[0], // current va
-		  &Length,
-		  WriteToDevice );
-   ControllerExtension->IsrState = FloppyIsrReadWrite;
-   ControllerExtension->DpcState = FloppyDpcReadWrite;
-   CHECKPOINT;
-   FloppyWriteDATA( ControllerExtension->PortBase, WriteToDevice ? FLOPPY_CMD_WRITE : FLOPPY_CMD_READ );
-   KeStallExecutionProcessor( 100 );
-   FloppyWriteDATA( ControllerExtension->PortBase, ( Head << 2 ) | DeviceExtension->DriveSelect );
-   KeStallExecutionProcessor( 100 );
-   FloppyWriteDATA( ControllerExtension->PortBase, Cyl );
-   KeStallExecutionProcessor( 100 );
-   FloppyWriteDATA( ControllerExtension->PortBase, Head );
-   KeStallExecutionProcessor( 100 );
-   FloppyWriteDATA( ControllerExtension->PortBase, Sector );
-   KeStallExecutionProcessor( 100 );
-   FloppyWriteDATA( ControllerExtension->PortBase, MediaTypes[DeviceExtension->MediaType].SectorSizeCode );
-   KeStallExecutionProcessor( 100 );
-   FloppyWriteDATA( ControllerExtension->PortBase, MediaTypes[DeviceExtension->MediaType].SectorsPerTrack );
-   KeStallExecutionProcessor( 100 );
-   FloppyWriteDATA( ControllerExtension->PortBase, 0 );
-   KeStallExecutionProcessor( 100 );
-   FloppyWriteDATA( ControllerExtension->PortBase, 0xFF );
-   CHECKPOINT;
-   // eventually, the FDC will interrupt and we will read results then
-   return KeepObject;
-}
-
-
-NTSTATUS STDCALL
-FloppyDispatchOpenClose (PDEVICE_OBJECT DeviceObject,
-			 PIRP Irp)
-{
-  DPRINT ("FloppyDispatchOpenClose\n");
-  return STATUS_SUCCESS;
-}
-
-
-NTSTATUS STDCALL
-FloppyDispatchReadWrite (PDEVICE_OBJECT DeviceObject,
-			 PIRP Irp)
-{
-  PFLOPPY_DEVICE_EXTENSION DeviceExtension;
-  PIO_STACK_LOCATION Stack;
-  KIRQL oldlvl;
-
-  DeviceExtension = (PFLOPPY_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
-
-  Stack = IoGetCurrentIrpStackLocation (Irp);
-
-  if (Stack->Parameters.Read.ByteOffset.u.HighPart)
-    {
-      Irp->IoStatus.Status = STATUS_INVALID_PARAMETER;
-      Irp->IoStatus.Information = 0;
-      IoCompleteRequest (Irp, 1);
-      return STATUS_INVALID_PARAMETER;
-    }
-
-  /* Store currentva in drivercontext */
-  Irp->Tail.Overlay.DriverContext[0] = MmGetMdlVirtualAddress (Irp->MdlAddress);
-  DPRINT ("FloppyDispatchReadWrite: offset = %x, length = %x, va = %x\n",
-	  Stack->Parameters.Read.ByteOffset.u.LowPart,
-	  Stack->Parameters.Read.Length,
-	  Irp->Tail.Overlay.DriverContext[0]);
-
-  /* Queue IRP */
-  Irp->IoStatus.Status = STATUS_SUCCESS;
-  Irp->IoStatus.Information = Stack->Parameters.Read.Length;
-  IoMarkIrpPending (Irp);
-
-  KeRaiseIrql (DISPATCH_LEVEL,
-	       &oldlvl);
-  IoAllocateController (DeviceExtension->Controller,
-			DeviceObject,
-			FloppyExecuteReadWrite,
-			Irp);
-  KeLowerIrql (oldlvl);
-
-  DPRINT( "oldlvl = %x\n", oldlvl );
-
-  return STATUS_PENDING;
-}
-
-
-IO_ALLOCATION_ACTION STDCALL
-FloppyAdapterControl (PDEVICE_OBJECT DeviceObject,
-		      PIRP Irp,
-		      PVOID MapRegisterBase,
-		      PVOID Context)
-{
-  PFLOPPY_CONTROLLER_EXTENSION ControllerExtension;
-
-  ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)Context;
-  CHECKPOINT;
-
-  /* Just set the event, and return KeepObject */
-  ControllerExtension->MapRegisterBase = MapRegisterBase;
-  KeSetEvent (&ControllerExtension->Event,
-	      0,
-	      FALSE);
-
-  return KeepObject;
-}
-
-
-NTSTATUS STDCALL
-FloppyDispatchDeviceControl (PDEVICE_OBJECT DeviceObject,
-			     PIRP Irp)
-{
-  PIO_STACK_LOCATION Stack;
-  ULONG ControlCode;
-  ULONG InputLength;
-  ULONG OutputLength;
-  NTSTATUS Status;
-
-  DPRINT ("FloppyDispatchDeviceControl\n");
-
-  Stack = IoGetCurrentIrpStackLocation(Irp);
-  ControlCode = Stack->Parameters.DeviceIoControl.IoControlCode;
-  InputLength = Stack->Parameters.DeviceIoControl.InputBufferLength;
-  OutputLength = Stack->Parameters.DeviceIoControl.OutputBufferLength;
-
-  switch (ControlCode)
-    {
-      case IOCTL_DISK_GET_DRIVE_GEOMETRY:
-	if (OutputLength < sizeof(DISK_GEOMETRY))
-	  {
-	    Status = STATUS_INVALID_PARAMETER;
-	  }
-	else
-	  {
-	    PDISK_GEOMETRY Geometry = Irp->AssociatedIrp.SystemBuffer;
-
-	    // FIXME: read the first sector of the diskette
-	    Geometry->MediaType = F3_1Pt44_512;
-	    Geometry->Cylinders.QuadPart = 80;
-	    Geometry->TracksPerCylinder = 2 * 18;
-	    Geometry->SectorsPerTrack = 18;
-	    Geometry->BytesPerSector = 512;
-	    Status = STATUS_SUCCESS;
-	    Irp->IoStatus.Information = sizeof(DISK_GEOMETRY);
-	  }
-	break;
-
-      default:
-	Status = STATUS_INVALID_DEVICE_REQUEST;
-	Irp->IoStatus.Information = 0;
-	break;
-    }
-
-  Irp->IoStatus.Status = Status;
-  IoCompleteRequest (Irp,
-		     NT_SUCCESS(Status) ? IO_DISK_INCREMENT : IO_NO_INCREMENT);
-
-  return Status;
-}
-
-
-/*
- *  DriverEntry
- *
- *  DESCRIPTION:
- *    This function initializes the driver, locates and claims 
- *    hardware resources, and creates various NT objects needed
- *    to process I/O requests.
- *
- *  RUN LEVEL:
- *    PASSIVE_LEVEL
- *
- *  ARGUMENTS:
- *    IN  PDRIVER_OBJECT   DriverObject  System allocated Driver Object
- *                                       for this driver
- *    IN  PUNICODE_STRING  RegistryPath  Name of registry driver service 
- *                                       key
- *
- *  RETURNS:
- *    NTSTATUS
- */
-NTSTATUS STDCALL
-DriverEntry (IN PDRIVER_OBJECT DriverObject,
-	     IN PUNICODE_STRING RegistryPath)
-{
-  DPRINT ("Floppy driver\n");
-
-  /* Export other driver entry points... */
-  DriverObject->MajorFunction[IRP_MJ_CREATE] = FloppyDispatchOpenClose;
-  DriverObject->MajorFunction[IRP_MJ_CLOSE] = FloppyDispatchOpenClose;
-  DriverObject->MajorFunction[IRP_MJ_READ] = FloppyDispatchReadWrite;
-  DriverObject->MajorFunction[IRP_MJ_WRITE] = FloppyDispatchReadWrite;
-  DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = FloppyDispatchDeviceControl;
-
-  /*  Try to detect controller and abort if it fails */
-  if (!FloppyCreateController (DriverObject,
-			       &ControllerParameters[0],
-			       0))
-    {
-      DPRINT ("Could not find floppy controller\n");
-      return STATUS_NO_SUCH_DEVICE;
-    }
-
-   return STATUS_SUCCESS;
-}
-
-/* EOF */

reactos/drivers/dd/floppy
floppy.h removed after 1.9
diff -N floppy.h
--- floppy.h	4 Nov 2003 23:30:59 -0000	1.9
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,258 +0,0 @@
-//
-//  Floppy register definitions
-//
-
-#define  FLOPPY_REG_DOR        0x0002
-#define   FLOPPY_DOR_ENABLE      0x04
-#define   FLOPPY_DOR_DMA         0x08
-#define   FLOPPY_DOR_MOTOR0      0x10
-#define   FLOPPY_DOR_MOTOR1      0x20
-#define   FLOPPY_DRIVE0_ON    ( FLOPPY_DOR_ENABLE | FLOPPY_DOR_DMA | FLOPPY_DOR_MOTOR0 )
-#define   FLOPPY_DRIVE1_ON    ( FLOPPY_DOR_ENABLE | FLOPPY_DOR_DMA | FLOPPY_DOR_MOTOR1 | 1 )
-#define  FLOPPY_REG_MSTAT      0x0004
-#define    FLOPPY_MS_DRV0BUSY    0x01
-#define    FLOPPY_MS_DRV1BUSY    0x02
-#define    FLOPPY_MS_DRV2BUSY    0x04
-#define    FLOPPY_MS_DRV3BUSY    0x08
-#define    FLOPPY_MS_FDCBUSY     0x10
-#define    FLOPPY_MS_DMAMODE     0x20
-#define    FLOPPY_MS_DATADIR     0x40
-#define    FLOPPY_MS_RDYMASK     0xC0
-#define    FLOPPY_MS_DATARDYW    0x80
-#define    FLOPPY_MS_DATARDYR    0xC0
-#define  FLOPPY_REG_DATA       0x0005
-#define  FLOPPY_REG_DIR        0x0007  /* READ ONLY */
-#define    FLOPPY_DI_DSKCHNG     0x80
-#define  FLOPPY_REG_CCNTL      0x0007  /* WRITE ONLY */
-#define    FLOPPY_CCNTL_1MBIT    0x03
-
-#define  FLOPPY_CMD_RD_TRK       0x02
-#define  FLOPPY_CMD_SPEC_CHARS   0x03
-#define    FLOPPY_CSC_SRT_SHIFT       4
-#define    FLOPPY_CSC_HUT_MASK     0x0f
-#define    FLOPPY_CSC_HLT_SHIFT       1
-#define    FLOPPY_CSC_NON_DMA      0x01
-#define  FLOPPY_CMD_SNS_DRV      0x04
-#define  FLOPPY_CMD_WRT_DATA     0x05
-#define  FLOPPY_CMD_RD_DATA      0x06
-#define  FLOPPY_CMD_RECAL        0x07
-#define  FLOPPY_CMD_SNS_INTR     0x08
-#define    FLOPPY_ST0_SEEKGD     0x20
-#define    FLOPPY_ST0_GDMASK     0xd8
-#define  FLOPPY_CMD_WRT_DEL      0x09
-#define  FLOPPY_CMD_RD_ID        0x0a
-#define  FLOPPY_CMD_RD_DEL       0x0c
-#define  FLOPPY_CMD_FMT_TRK      0x0d
-#define  FLOPPY_CMD_DUMP_FDC     0x0e
-#define  FLOPPY_CMD_SEEK         0x0f
-#define  FLOPPY_CMD_VERSION      0x10
-#define  FLOPPY_CMD_SCN_EQ       0x11
-#define  FLOPPY_CMD_PPND_RW      0x12
-#define  FLOPPY_CMD_CFG_FIFO     0x13
-#define  FLOPPY_CMD_LCK_FIFO     0x14
-#define  FLOPPY_CMD_PARTID       0x18
-#define  FLOPPY_CMD_SCN_LE       0x19
-#define  FLOPPY_CMD_SCN_GE       0x1d
-#define  FLOPPY_CMD_CFG_PWR      0x27
-#define  FLOPPY_CMD_SAVE_FDC     0x2e
-#define  FLOPPY_CMD_FMT_ISO      0x33
-#define  FLOPPY_CMD_DMA_READ     0x46
-#define  FLOPPY_CMD_DMA_WRT      0x4a
-#define  FLOPPY_CMD_REST_FDC     0x4e
-#define  FLOPPY_CMD_DRV_SPEC     0x8e
-#define  FLOPPY_CMD_RSEEK_OUT    0x8f
-#define  FLOPPY_CMD_ULK_FIFO     0x94
-#define  FLOPPY_CMD_RSEEK_IN     0xcf
-#define  FLOPPY_CMD_FMT_WRT      0xef
-
-//  Command Code modifiers
-#define    FLOPPY_C0M_SK         0x20
-#define    FLOPPY_C0M_MFM        0x40
-#define    FLOPPY_C0M_MT         0x80
-#define    FLOPPY_C1M_DRVMASK    0x03
-#define    FLOPPY_C1M_HEAD1      0x04
-
-//  Status code values and masks
-#define    FLOPPY_ST0_INVALID    0x80
-
-//  useful command defines
-#define  FLOPPY_CMD_READ    (FLOPPY_CMD_RD_DATA | FLOPPY_C0M_SK | FLOPPY_C0M_MFM | FLOPPY_C0M_MT)
-#define  FLOPPY_CMD_WRITE   (FLOPPY_CMD_WRT_DATA | FLOPPY_C0M_MFM | FLOPPY_C0M_MT)
-#define  FLOPPY_CMD_FORMAT  (FLOPPY_CMD_FMT_TRK | FLOPPY_C0M_MFM)
-
-//
-//  HAL floppy register access commands
-//
-#define FloppyWriteDOR(A, V) (WRITE_PORT_UCHAR((PVOID)(A) + FLOPPY_REG_DOR, (V)))
-#define FloppyReadMSTAT(A) (READ_PORT_UCHAR((PVOID)(A) + FLOPPY_REG_MSTAT))
-#define FloppyWriteMSTAT(A, V) (WRITE_PORT_UCHAR((PVOID)(A) + FLOPPY_REG_MSTAT, (V)))
-#define FloppyReadDATA(A) (READ_PORT_UCHAR((PVOID)(A) + FLOPPY_REG_DATA))
-#define FloppyWriteDATA(A, V) (WRITE_PORT_UCHAR((PVOID)(A) + FLOPPY_REG_DATA, (V)))
-#define FloppyReadDIR(A) (READ_PORT_UCHAR((PVOID)(A) + FLOPPY_REG_DIR))
-#define FloppyWriteCCNTL(A, V) (WRITE_PORT_UCHAR((PVOID)(A) + FLOPPY_REG_CCNTL, (V)))
-
-typedef struct _FLOPPY_ERROR_THRESHOLDS
-{
-    /* number of errors to be reached before aborting */
-  unsigned int Abort;
-    /* maximal number of errors permitted to read an entire track at once */
-  unsigned int ReadTrack;  
-    /* maximal number of errors before a reset is tried */
-  unsigned int Reset;
-    /* maximal number of errors before a recalibrate is tried */
-  unsigned int Recal;
-    /*
-     * Threshold for reporting FDC errors to the console.
-     * Setting this to zero may flood your screen when using
-     * ultra cheap floppies ;-)
-     */
-  unsigned int Reporting;
-} FLOPPY_ERROR_THRESHOLDS;
-
-typedef struct _FLOPPY_MEDIA_TYPE
-{
-  BYTE SectorSizeCode;
-  BYTE MaximumTrack;
-  BYTE Heads;
-  DWORD SectorsPerTrack;
-  ULONG BytesPerSector;
-} FLOPPY_MEDIA_TYPE;
-
-extern const FLOPPY_MEDIA_TYPE MediaTypes[];
-
-#define FDP_DEBUG            0x02
-#define FDP_SILENT_DCL_CLEAR 0x04
-#define FDP_MSG              0x10
-#define FDP_BROKEN_DCL       0x20
-#define FDP_INVERTED_DCL     0x80
-
-// time to hold reset line low
-#define FLOPPY_RESET_TIME          50000
-#define FLOPPY_MOTOR_SPINUP_TIME   -15000000
-#define FLOPPY_MOTOR_SPINDOWN_TIME -50000000
-#define FLOPPY_RECAL_TIMEOUT       -30000000
-
-typedef BOOLEAN (*FloppyIsrStateRoutine)( PCONTROLLER_OBJECT Controller );
-typedef PIO_DPC_ROUTINE FloppyDpcStateRoutine;
-
-typedef struct _FLOPPY_DEVICE_EXTENSION
-{
-  PCONTROLLER_OBJECT Controller;
-  CHAR DriveSelect;
-  CHAR Cyl;                       // current cylinder
-  ULONG MediaType;                // Media type index
-} FLOPPY_DEVICE_EXTENSION, *PFLOPPY_DEVICE_EXTENSION;
-
-typedef struct _FLOPPY_CONTROLLER_EXTENSION
-{
-  PKINTERRUPT Interrupt;
-  KSPIN_LOCK SpinLock;
-  ULONG Number;
-  ULONG PortBase;
-  ULONG Vector;
-  KEVENT Event;                   // Event set by ISR/DPC to wake DeviceEntry
-  PDEVICE_OBJECT Device;          // Pointer to the primary device on this controller 
-  PIRP Irp;                       // Current IRP
-  CHAR St0;                       // Status registers
-  CHAR St1;
-  CHAR St2;
-  CHAR SectorSizeCode;
-  FloppyIsrStateRoutine IsrState; // pointer to state routine handler for ISR
-  FloppyDpcStateRoutine DpcState; // pointer to state routine handler for DPC
-  CHAR MotorOn;                   // drive select for drive with motor on
-  KDPC MotorSpinupDpc;            // DPC for motor spin up time
-  KTIMER SpinupTimer;             // Timer for motor spin up time
-  KDPC MotorSpindownDpc;          // DPC for motor spin down
-  PADAPTER_OBJECT AdapterObject;  // Adapter object for dma
-  PVOID MapRegisterBase;
-  DWORD TransferLength;           // Length of the transfer
-} FLOPPY_CONTROLLER_EXTENSION, *PFLOPPY_CONTROLLER_EXTENSION;
-
-typedef struct _FLOPPY_CONTROLLER_PARAMETERS
-{
-   ULONG            PortBase;
-   ULONG            Vector;
-   ULONG            DmaChannel;
-   KINTERRUPT_MODE  InterruptMode;
-} FLOPPY_CONTROLLER_PARAMETERS, *PFLOPPY_CONTROLLER_PARAMETERS;
-
-#define  FLOPPY_MAX_CONTROLLERS  1
-
-VOID STDCALL
-FloppyDpcDetectMedia(PKDPC Dpc,
-		     PDEVICE_OBJECT DeviceObject,
-		     PIRP Irp,
-		     PVOID Context);
-VOID STDCALL
-FloppyDpcFailIrp(PKDPC Dpc,
-		 PDEVICE_OBJECT DeviceObject,
-		 PIRP Irp,
-		 PVOID Context);
-
-IO_ALLOCATION_ACTION STDCALL
-FloppyExecuteReadWrite(PDEVICE_OBJECT DeviceObject,
-		       PIRP Irp,
-		       PVOID MapRegisterbase,
-		       PVOID Context);
-
-IO_ALLOCATION_ACTION STDCALL
-FloppyExecuteSpindown(PDEVICE_OBJECT DeviceObject,
-		      PIRP Irp,
-		      PVOID MapRegisterbase,
-		      PVOID Context);
-
-VOID STDCALL
-FloppyMotorSpinupDpc(PKDPC Dpc,
-		     PVOID Context,
-		     PVOID Arg1,
-		     PVOID Arg2);
-
-VOID STDCALL
-FloppySeekDpc(PKDPC Dpc,
-	      PDEVICE_OBJECT DeviceObject,
-	      PIRP Irp,
-	      PVOID Context);
-
-VOID STDCALL
-FloppyMotorSpindownDpc(PKDPC Dpc,
-		       PVOID Context,
-		       PVOID Arg1,
-		       PVOID Arg2);
-
-VOID STDCALL
-FloppyDpcDetect(PKDPC Dpc,
-		PDEVICE_OBJECT DeviceObject,
-		PIRP Irp,
-		PVOID Context );
-
-VOID STDCALL
-FloppyDpcReadWrite(PKDPC Dpc,
-		   PDEVICE_OBJECT DeviceObject,
-		   PIRP Irp,
-		   PVOID Context);
-
-VOID STDCALL
-FloppyDpc(PKDPC Dpc,
-	  PDEVICE_OBJECT DeviceObject,
-	  PIRP Irp,
-	  PVOID Context);
-
-BOOLEAN FloppyIsrDetect( PCONTROLLER_OBJECT Controller );
-
-BOOLEAN FloppyIsrReadWrite( PCONTROLLER_OBJECT Controller );
-
-BOOLEAN FloppyIsrUnexpected( PCONTROLLER_OBJECT Controller );
-
-BOOLEAN FloppyIsrDetectMedia( PCONTROLLER_OBJECT Controller );
-
-BOOLEAN FloppyIsrRecal( PCONTROLLER_OBJECT Controller );
-
-BOOLEAN STDCALL
-FloppyIsr(PKINTERRUPT Interrupt,
-	  PVOID ServiceContext);
-
-IO_ALLOCATION_ACTION STDCALL
-FloppyAdapterControl(PDEVICE_OBJECT DeviceObject,
-		     PIRP Irp,
-		     PVOID MapRegisterBase,
-		     PVOID Context);

reactos/drivers/dd/floppy
floppy.rc removed after 1.4
diff -N floppy.rc
--- floppy.rc	17 Nov 2002 04:00:31 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,38 +0,0 @@
-#include <defines.h>
-#include <reactos/resource.h>
-
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-
-VS_VERSION_INFO VERSIONINFO
-	FILEVERSION	RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
-	PRODUCTVERSION	RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
-	FILEFLAGSMASK	0x3fL
-#ifdef _DEBUG
-	FILEFLAGS	0x1L
-#else
-	FILEFLAGS	0x0L
-#endif
-	FILEOS		0x40004L
-	FILETYPE	0x2L
-	FILESUBTYPE	0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "040904b0"
-        BEGIN
-            VALUE "CompanyName",	RES_STR_COMPANY_NAME
-            VALUE "FileDescription",	"Floppy Device Driver\0"
-            VALUE "FileVersion",	"0.1.4\0"
-            VALUE "InternalName",	"floppy\0"
-            VALUE "LegalCopyright",	RES_STR_LEGAL_COPYRIGHT
-            VALUE "OriginalFilename",	"floppy.sys\0"
-            VALUE "ProductName",	RES_STR_PRODUCT_NAME
-            VALUE "ProductVersion",	RES_STR_PRODUCT_VERSION
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x409, 1200
-    END
-END
-

reactos/drivers/dd/floppy
isr.c removed after 1.7
diff -N isr.c
--- isr.c	13 Nov 2003 14:22:03 -0000	1.7
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,210 +0,0 @@
-/************************************************************************
- * Interrupt handlers for floppy disk driver, reactos project, created  *
- * by Phillip Susi on 2/25/2001.  This software is publised under the   *
- * GNU General public license.  See the README file for more details    *
- ***********************************************************************/
-
-#include <ddk/ntddk.h>
-#define NDEBUG
-#include <debug.h>
-#include "floppy.h"
-
-
-// ISR state machine function called when expecting an interrupt due to reset
-// During reset, there is nothing ready to read, just issue sense interrupt status
-
-BOOLEAN FloppyIsrDetect( PCONTROLLER_OBJECT Controller )
-{
-   PFLOPPY_CONTROLLER_EXTENSION ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)Controller->ControllerExtension;
-   PFLOPPY_DEVICE_EXTENSION DeviceExtension = (PFLOPPY_DEVICE_EXTENSION)ControllerExtension->Device->DeviceExtension;
-   // Issue read interrupt status, and store the results
-   FloppyWriteDATA( ControllerExtension->PortBase, FLOPPY_CMD_SNS_INTR );
-   KeStallExecutionProcessor( 100 );
-   ControllerExtension->St0 = FloppyReadDATA( ControllerExtension->PortBase );
-   KeStallExecutionProcessor( 100 );
-   DeviceExtension->Cyl = FloppyReadDATA( ControllerExtension->PortBase );
-   KeStallExecutionProcessor( 100 );
-   if (FLOPPY_MS_DATARDYR ==
-       (FloppyReadMSTAT( ControllerExtension->PortBase ) & FLOPPY_MS_RDYMASK))
-      {
-	 /* There's something still to be read (what is it???? only happens on some
-	    controllers). Ignore it. */
-	 (void) FloppyReadDATA( ControllerExtension->PortBase );
-      }
-   // now queue DPC to set the event
-   IoRequestDpc( ControllerExtension->Device,
-		 0,
-		 Controller );
-   return TRUE;
-}
-
-// ISR state machine handler for unexpected interrupt
-BOOLEAN FloppyIsrUnexpected( PCONTROLLER_OBJECT Controller )
-{
-   DPRINT( "Unexpected interrupt!\n" );
-   return FALSE;
-}
-
-BOOLEAN FloppyIsrDetectMedia( PCONTROLLER_OBJECT Controller )
-{
-  PFLOPPY_CONTROLLER_EXTENSION ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)Controller->ControllerExtension;
-  UCHAR SectorSize;
-
-  DPRINT("FloppyIsrDetectMedia() called\n");
-
-  // media detect in progress, read ID command already issued
-  // first, read result registers
-  KeStallExecutionProcessor( 1000 );
-  ControllerExtension->St0 = FloppyReadDATA( ControllerExtension->PortBase );
-  KeStallExecutionProcessor( 1000 );
-  ControllerExtension->St1 = FloppyReadDATA( ControllerExtension->PortBase );
-  KeStallExecutionProcessor( 1000 );
-  ControllerExtension->St2 = FloppyReadDATA( ControllerExtension->PortBase );
-  KeStallExecutionProcessor( 1000 );
-  FloppyReadDATA( ControllerExtension->PortBase ); // ignore cyl
-  KeStallExecutionProcessor( 1000 );
-  FloppyReadDATA( ControllerExtension->PortBase ); // ignore head
-  KeStallExecutionProcessor( 1000 );
-  FloppyReadDATA( ControllerExtension->PortBase ); // ignore sector
-  KeStallExecutionProcessor( 1000 );
-  SectorSize = FloppyReadDATA( ControllerExtension->PortBase );
-  DPRINT( "Sector Size Code: %2x\n", SectorSize );
-  DPRINT( "St0 = %2x, St1 = %2x, St2 = %2x\n", ControllerExtension->St0, ControllerExtension->St1, ControllerExtension->St2 );
-  DPRINT( "ControllerExtension->Device = %x, ControllerExtension->Irp = %x\n", ControllerExtension->Device, ControllerExtension->Irp );
-  // queue DPC
-  ControllerExtension->DpcState = FloppyDpcDetectMedia;
-  IoRequestDpc( ControllerExtension->Device,
-		ControllerExtension->Irp,
-		Controller );
-  return TRUE;
-}
-
-BOOLEAN FloppyIsrRecal( PCONTROLLER_OBJECT Controller )
-{
-  PFLOPPY_CONTROLLER_EXTENSION ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)Controller->ControllerExtension;
-  // issue sense interrupt status, and read St0 and cyl
-
-  DPRINT("FloppyIsrRecal() called\n");
-
-  FloppyWriteDATA( ControllerExtension->PortBase, FLOPPY_CMD_SNS_INTR );
-  KeStallExecutionProcessor( 1000 );
-  ControllerExtension->St0 = FloppyReadDATA( ControllerExtension->PortBase );
-  KeStallExecutionProcessor( 1000 );
-  FloppyReadDATA( ControllerExtension->PortBase );  // ignore cyl number
-  if (FLOPPY_MS_DATARDYR ==
-      (FloppyReadMSTAT( ControllerExtension->PortBase ) & FLOPPY_MS_RDYMASK))
-    {
-      /* There's something still to be read (what is it???? only happens on some
-         controllers). Ignore it. */
-      (void) FloppyReadDATA( ControllerExtension->PortBase );
-    }
-  DPRINT( "Recal St0: %2x\n", ControllerExtension->St0 );
-
-  // If recalibrate worked, issue read ID for each media type untill one works
-  if ( ControllerExtension->St0 != FLOPPY_ST0_SEEKGD )
-    {
-	 DPRINT( "Recalibrate failed, ST0 = %2x\n", ControllerExtension->St0 );
-	 // queue DPC to fail IRP
-	 ControllerExtension->DpcState = FloppyDpcFailIrp;
-	 IoRequestDpc( ControllerExtension->Device,
-		       ControllerExtension->Irp,
-		       Controller );
-    }
-  else
-    {
-      // issue first read id, FloppyIsrDetectMedia will handle
-      DPRINT( "Recalibrate worked, issuing read ID mark command\n" );
-      ControllerExtension->IsrState = FloppyIsrDetectMedia;
-      KeStallExecutionProcessor( 1000 );
-      FloppyWriteDATA( ControllerExtension->PortBase, FLOPPY_CMD_RD_ID | FLOPPY_C0M_MFM );
-      KeStallExecutionProcessor( 1000 );
-      FloppyWriteDATA( ControllerExtension->PortBase, ((PFLOPPY_DEVICE_EXTENSION)ControllerExtension->Device->DeviceExtension)->DriveSelect );
-    }
-
-   return TRUE;
-}
-
-BOOLEAN FloppyIsrReadWrite( PCONTROLLER_OBJECT Controller )
-{
-  // read result registers from read or write command, and queue dpc to start next operation
-  PFLOPPY_CONTROLLER_EXTENSION ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)Controller->ControllerExtension;
-  UCHAR Cyl;
-  UCHAR Head;
-  UCHAR Sector;
-//  PFLOPPY_DEVICE_EXTENSION DeviceExtension = (PFLOPPY_DEVICE_EXTENSION)ControllerExtension->Device->DeviceExtension;
-//  PIO_STACK_LOCATION Stk = IoGetCurrentIrpStackLocation( ControllerExtension->Irp );
-//  BOOLEAN WriteToDevice = Stk->MajorFunction == IRP_MJ_WRITE ? TRUE : FALSE;
-
-
-  ControllerExtension->St0 = FloppyReadDATA( ControllerExtension->PortBase );
-  KeStallExecutionProcessor( 100 );
-  ControllerExtension->St1 = FloppyReadDATA( ControllerExtension->PortBase );
-  KeStallExecutionProcessor( 100 );
-  ControllerExtension->St2 = FloppyReadDATA( ControllerExtension->PortBase );
-  KeStallExecutionProcessor( 100 );
-  Cyl = FloppyReadDATA( ControllerExtension->PortBase );    // cyl
-  KeStallExecutionProcessor( 100 );
-  Head = FloppyReadDATA( ControllerExtension->PortBase );    // head
-  KeStallExecutionProcessor( 100 );
-  Sector = FloppyReadDATA( ControllerExtension->PortBase );    // sector
-  KeStallExecutionProcessor( 100 );
-  ControllerExtension->SectorSizeCode = FloppyReadDATA( ControllerExtension->PortBase );
-
-  // reprogam for next sector if we are not done reading track
-  /*  if( ( ControllerExtension->TransferLength -= ( 128 << ControllerExtension->SectorSizeCode ) ) )
-    {
-      DPRINT1( "ISR reprogramming for next sector: %d\n", Sector );
-      Sector++;
-      FloppyWriteDATA( ControllerExtension->PortBase, WriteToDevice ? FLOPPY_CMD_WRITE : FLOPPY_CMD_READ );
-      KeStallExecutionProcessor( 100 );
-      FloppyWriteDATA( ControllerExtension->PortBase, ( Head << 2 ) | DeviceExtension->DriveSelect );
-      KeStallExecutionProcessor( 100 );
-      FloppyWriteDATA( ControllerExtension->PortBase, Cyl );
-      KeStallExecutionProcessor( 100 );
-      FloppyWriteDATA( ControllerExtension->PortBase, Head );
-      KeStallExecutionProcessor( 100 );
-      FloppyWriteDATA( ControllerExtension->PortBase, Sector );
-      KeStallExecutionProcessor( 100 );
-      FloppyWriteDATA( ControllerExtension->PortBase, ControllerExtension->SectorSizeCode );
-      KeStallExecutionProcessor( 100 );
-      FloppyWriteDATA( ControllerExtension->PortBase, MediaTypes[DeviceExtension->MediaType].SectorsPerTrack );
-      KeStallExecutionProcessor( 100 );
-      FloppyWriteDATA( ControllerExtension->PortBase, 0 );
-      KeStallExecutionProcessor( 100 );
-      FloppyWriteDATA( ControllerExtension->PortBase, 0xFF );
-    }
-    else */IoRequestDpc( ControllerExtension->Device,
-		     ControllerExtension->Irp,
-		     Controller );
-  return TRUE;
-}
-
-
-// actual ISR, passes controll to handler for current state in state machine
-
-BOOLEAN STDCALL
-FloppyIsr (PKINTERRUPT Interrupt,
-	   PVOID ServiceContext)
-{
-  PCONTROLLER_OBJECT Controller;
-  PFLOPPY_CONTROLLER_EXTENSION ControllerExtension;
-  UCHAR Byte;
-
-  Controller = (PCONTROLLER_OBJECT)ServiceContext;
-  ControllerExtension = (PFLOPPY_CONTROLLER_EXTENSION)Controller->ControllerExtension;
-
-   // need to make sure interrupt is for us, and add some delay for the damn FDC
-   // without the delay, even though the thing has interrupted, it's still not ready
-   // for us to read the data register.
-   KeStallExecutionProcessor( 100 );
-   Byte = FloppyReadMSTAT( ControllerExtension->PortBase );
-   KeStallExecutionProcessor( 100 );
-   if( Byte == 0 )
-     {
-       DPRINT( "Ignoring interrupt, MSTAT = 0\n" );
-       return TRUE;
-     }
-   return ControllerExtension->IsrState( Controller );
-}
-
-/* EOF */
CVSspam 0.2.8