VirtualBox

Ignore:
Timestamp:
Oct 25, 2016 11:57:44 AM (8 years ago)
Author:
vboxsync
Message:

VSCSI: Start on support for SCSI_MAINTENANCE_IN_REPORT_SUPP_OPC, work in progress not enabled

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/VSCSI/VSCSIInternal.h

    r64132 r64412  
    172172
    173173/**
     174 * Supported operation code information entry.
     175 */
     176typedef struct VSCSILUNSUPOPC
     177{
     178    /** The operation code. */
     179    uint8_t                 u8Opc;
     180    /** Service action code if required as indicated by
     181     * VSCSI_LUN_SUP_OPC_SVC_ACTION_REQUIRED */
     182    uint16_t                u16SvcAction;
     183    /** Flags. */
     184    uint32_t                fFlags;
     185    /** Readable description for the op code. */
     186    const char              *pszOpc;
     187    /** The length of the CDB for this operation code. */
     188    uint8_t                 cbCdb;
     189    /** Pointer to the CDB usage data. */
     190    uint8_t                 *pbCdbUsage;
     191    /* The operation specific valuefor the timeout descriptor. */
     192    uint8_t                 u8OpcTimeoutSpec;
     193    /** The nominal processing timeout in seconds. */
     194    uint16_t                cNominalProcessingTimeout;
     195    /** The recommend timeout in seconds. */
     196    uint16_t                cRecommendTimeout;
     197} VSCSILUNSUPOPC;
     198/** Pointer to a operation code information entry. */
     199typedef VSCSILUNSUPOPC *PVSCSILUNSUPOPC;
     200/** Pointer to a const operation code information entry. */
     201typedef const VSCSILUNSUPOPC *PCVSCSILUNSUPOPC;
     202
     203/** @name Flags for the supported operation code infromation entries.
     204 * @{ */
     205/** Flag indicating wheter the service action member is valid and should be
     206 * evaluated to find the desired opcode information. */
     207#define VSCSI_LUN_SUP_OPC_SVC_ACTION_REQUIRED      RT_BIT_32(0)
     208/** Flag whether the values for the timeout descriptor are valid. */
     209#define VSCSI_LUN_SUP_OPC_TIMEOUT_DESC_VALID       RT_BIT_32(1)
     210/** @} */
     211
     212/** @name Support macros to create supported operation code information entries.
     213 * @{ */
     214#define VSCSI_LUN_SUP_OPC(a_u8Opc, a_pszOpc, a_cbCdb, a_pbCdbUsage) \
     215    { a_u8Opc, 0, 0, a_pszOpc, a_cbCdb, a_pbCdbUsage, 0, 0, 0}
     216#define VSCSI_LUN_SUP_OPC_SVC(a_u8Opc, a_u16SvcAction, a_pszOpc, a_cbCdb, a_pbCdbUsage) \
     217    { a_u8Opc, a_u16SvcAction, VSCSI_LUN_SUP_OPC_SVC_ACTION_REQUIRED, a_pszOpc, a_cbCdb, a_pbCdbUsage, 0, 0, 0}
     218/** @} */
     219
     220/**
    174221 * Virtual SCSI LUN descriptor.
    175222 */
     
    182229    /** LUN type size */
    183230    size_t               cbLun;
     231    /** Number of entries in the supported operation codes array. */
     232    uint32_t             cSupOpcInfo;
     233    /** Pointer to the array of supported operation codes for the
     234     * REPORT RUPPORTED OPERATION CODES command handled by the generic
     235     * device driver - optional.
     236     */
     237    PCVSCSILUNSUPOPC     paSupOpcInfo;
    184238
    185239    /**
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