vscsi.h revision ad27e1d5e48ca41245120c331cc88b50464813ce
366N/A * VBox storage drivers: Virtual SCSI driver 366N/A * Copyright (C) 2006-2010 Oracle Corporation 919N/A * This file is part of VirtualBox Open Source Edition (OSE), as 919N/A * you can redistribute it and/or modify it under the terms of the GNU 919N/A * General Public License (GPL) as published by the Free Software 919N/A * Foundation, in version 2 as it comes in the "COPYING" file of the 919N/A * VirtualBox OSE distribution. VirtualBox OSE is distributed in the 919N/A * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 919N/A * The contents of this file may alternatively be used under the terms 919N/A * of the Common Development and Distribution License Version 1.0 919N/A * (CDDL) only, as it comes in the "COPYING.CDDL" file of the 919N/A * VirtualBox OSE distribution, in which case the provisions of the 919N/A * CDDL are applicable instead of those of the GPL. 919N/A * You may elect to license modified versions of this file under the 919N/A * terms and conditions of either the GPL or the CDDL or both. 911N/A#
error "There are no VBox VSCSI APIs available in Ring-0 Host Context!" 366N/A/** A virtual SCSI device handle */ 366N/A/** A pointer to a virtual SCSI device handle. */ 970N/A/** A virtual SCSI LUN handle. */ 970N/A/** A pointer to a virtual SCSI LUN handle. */ 970N/A/** A virtual SCSI request handle. */ 366N/A/** A pointer to a virtual SCSI request handle. */ 493N/A/** A SCSI I/O request handle. */ 366N/A/** A pointer to a SCSI I/O request handle. */ 366N/A * Virtual SCSI I/O request transfer direction. 493N/A /** Invalid direction */ /** Pointer to a SCSI LUN type */ /** CD/DVD drive (MMC) */ /** Last value to indicate an invalid device */ /** Pointer to a SCSI LUN type */ * Virtual SCSI LUN I/O Callback table. * Retrieve the size of the underlying medium. * @returns VBox status status code. * @param hVScsiLun Virtual SCSI LUN handle. * @param pvScsiLunUser Opaque user data which may * be used to identify the medium. * @param pcbSize Where to store the size of the * Enqueue a read or write request from the medium. * @returns VBox status status code. * @param hVScsiLun Virtual SCSI LUN handle. * @param pvScsiLunUser Opaque user data which may * be used to identify the medium. * @param hVScsiIoReq Virtual SCSI I/O request handle. /** Pointer to a virtual SCSI LUN I/O callback table. */ * The virtual SCSI request completed callback. /** Pointer to a virtual SCSI request completed callback. */ * Create a new empty SCSI device instance. * @returns VBox status code. * @param phVScsiDevice Where to store the SCSI device handle. * @param pfnVScsiReqCompleted The method call after a request completed. * @param pvVScsiDeviceUser Opaque user data given in the completion callback. * Destroy a SCSI device instance. * @returns VBox status code. * @param hScsiDevice The SCSI device handle to destroy. * Attach a LUN to the SCSI device. * @returns VBox status code. * @param hScsiDevice The SCSI device handle to add the LUN to. * @param hScsiLun The LUN handle to add. * @param iLun The LUN number. * Detach a LUN from the SCSI device. * @returns VBox status code. * @param hVScsiDevice The SCSI device handle to add the LUN to. * @param iLun The LUN number to remove. * @param phVScsiLun Where to store the detached LUN handle. * Return the SCSI LUN handle. * @returns VBox status code. * @param hVScsiDevice The SCSI device handle. * @param iLun The LUN number to get. * @param phVScsiLun Where to store the LUN handle. * Enqueue a request to the SCSI device. * @returns VBox status code. * @param hVScsiDevice The SCSI device handle. * @param hVScsiReq The SCSI request handle to enqueue. * Allocate a new request handle. * @returns VBox status code. * @param phVScsiDevice The SCSI device handle. * @param phVScsiReq Where to SCSI request handle. * @param iLun The LUN the request is for. * @param pbCDB The CDB for the request. * @param cbCDB The size of the CDB in bytes. * @param cbSGList Number of bytes the S/G list describes. * @param cSGListEntries Number of S/G list entries. * @param paSGList Pointer to the S/G list. * @param pbSense Pointer to the sense buffer. * @param cbSense Size of the sense buffer. * @param pvVScsiReqUser Opqaue user data returned when the request completes. * @returns VBox status code. * @param phVScsiLun Where to store the SCSI LUN handle. * @param enmLunType The Lun type. * @param pVScsiLunIoCallbacks Pointer to the I/O callbacks to use for his LUN. * @param pvVScsiLunUser Opaque user argument which * is returned in the pvScsiLunUser parameter * when the request completion callback is called. * Destroy virtual SCSI LUN. * @returns VBox status code. * @param hVScsiLun The virtual SCSI LUN handle to destroy. * Notify a that a I/O request completed. * @returns VBox status code. * @param hVScsiIoReq The I/O request handle that completed. * This is given when a I/O callback for * the LUN is called by the virtual SCSI layer. * @param rcIoReq The status code the I/O request completed with. * @param fRedoPossible Flag whether it is possible to redo the request. * If true setting any sense code will be omitted * in case of an error to not alter the device state. * Query the transfer direction of the I/O request. * @returns Transfer direction.of the given I/O request * @param hVScsiIoReq The SCSI I/O request handle. * @returns VBox status code. * @param hVScsiIoReq The SCSI I/O request handle. * @param puOffset Where to store the start offset. * @param pcbTransfer Where to store the amount of bytes to transfer. * @param pcSeg Where to store the number of segments in the S/G list. * @param pcbSeg Where to store the number of bytes the S/G list describes. * @param ppaSeg Where to store the pointer to the S/G list. #
endif /* ___VBox_vscsi_h */