VirtualBox

Changeset 30384 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jun 23, 2010 9:56:54 AM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
62994
Message:

SCSI: Log used I/O method

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/DrvSCSI.cpp

    r29586 r30384  
    2525#include <VBox/pdmthread.h>
    2626#include <VBox/vscsi.h>
     27#include <VBox/scsi.h>
    2728#include <iprt/asm.h>
    2829#include <iprt/assert.h>
     
    439440/* -=-=-=-=- ISCSIConnector -=-=-=-=- */
    440441
     442#ifdef DEBUG
     443/**
     444 * Dumps a SCSI request structure for debugging purposes.
     445 *
     446 * @returns nothing.
     447 * @param   pRequest    Pointer to the request to dump.
     448 */
     449static void drvscsiDumpScsiRequest(PPDMSCSIREQUEST pRequest)
     450{
     451    Log(("Dump for pRequest=%#p Command: %s\n", pRequest, SCSICmdText(pRequest->pbCDB[0])));
     452    Log(("cbCDB=%u\n", pRequest->cbCDB));
     453    for (uint32_t i = 0; i < pRequest->cbCDB; i++)
     454        Log(("pbCDB[%u]=%#x\n", i, pRequest->pbCDB[i]));
     455    Log(("cbScatterGather=%u\n", pRequest->cbScatterGather));
     456    Log(("cScatterGatherEntries=%u\n", pRequest->cScatterGatherEntries));
     457    /* Print all scatter gather entries. */
     458    for (uint32_t i = 0; i < pRequest->cScatterGatherEntries; i++)
     459    {
     460        Log(("ScatterGatherEntry[%u].cbSeg=%u\n", i, pRequest->paScatterGatherHead[i].cbSeg));
     461        Log(("ScatterGatherEntry[%u].pvSeg=%#p\n", i, pRequest->paScatterGatherHead[i].pvSeg));
     462    }
     463    Log(("pvUser=%#p\n", pRequest->pvUser));
     464}
     465#endif
     466
    441467/** @copydoc PDMISCSICONNECTOR::pfnSCSIRequestSend. */
    442468static DECLCALLBACK(int) drvscsiRequestSend(PPDMISCSICONNECTOR pInterface, PPDMSCSIREQUEST pSCSIRequest)
     
    445471    PDRVSCSI pThis = PDMISCSICONNECTOR_2_DRVSCSI(pInterface);
    446472    VSCSIREQ hVScsiReq;
     473
     474#ifdef DEBUG
     475    drvscsiDumpScsiRequest(pSCSIRequest);
     476#endif
    447477
    448478    rc = VSCSIDeviceReqCreate(pThis->hVScsiDevice, &hVScsiReq,
     
    746776                                   drvscsiAsyncIOLoopWakeup, 0, RTTHREADTYPE_IO, "SCSI async IO");
    747777        AssertMsgReturn(RT_SUCCESS(rc), ("Failed to create async I/O thread rc=%Rrc\n"), rc);
    748     }
     778
     779        LogRel(("SCSI#%d: using normal I/O\n", pDrvIns->iInstance));
     780    }
     781    else
     782        LogRel(("SCSI#%d: using async I/O\n", pDrvIns->iInstance));
    749783
    750784    return VINF_SUCCESS;
Note: See TracChangeset for help on using the changeset viewer.

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