VirtualBox

Ignore:
Timestamp:
May 18, 2017 3:57:16 PM (8 years ago)
Author:
vboxsync
Message:

Devices/Storage/DrvSCSI,VSCSI: Support CD/DVD images with multiple tracks like for DevATA to bring the AHCI and SCSI controllers up to the same feature level

File:
1 edited

Legend:

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

    r66058 r66955  
    529529
    530530/**
    531  * Wrapper for the get medium size I/O callback.
    532  *
    533  * @returns VBox status code.
     531 * Wrapper for the get medium region count I/O callback.
     532 *
     533 * @returns Number of regions for the underlying medium.
    534534 * @param   pVScsiLun   The LUN.
    535  * @param   pcbSize     Where to store the size on success.
    536  */
    537 DECLINLINE(int) vscsiLunMediumGetSize(PVSCSILUNINT pVScsiLun, uint64_t *pcbSize)
    538 {
    539     return pVScsiLun->pVScsiLunIoCallbacks->pfnVScsiLunMediumGetSize(pVScsiLun,
    540                                                                      pVScsiLun->pvVScsiLunUser,
    541                                                                      pcbSize);
    542 }
    543 
    544 /**
    545  * Wrapper for the get medium sector size I/O callback.
     535 */
     536DECLINLINE(uint32_t) vscsiLunMediumGetRegionCount(PVSCSILUNINT pVScsiLun)
     537{
     538    return pVScsiLun->pVScsiLunIoCallbacks->pfnVScsiLunMediumGetRegionCount(pVScsiLun,
     539                                                                            pVScsiLun->pvVScsiLunUser);
     540}
     541
     542/**
     543 * Wrapper for the query medium region properties I/O callback.
    546544 *
    547545 * @returns VBox status code.
    548546 * @param   pVScsiLun     The LUN.
    549  * @param   pcbSectorSize Where to store the sector size on success.
    550  */
    551 DECLINLINE(int) vscsiLunMediumGetSectorSize(PVSCSILUNINT pVScsiLun, uint32_t *pcbSectorSize)
    552 {
    553     return pVScsiLun->pVScsiLunIoCallbacks->pfnVScsiLunMediumGetSectorSize(pVScsiLun,
    554                                                                            pVScsiLun->pvVScsiLunUser,
    555                                                                            pcbSectorSize);
     547 * @param   uRegion       The region index to query the properties of.
     548 * @param   pu64LbaStart  Where to store the starting LBA for the region on success.
     549 * @param   pcBlocks      Where to store the number of blocks for the region on success.
     550 * @param   pcbBlock      Where to store the size of one block in bytes on success.
     551 * @param   penmDataForm  WHere to store the data form for the region on success.
     552 */
     553DECLINLINE(int) vscsiLunMediumQueryRegionProperties(PVSCSILUNINT pVScsiLun, uint32_t uRegion,
     554                                                    uint64_t *pu64LbaStart, uint64_t *pcBlocks,
     555                                                    uint64_t *pcbBlock, PVDREGIONDATAFORM penmDataForm)
     556{
     557    return pVScsiLun->pVScsiLunIoCallbacks->pfnVScsiLunMediumQueryRegionProperties(pVScsiLun,
     558                                                                                   pVScsiLun->pvVScsiLunUser,
     559                                                                                   uRegion, pu64LbaStart,
     560                                                                                   pcBlocks, pcbBlock,
     561                                                                                   penmDataForm);
     562}
     563
     564/**
     565 * Wrapper for the query medium region properties for LBA I/O callback.
     566 *
     567 * @returns VBox status code.
     568 * @param   pVScsiLun     The LUN.
     569 * @param   uRegion       The region index to query the properties of.
     570 * @param   pu64LbaStart  Where to store the starting LBA for the region on success.
     571 * @param   pcBlocks      Where to store the number of blocks for the region on success.
     572 * @param   pcbBlock      Where to store the size of one block in bytes on success.
     573 * @param   penmDataForm  WHere to store the data form for the region on success.
     574 */
     575DECLINLINE(int) vscsiLunMediumQueryRegionPropertiesForLba(PVSCSILUNINT pVScsiLun, uint64_t u64LbaStart, uint32_t *puRegion,
     576                                                          uint64_t *pcBlocks, uint64_t *pcbBlock,
     577                                                          PVDREGIONDATAFORM penmDataForm)
     578{
     579    return pVScsiLun->pVScsiLunIoCallbacks->pfnVScsiLunMediumQueryRegionPropertiesForLba(pVScsiLun,
     580                                                                                         pVScsiLun->pvVScsiLunUser,
     581                                                                                         u64LbaStart, puRegion,
     582                                                                                         pcBlocks, pcbBlock,
     583                                                                                         penmDataForm);
    556584}
    557585
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