[FDC]
[reactos.git] / reactos / drivers / storage / fdc / fdc / fdc.h
index f0cc493..538ddef 100644 (file)
@@ -9,6 +9,60 @@
 #include <ntddk.h>
 #include <debug.h>
 
 #include <ntddk.h>
 #include <debug.h>
 
+#define MAX_DEVICE_NAME 255
+#define MAX_ARC_PATH_LEN 255
+#define MAX_DRIVES_PER_CONTROLLER 4
+#define MAX_CONTROLLERS 4
+
+struct _CONTROLLER_INFO;
+
+typedef struct _DRIVE_INFO
+{
+    struct _CONTROLLER_INFO  *ControllerInfo;
+    UCHAR                    UnitNumber; /* 0,1,2,3 */
+    LARGE_INTEGER            MotorStartTime;
+    PDEVICE_OBJECT           DeviceObject;
+    CM_FLOPPY_DEVICE_DATA    FloppyDeviceData;
+//    DISK_GEOMETRY            DiskGeometry;
+    UCHAR                    BytesPerSectorCode;
+    WCHAR                    SymLinkBuffer[MAX_DEVICE_NAME];
+    WCHAR                    ArcPathBuffer[MAX_ARC_PATH_LEN];
+    ULONG                    DiskChangeCount;
+    BOOLEAN                  Initialized;
+} DRIVE_INFO, *PDRIVE_INFO;
+
+typedef struct _CONTROLLER_INFO
+{
+    BOOLEAN          Populated;
+    BOOLEAN          Initialized;
+    ULONG            ControllerNumber;
+    INTERFACE_TYPE   InterfaceType;
+    ULONG            BusNumber;
+    ULONG            Level;
+    KIRQL            MappedLevel;
+    ULONG            Vector;
+    ULONG            MappedVector;
+    KINTERRUPT_MODE  InterruptMode;
+    PUCHAR           BaseAddress;
+    ULONG            Dma;
+    ULONG            MapRegisters;
+    PVOID            MapRegisterBase;
+    BOOLEAN          Master;
+    KEVENT           SynchEvent;
+    KDPC             Dpc;
+    PKINTERRUPT      InterruptObject;
+    PADAPTER_OBJECT  AdapterObject;
+    UCHAR            NumberOfDrives;
+    BOOLEAN          ImpliedSeeks;
+    DRIVE_INFO       DriveInfo[MAX_DRIVES_PER_CONTROLLER];
+    PDRIVE_INFO      CurrentDrive;
+    BOOLEAN          Model30;
+    KEVENT           MotorStoppedEvent;
+    KTIMER           MotorTimer;
+    KDPC             MotorStopDpc;
+    BOOLEAN          StopDpcQueued;
+} CONTROLLER_INFO, *PCONTROLLER_INFO;
+
 
 typedef struct _COMMON_DEVICE_EXTENSION
 {
 
 typedef struct _COMMON_DEVICE_EXTENSION
 {
@@ -23,6 +77,8 @@ typedef struct _FDO_DEVICE_EXTENSION
     PDEVICE_OBJECT Fdo;
     PDEVICE_OBJECT Pdo;
 
     PDEVICE_OBJECT Fdo;
     PDEVICE_OBJECT Pdo;
 
+    CONTROLLER_INFO ControllerInfo;
+
 } FDO_DEVICE_EXTENSION, *PFDO_DEVICE_EXTENSION;
 
 
 } FDO_DEVICE_EXTENSION, *PFDO_DEVICE_EXTENSION;