[disk,device] Move BootDrive as Boot property
authorShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Wed, 29 Dec 2010 04:15:40 +0000 (23:15 -0500)
committerShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Wed, 29 Dec 2010 04:15:40 +0000 (23:15 -0500)
Remove the BootDrive boolean from WV_S_DISK_T and into
WV_S_DEV_T.  Devices established at boot time should
have this set to TRUE.

src/aoe/driver.c
src/include/device.h
src/include/disk.h
src/winvblock/driver.c
src/winvblock/filedisk/grub4dos.c
src/winvblock/ramdisk/grub4dos.c
src/winvblock/ramdisk/memdisk.c

index 75696cd..50cd598 100644 (file)
@@ -1584,7 +1584,7 @@ static void AoeProcessAbft_(void) {
     aoe_disk->Minor = AoEBootRecord.Minor;
     aoe_disk->MaxSectorsPerPacket = 1;
     aoe_disk->Timeout = 200000;          /* 20 ms. */
-    aoe_disk->disk->BootDrive = TRUE;
+    aoe_disk->disk->Dev->Boot = TRUE;
     aoe_disk->disk->Media = WvDiskMediaTypeHard;
     WvDriverBusAddDev(aoe_disk->disk->Dev);
     return;
@@ -1759,7 +1759,7 @@ NTSTATUS STDCALL aoe__mount(
     aoe_disk->Minor = (winvblock__uint8) buffer[8];
     aoe_disk->MaxSectorsPerPacket = 1;
     aoe_disk->Timeout = 200000;             /* 20 ms. */
-    aoe_disk->disk->BootDrive = FALSE;
+    aoe_disk->disk->Dev->Boot = FALSE;
     aoe_disk->disk->Media = WvDiskMediaTypeHard;
     WvDriverBusAddDev(aoe_disk->disk->Dev);
 
index f73ed52..bf2b53e 100644 (file)
@@ -187,6 +187,8 @@ struct WV_DEV_T {
     winvblock__any_ptr ext;
     /* How to handle IRPs based on major function code. */
     WV_SP_DEV_IRP_MJ IrpMj;
+    /* Was the device established at boot time? */
+    winvblock__bool Boot;
   };
 
 extern winvblock__lib_func WV_SP_DEV_T WvDevFromDevObj(PDEVICE_OBJECT);
index dfb6854..215e86a 100644 (file)
@@ -106,7 +106,6 @@ struct WV_DISK_T {
     WV_S_DEV_T Dev[1];
     KEVENT SearchEvent;
     KSPIN_LOCK SpinLock;
-    winvblock__bool BootDrive;
     winvblock__bool Unmount;
     WV_E_DISK_MEDIA_TYPE Media;
     WV_S_DISK_OPS disk_ops;
index 441f293..51bdd3d 100644 (file)
@@ -666,7 +666,7 @@ static NTSTATUS STDCALL WvDriverBusDevCtlDiskDetach_(
           disk_walker = disk__get_ptr(dev_walker);
       }
     if (disk_walker != NULL) {
-        if (disk_walker->BootDrive) {
+        if (disk_walker->Dev->Boot) {
             DBG("Cannot unmount a boot drive.\n");
             irp->IoStatus.Information = 0;
             return STATUS_INVALID_DEVICE_REQUEST;
index b013973..e0dd3ac 100644 (file)
@@ -493,7 +493,7 @@ filedisk_grub4dos__find (
          filedisk_ptr->hash = 'G4DX';
          ( ( winvblock__uint8 * ) & filedisk_ptr->hash )[0] =
            Grub4DosDriveMapSlotPtr[i].SourceDrive;
-         filedisk_ptr->disk->BootDrive = TRUE;
+         filedisk_ptr->disk->Dev->Boot = TRUE;
          FoundGrub4DosMapping = TRUE;
          /* Add the filedisk to the bus. */
          if (!WvDriverBusAddDev(filedisk_ptr->disk->Dev))
index ca7075b..53fbe0f 100644 (file)
@@ -139,7 +139,7 @@ ramdisk_grub4dos__find (
          ramdisk_ptr->disk->Cylinders =
            ramdisk_ptr->disk->LBADiskSize / ( ramdisk_ptr->disk->Heads *
                                               ramdisk_ptr->disk->Sectors );
-         ramdisk_ptr->disk->BootDrive = TRUE;
+         ramdisk_ptr->disk->Dev->Boot = TRUE;
          FoundGrub4DosMapping = TRUE;
          /* Add the ramdisk to the bus. */
          if (!WvDriverBusAddDev(ramdisk_ptr->disk->Dev))
index f7abe50..4a55e76 100644 (file)
@@ -97,7 +97,7 @@ static winvblock__bool STDCALL WvMemdiskCheckMbft_(
     ramdisk->disk->Cylinders = mbft->mdi.cylinders;
     ramdisk->disk->Heads = mbft->mdi.heads;
     ramdisk->disk->Sectors = mbft->mdi.sectors;
-    ramdisk->disk->BootDrive = TRUE;
+    ramdisk->disk->Dev->Boot = TRUE;
 
     /* Add the ramdisk to the bus. */
     if (!WvDriverBusAddDev(ramdisk->disk->Dev)) {