VirtualBox

Changeset 11502 in vbox for trunk/include


Ignore:
Timestamp:
Aug 19, 2008 9:07:25 PM (16 years ago)
Author:
vboxsync
Message:

BusLogic SCSI: update, stub for generic SCSI request parsing and execution driver

Location:
trunk/include/VBox
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/log.h

    r11410 r11502  
    176176    /** Raw image driver group */
    177177    LOG_GROUP_DRV_RAW_IMAGE,
     178    /** SCSI driver group. */
     179    LOG_GROUP_DRV_SCSI,
    178180    /** Async transport driver group */
    179181    LOG_GROUP_DRV_TRANSPORT_ASYNC,
     
    383385    "DRV_NAT",      \
    384386    "DRV_RAW_IMAGE", \
     387    "DRV_SCSI", \
    385388    "DRV_TRANSPORT_ASYNC", \
    386389    "DRV_TUN",      \
  • trunk/include/VBox/pdmifs.h

    r11157 r11502  
    160160    PDMINTERFACE_HOST_PARALLEL_CONNECTOR,
    161161
     162    /** PDMISCSIPORT            - The SCSI command execution port interface (Down) Coupled with PDMINTERFACE_SCSI_CONNECTOR. */
     163    PDMINTERFACE_SCSI_PORT,
     164    /** PDMISCSICONNECTOR       - The SCSI command execution connector interface (Up) Coupled with PDMINTERFACE_SCSI_PORT. */
     165    PDMINTERFACE_SCSI_CONNECTOR,
     166
    162167    /** Maximum interface number. */
    163168    PDMINTERFACE_MAX
     
    24852490#endif
    24862491
     2492/**
     2493 * SCSI request structure.
     2494 */
     2495typedef struct PDMSCSIREQUEST
     2496{
     2497    /** Size of the SCSI CDB. */
     2498    uint32_t    cbCDB;
     2499    /** Pointer to the SCSI CDB. */
     2500    uint8_t    *pCDB;
     2501    /** Overall size of all scatter gather list elements
     2502     *  for data transfer if any. */
     2503    uint32_t    cbScatterGather;
     2504    /** Number of elements in the scatter gather list. */
     2505    uint32_t    cScatterGatherEntries;
     2506    /** Pointer to the head of the scatter gather list. */
     2507    PPDMDATASEG paScatterGatherHead;
     2508    /** Opaque user data for use by the device. Left untouched by everything else! */
     2509    void       *pvUser;
     2510} PDMSCSIREQUEST, *PPDMSCSIREQUEST;
     2511/** Pointer to a const SCSI request structure. */
     2512typedef const PDMSCSIREQUEST *PCSCSIREQUEST;
     2513
     2514/** Pointer to a SCSI port interface. */
     2515typedef struct PDMISCSIPORT *PPDMISCSIPORT;
     2516
     2517/**
     2518 * SCSI port interface.
     2519 * Pair with PDMISCSICONNECTOR.
     2520 */
     2521typedef struct PDMISCSIPORT
     2522{
     2523
     2524    /**
     2525     * Notify the device on request completion.
     2526     *
     2527     * @returns VBox status code.
     2528     * @param   pInterface    Pointer to this interface.
     2529     * @param   pSCSIRequest  Pointer to the finished SCSI request.
     2530     */
     2531     DECLR3CALLBACKMEMBER(int, pfnSCSIRequestCompleted, (PPDMISCSIPORT pInterface, PPDMSCSIREQUEST pSCSIRequest));
     2532
     2533} PDMISCSIPORT;
     2534
     2535/** Pointer to a SCSI connector interface. */
     2536typedef struct PDMISCSICONNECTOR *PPDMISCSICONNECTOR;
     2537
     2538/**
     2539 * SCSI connector interface.
     2540 * Pair with PDMISCSIPORT.
     2541 */
     2542typedef struct PDMISCSICONNECTOR
     2543{
     2544
     2545    /**
     2546     * Submits a SCSI request for execution.
     2547     *
     2548     * @returns VBox status code.
     2549     * @param   pInterface    Pointer to this interface.
     2550     * @param   pSCSIRequest  Pointer to the SCSI request to execute.
     2551     */
     2552     DECLR3CALLBACKMEMBER(int, pfnSCSIRequestSend, (PPDMISCSICONNECTOR pInterface, PPDMSCSIREQUEST pSCSIRequest));
     2553
     2554} PDMISCSICONNECTOR;
    24872555/** @} */
    24882556
  • trunk/include/VBox/scsi.h

    r8155 r11502  
    424424typedef struct SCSIINQUIRYDATA
    425425{
    426     unsigned u5PeripherialDeviceType : 5;   /**< 0x00 / 00 */
    427     unsigned u3PeripherialQualifier : 3;
     426    unsigned u5PeripheralDeviceType : 5;   /**< 0x00 / 00 */
     427    unsigned u3PeripheralQualifier : 3;
    428428    unsigned u6DeviceTypeModifier : 7;      /**< 0x01 */
    429429    unsigned fRMB : 1;
     
    457457typedef SCSIINQUIRYDATA *PSCSIINQUIRYDATA;
    458458typedef const SCSIINQUIRYDATA *PCSCSIINQUIRYDATA;
     459
     460#define SCSI_INQUIRY_DATA_PERIPHERAL_QUALIFIER_CONNECTED                   0x00
     461#define SCSI_INQUIRY_DATA_PERIPHERAL_QUALIFIER_NOT_CONNECTED_BUT_SUPPORTED 0x01
     462#define SCSI_INQUIRY_DATA_PERIPHERAL_QUALIFIER_NOT_CONNECTED_NOT_SUPPORTED 0x03
     463
     464#define SCSI_INQUIRY_DATA_PERIPHERAL_DEVICE_TYPE_DIRECT_ACCESS     0x00
     465#define SCSI_INQUIRY_DATA_PERIPHERAL_DEVICE_TYPE_SEQUENTIAL_ACCESS 0x01
     466#define SCSI_INQUIRY_DATA_PERIPHERAL_DEVICE_TYPE_CD_DVD            0x05
     467#define SCSI_INQUIRY_DATA_PERIPHERAL_DEVICE_TYPE_UNKNOWN           0x1f
     468
    459469/** @} */
    460470
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