Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / reactos / drivers / filesystems / fs_rec / ffs.c
diff --git a/reactos/drivers/filesystems/fs_rec/ffs.c b/reactos/drivers/filesystems/fs_rec/ffs.c
deleted file mode 100644 (file)
index c3b53f8..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * COPYRIGHT:        See COPYING in the top level directory
- * PROJECT:          ReactOS File System Recognizer
- * FILE:             drivers/filesystems/fs_rec/ffs.c
- * PURPOSE:          FFS Recognizer
- * PROGRAMMER:       Peter Hater
- *                   Pierre Schweitzer (pierre@reactos.org)
- */
-
-/* INCLUDES *****************************************************************/
-
-#include "fs_rec.h"
-#include "ffs.h"
-
-#define NDEBUG
-#include <debug.h>
-
-/* FUNCTIONS ****************************************************************/
-
-BOOLEAN
-NTAPI
-FsRecIsFfsDiskLabel(IN PFFSD_DISKLABEL dl)
-{
-    return (dl->d_magic == DISKMAGIC);
-}
-
-BOOLEAN
-NTAPI
-FsRecIsFfs1Volume(IN PFFSD_SUPER_BLOCK sb)
-{
-    return (sb->fs_magic == FS_UFS1_MAGIC);
-}
-
-BOOLEAN
-NTAPI
-FsRecIsFfs2Volume(IN PFFSD_SUPER_BLOCK sb)
-{
-    return (sb->fs_magic == FS_UFS2_MAGIC);
-}
-
-NTSTATUS
-NTAPI
-FsRecFfsFsControl(IN PDEVICE_OBJECT DeviceObject,
-                    IN PIRP Irp)
-{
-    PIO_STACK_LOCATION Stack;
-    NTSTATUS Status;
-    PDEVICE_OBJECT MountDevice;
-    PFFSD_SUPER_BLOCK Spb = NULL;
-    PFFSD_DISKLABEL DiskLabel = NULL;
-    ULONGLONG FSOffset = 0;
-    int i;
-    ULONG SectorSize;
-    LARGE_INTEGER Offset;
-    BOOLEAN DeviceError = FALSE;
-    PAGED_CODE();
-
-    /* Get the I/O Stack and check the function type */
-    Stack = IoGetCurrentIrpStackLocation(Irp);
-    switch (Stack->MinorFunction)
-    {
-        case IRP_MN_MOUNT_VOLUME:
-
-            /* Assume failure */
-            Status = STATUS_UNRECOGNIZED_VOLUME;
-
-            /* Get the device object and request the sector size */
-            MountDevice = Stack->Parameters.MountVolume.DeviceObject;
-            if (FsRecGetDeviceSectorSize(MountDevice, &SectorSize))
-            {
-                /* Try to read the disklabel */
-                Offset.QuadPart = LABELSECTOR*SectorSize;
-                if (FsRecReadBlock(MountDevice,
-                                   &Offset,
-                                   SectorSize,
-                                   SectorSize,
-                                   (PVOID)&DiskLabel,
-                                   &DeviceError))
-                {
-                    /* Check if it's an actual FFS disk label */
-                    if (FsRecIsFfsDiskLabel(DiskLabel))
-                    {
-                        /* It is! */
-                           for (i = 0; i < MAXPARTITIONS; i++)
-                           {
-                                   if (DiskLabel->d_partitions[i].p_fstype == FS_BSDFFS)
-                                   {
-                                           /* Important */
-                                           FSOffset = DiskLabel->d_partitions[i].p_offset;
-                                           FSOffset = FSOffset * SectorSize;
-                                /* Try to read the superblock */
-                                Offset.QuadPart = FSOffset+SBLOCK_UFS1;
-                                if (FsRecReadBlock(MountDevice,
-                                                   &Offset,
-                                                   SBLOCKSIZE,
-                                                   SectorSize,
-                                                   (PVOID)&Spb,
-                                                   &DeviceError))
-                                {
-                                    /* Check if it's an actual FFS volume */
-                                    if (FsRecIsFfs1Volume(Spb))
-                                    {
-                                        /* It is! */
-                                        Status = STATUS_FS_DRIVER_REQUIRED;
-                                    }
-                                    else
-                                    {
-                                        /* Free the boot sector if we have one */
-                                        ExFreePool(Spb);
-                                        Spb = NULL;
-
-                                        Offset.QuadPart = FSOffset+SBLOCK_UFS2;
-                                        if (FsRecReadBlock(MountDevice,
-                                                           &Offset,
-                                                           SBLOCKSIZE,
-                                                           SectorSize,
-                                                           (PVOID)&Spb,
-                                                           &DeviceError))
-                                        {
-                                            /* Check if it's an actual FFS volume */
-                                            if (FsRecIsFfs2Volume(Spb))
-                                            {
-                                                /* It is! */
-                                                Status = STATUS_FS_DRIVER_REQUIRED;
-                                            }
-                                        }
-                                    }
-                                }
-
-                                /* Free the boot sector if we have one */
-                                ExFreePool(Spb);
-                                Spb = NULL;
-                            }
-                        }
-                    }
-                    else
-                    {
-                        /* Try to read the superblock */
-                        Offset.QuadPart = FSOffset+SBLOCK_UFS1;
-                        if (FsRecReadBlock(MountDevice,
-                                            &Offset,
-                                            SBLOCKSIZE,
-                                            SectorSize,
-                                            (PVOID)&Spb,
-                                            &DeviceError))
-                        {
-                            /* Check if it's an actual FFS volume */
-                            if (FsRecIsFfs1Volume(Spb))
-                            {
-                                /* It is! */
-                                Status = STATUS_FS_DRIVER_REQUIRED;
-                            }
-                            else
-                            {
-                                /* Free the boot sector if we have one */
-                                ExFreePool(Spb);
-                                Spb = NULL;
-
-                                Offset.QuadPart = FSOffset+SBLOCK_UFS2;
-                                if (FsRecReadBlock(MountDevice,
-                                                    &Offset,
-                                                    SBLOCKSIZE,
-                                                    SectorSize,
-                                                    (PVOID)&Spb,
-                                                    &DeviceError))
-                                {
-                                    /* Check if it's an actual FFS volume */
-                                    if (FsRecIsFfs2Volume(Spb))
-                                    {
-                                        /* It is! */
-                                        Status = STATUS_FS_DRIVER_REQUIRED;
-                                    }
-                                }
-                            }
-                        }
-
-                        /* Free the boot sector if we have one */
-                        ExFreePool(Spb);
-                        Spb = NULL;
-                    }
-                }
-
-                /* Free the boot sector if we have one */
-                ExFreePool(DiskLabel);
-            }
-            else
-            {
-                /* We have some sort of failure in the storage stack */
-                DeviceError = TRUE;
-            }
-
-            /* Check if we have an error on the stack */
-            if (DeviceError)
-            {
-                /* Was this because of a floppy? */
-                if (MountDevice->Characteristics & FILE_FLOPPY_DISKETTE)
-                {
-                    /* Let the FS try anyway */
-                    Status = STATUS_FS_DRIVER_REQUIRED;
-                }
-            }
-
-            break;
-
-        case IRP_MN_LOAD_FILE_SYSTEM:
-
-            /* Load the file system */
-            Status = FsRecLoadFileSystem(DeviceObject,
-                                         L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\ffs");
-            break;
-
-        default:
-
-            /* Invalid request */
-            Status = STATUS_INVALID_DEVICE_REQUEST;
-    }
-
-    /* Return Status */
-    return Status;
-}