VirtualBox

Changeset 65482 in vbox for trunk/src


Ignore:
Timestamp:
Jan 27, 2017 2:10:44 PM (8 years ago)
Author:
vboxsync
Message:

Main/Console: Add the disk integrity driver into the chain if some specific extra data is present

Location:
trunk/src/VBox/Main
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/include/ConsoleImpl.h

    r65410 r65482  
    647647                                 bool fUseHostIOCache,
    648648                                 bool fBuiltinIoCache,
     649                                 bool fInsertDiskIntegrityDrv,
    649650                                 bool fSetupMerge,
    650651                                 unsigned uMergeSource,
     
    664665                       bool fUseHostIOCache,
    665666                       bool fBuiltinIoCache,
     667                       bool fInsertDiskIntegrityDrv,
    666668                       bool fSetupMerge,
    667669                       unsigned uMergeSource,
     
    681683                                                           bool fUseHostIOCache,
    682684                                                           bool fBuiltinIoCache,
     685                                                           bool fInsertDiskIntegrityDrv,
    683686                                                           bool fSetupMerge,
    684687                                                           unsigned uMergeSource,
  • trunk/src/VBox/Main/src-client/ConsoleImpl.cpp

    r65434 r65482  
    35733573                                             false /* fSetupMerge */,
    35743574                                             false /* fBuiltinIOCache */,
     3575                                             false /* fInsertDiskIntegrityDrv. */,
    35753576                                             0 /* uMergeSource */,
    35763577                                             0 /* uMergeTarget */,
     
    37513752                                             false /* fSetupMerge */,
    37523753                                             false /* fBuiltinIOCache */,
     3754                                             false /* fInsertDiskIntegrityDrv. */,
    37533755                                             0 /* uMergeSource */,
    37543756                                             0 /* uMergeTarget */,
     
    60916093        return rc;
    60926094
     6095    bool fInsertDiskIntegrityDrv = false;
     6096    Bstr strDiskIntegrityFlag;
     6097    rc = mMachine->GetExtraData(Bstr("VBoxInternal2/EnableDiskIntegrityDriver").raw(),
     6098                                strDiskIntegrityFlag.asOutParam());
     6099    if (   rc   == S_OK
     6100        && strDiskIntegrityFlag == "1")
     6101        fInsertDiskIntegrityDrv = true;
     6102
    60936103    alock.release();
    60946104    vrc = VMR3ReqCallWaitU(ptrVM.rawUVM(), VMCPUID_ANY,
    6095                            (PFNRT)i_reconfigureMediumAttachment, 13,
     6105                           (PFNRT)i_reconfigureMediumAttachment, 14,
    60966106                           this, ptrVM.rawUVM(), pcszDevice, uInstance, enmBus, fUseHostIOCache,
    6097                            fBuiltinIOCache, true /* fSetupMerge */, aSourceIdx, aTargetIdx,
    6098                            aMediumAttachment, mMachineState, &rc);
     6107                           fBuiltinIOCache, fInsertDiskIntegrityDrv, true /* fSetupMerge */,
     6108                           aSourceIdx, aTargetIdx, aMediumAttachment, mMachineState, &rc);
    60996109    /* error handling is after resuming the VM */
    61006110
     
    61386148
    61396149    vrc = VMR3ReqCallWaitU(ptrVM.rawUVM(), VMCPUID_ANY,
    6140                            (PFNRT)i_reconfigureMediumAttachment, 13,
     6150                           (PFNRT)i_reconfigureMediumAttachment, 14,
    61416151                           this, ptrVM.rawUVM(), pcszDevice, uInstance, enmBus, fUseHostIOCache,
    6142                            fBuiltinIOCache, false /* fSetupMerge */, 0 /* uMergeSource */,
    6143                            0 /* uMergeTarget */, aMediumAttachment, mMachineState, &rc);
     6152                           fBuiltinIOCache, fInsertDiskIntegrityDrv, false /* fSetupMerge */,
     6153                           0 /* uMergeSource */, 0 /* uMergeTarget */, aMediumAttachment,
     6154                           mMachineState, &rc);
    61446155    /* error handling is after resuming the VM */
    61456156
     
    1001610027                                                         bool fUseHostIOCache,
    1001710028                                                         bool fBuiltinIOCache,
     10029                                                         bool fInsertDiskIntegrityDrv,
    1001810030                                                         bool fSetupMerge,
    1001910031                                                         unsigned uMergeSource,
     
    1004310055                                             fUseHostIOCache,
    1004410056                                             fBuiltinIOCache,
     10057                                             fInsertDiskIntegrityDrv,
    1004510058                                             fSetupMerge,
    1004610059                                             uMergeSource,
  • trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp

    r65410 r65482  
    23712371            hrc = pMachine->COMGETTER(IOCacheEnabled)(&fBuiltinIOCache);                    H();
    23722372
     2373            bool fInsertDiskIntegrityDrv = false;
     2374            Bstr strDiskIntegrityFlag;
     2375            hrc = pMachine->GetExtraData(Bstr("VBoxInternal2/EnableDiskIntegrityDriver").raw(),
     2376                                         strDiskIntegrityFlag.asOutParam());
     2377            if (   hrc   == S_OK
     2378                && strDiskIntegrityFlag == "1")
     2379                fInsertDiskIntegrityDrv = true;
    23732380
    23742381            for (size_t j = 0; j < atts.size(); ++j)
     
    23802387                                              !!fUseHostIOCache,
    23812388                                              enmCtrlType == StorageControllerType_NVMe ? false : !!fBuiltinIOCache,
     2389                                              fInsertDiskIntegrityDrv,
    23822390                                              false /* fSetupMerge */,
    23832391                                              0 /* uMergeSource */,
     
    42234231                                      bool fUseHostIOCache,
    42244232                                      bool fBuiltinIOCache,
     4233                                      bool fInsertDiskIntegrityDrv,
    42254234                                      bool fSetupMerge,
    42264235                                      unsigned uMergeSource,
     
    43964405                            fUseHostIOCache,
    43974406                            fBuiltinIOCache,
     4407                            fInsertDiskIntegrityDrv,
    43984408                            fSetupMerge,
    43994409                            uMergeSource,
     
    44814491                            bool fUseHostIOCache,
    44824492                            bool fBuiltinIOCache,
     4493                            bool fInsertDiskIntegrityDrv,
    44834494                            bool fSetupMerge,
    44844495                            unsigned uMergeSource,
     
    45344545        else
    45354546        {
    4536 #if 0 /* Enable for I/O debugging */
    4537             InsertConfigNode(pLunL0, "AttachedDriver", &pLunL0);
    4538             InsertConfigString(pLunL0, "Driver", "DiskIntegrity");
    4539             InsertConfigNode(pLunL0, "Config", &pCfg);
    4540             InsertConfigInteger(pCfg, "CheckConsistency", 0);
    4541             InsertConfigInteger(pCfg, "CheckDoubleCompletions", 1);
    4542 #endif
     4547            if (fInsertDiskIntegrityDrv)
     4548            {
     4549                /*
     4550                 * The actual configuration is done through CFGM extra data
     4551                 * for each inserted driver separately.
     4552                 */
     4553                InsertConfigString(pLunL0, "Driver", "DiskIntegrity");
     4554                InsertConfigNode(pLunL0, "Config", &pCfg);
     4555                InsertConfigNode(pLunL0, "AttachedDriver", &pLunL0);
     4556            }
    45434557
    45444558            InsertConfigString(pLunL0, "Driver", "VD");
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette