Changeset 91876 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Oct 20, 2021 10:47:27 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 147679
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DrvVD.cpp
r91869 r91876 3765 3765 static DECLCALLBACK(int) drvvdIoReqSuspendedSave(PPDMIMEDIAEX pInterface, PSSMHANDLE pSSM, PDMMEDIAEXIOREQ hIoReq) 3766 3766 { 3767 PVBOXDISK pThis = RT_FROM_MEMBER(pInterface, VBOXDISK, IMediaEx); 3767 PVBOXDISK pThis = RT_FROM_MEMBER(pInterface, VBOXDISK, IMediaEx); 3768 PCPDMDRVHLPR3 pHlp = pThis->pDrvIns->pHlpR3; 3768 3769 PPDMMEDIAEXIOREQINT pIoReq = hIoReq; 3769 3770 … … 3773 3774 || pIoReq->enmState == VDIOREQSTATE_ALLOCATED, VERR_INVALID_STATE); 3774 3775 3775 SSMR3PutU32(pSSM, DRVVD_IOREQ_SAVED_STATE_VERSION);3776 SSMR3PutU32(pSSM, (uint32_t)pIoReq->enmType);3777 SSMR3PutU32(pSSM, pIoReq->uIoReqId);3778 SSMR3PutU32(pSSM, pIoReq->fFlags);3776 pHlp->pfnSSMPutU32(pSSM, DRVVD_IOREQ_SAVED_STATE_VERSION); 3777 pHlp->pfnSSMPutU32(pSSM, (uint32_t)pIoReq->enmType); 3778 pHlp->pfnSSMPutU32(pSSM, pIoReq->uIoReqId); 3779 pHlp->pfnSSMPutU32(pSSM, pIoReq->fFlags); 3779 3780 if ( pIoReq->enmType == PDMMEDIAEXIOREQTYPE_READ 3780 3781 || pIoReq->enmType == PDMMEDIAEXIOREQTYPE_WRITE) 3781 3782 { 3782 SSMR3PutU64(pSSM, pIoReq->ReadWrite.offStart);3783 SSMR3PutU64(pSSM, pIoReq->ReadWrite.cbReq);3784 SSMR3PutU64(pSSM, pIoReq->ReadWrite.cbReqLeft);3783 pHlp->pfnSSMPutU64(pSSM, pIoReq->ReadWrite.offStart); 3784 pHlp->pfnSSMPutU64(pSSM, pIoReq->ReadWrite.cbReq); 3785 pHlp->pfnSSMPutU64(pSSM, pIoReq->ReadWrite.cbReqLeft); 3785 3786 } 3786 3787 else if (pIoReq->enmType == PDMMEDIAEXIOREQTYPE_DISCARD) 3787 3788 { 3788 SSMR3PutU32(pSSM, pIoReq->Discard.cRanges);3789 pHlp->pfnSSMPutU32(pSSM, pIoReq->Discard.cRanges); 3789 3790 for (unsigned i = 0; i < pIoReq->Discard.cRanges; i++) 3790 3791 { 3791 SSMR3PutU64(pSSM, pIoReq->Discard.paRanges[i].offStart);3792 SSMR3PutU64(pSSM, pIoReq->Discard.paRanges[i].cbRange);3793 } 3794 } 3795 3796 return SSMR3PutU32(pSSM, UINT32_MAX); /* sanity/terminator */3792 pHlp->pfnSSMPutU64(pSSM, pIoReq->Discard.paRanges[i].offStart); 3793 pHlp->pfnSSMPutU64(pSSM, pIoReq->Discard.paRanges[i].cbRange); 3794 } 3795 } 3796 3797 return pHlp->pfnSSMPutU32(pSSM, UINT32_MAX); /* sanity/terminator */ 3797 3798 } 3798 3799 … … 3802 3803 static DECLCALLBACK(int) drvvdIoReqSuspendedLoad(PPDMIMEDIAEX pInterface, PSSMHANDLE pSSM, PDMMEDIAEXIOREQ hIoReq) 3803 3804 { 3804 PVBOXDISK pThis = RT_FROM_MEMBER(pInterface, VBOXDISK, IMediaEx); 3805 PVBOXDISK pThis = RT_FROM_MEMBER(pInterface, VBOXDISK, IMediaEx); 3806 PCPDMDRVHLPR3 pHlp = pThis->pDrvIns->pHlpR3; 3805 3807 PPDMMEDIAEXIOREQINT pIoReq = hIoReq; 3806 3808 … … 3814 3816 bool fPlaceOnRedoList = true; 3815 3817 3816 SSMR3GetU32(pSSM, &u32);3818 pHlp->pfnSSMGetU32(pSSM, &u32); 3817 3819 if (u32 <= DRVVD_IOREQ_SAVED_STATE_VERSION) 3818 3820 { 3819 SSMR3GetU32(pSSM, &u32);3821 pHlp->pfnSSMGetU32(pSSM, &u32); 3820 3822 AssertReturn( u32 == PDMMEDIAEXIOREQTYPE_WRITE 3821 3823 || u32 == PDMMEDIAEXIOREQTYPE_READ … … 3825 3827 pIoReq->enmType = (PDMMEDIAEXIOREQTYPE)u32; 3826 3828 3827 SSMR3GetU32(pSSM, &u32);3829 pHlp->pfnSSMGetU32(pSSM, &u32); 3828 3830 AssertReturn(u32 == pIoReq->uIoReqId, VERR_SSM_DATA_UNIT_FORMAT_CHANGED); 3829 3831 3830 SSMR3GetU32(pSSM, &u32);3832 pHlp->pfnSSMGetU32(pSSM, &u32); 3831 3833 AssertReturn(u32 == pIoReq->fFlags, VERR_SSM_DATA_UNIT_FORMAT_CHANGED); 3832 3834 … … 3834 3836 || pIoReq->enmType == PDMMEDIAEXIOREQTYPE_WRITE) 3835 3837 { 3836 SSMR3GetU64(pSSM, &pIoReq->ReadWrite.offStart);3837 SSMR3GetU64(pSSM, &u64);3838 pHlp->pfnSSMGetU64(pSSM, &pIoReq->ReadWrite.offStart); 3839 pHlp->pfnSSMGetU64(pSSM, &u64); 3838 3840 pIoReq->ReadWrite.cbReq = (size_t)u64; 3839 SSMR3GetU64(pSSM, &u64);3841 pHlp->pfnSSMGetU64(pSSM, &u64); 3840 3842 pIoReq->ReadWrite.cbReqLeft = (size_t)u64; 3841 3843 … … 3863 3865 else if (pIoReq->enmType == PDMMEDIAEXIOREQTYPE_DISCARD) 3864 3866 { 3865 rc = SSMR3GetU32(pSSM, &pIoReq->Discard.cRanges);3867 rc = pHlp->pfnSSMGetU32(pSSM, &pIoReq->Discard.cRanges); 3866 3868 if (RT_SUCCESS(rc)) 3867 3869 { … … 3871 3873 for (unsigned i = 0; i < pIoReq->Discard.cRanges; i++) 3872 3874 { 3873 SSMR3GetU64(pSSM, &pIoReq->Discard.paRanges[i].offStart);3874 SSMR3GetU64(pSSM, &u64);3875 pHlp->pfnSSMGetU64(pSSM, &pIoReq->Discard.paRanges[i].offStart); 3876 pHlp->pfnSSMGetU64(pSSM, &u64); 3875 3877 pIoReq->Discard.paRanges[i].cbRange = (size_t)u64; 3876 3878 } … … 3882 3884 3883 3885 if (RT_SUCCESS(rc)) 3884 rc = SSMR3GetU32(pSSM, &u32); /* sanity/terminator */3886 rc = pHlp->pfnSSMGetU32(pSSM, &u32); /* sanity/terminator */ 3885 3887 if (RT_SUCCESS(rc)) 3886 3888 AssertReturn(u32 == UINT32_MAX, VERR_SSM_DATA_UNIT_FORMAT_CHANGED);
Note:
See TracChangeset
for help on using the changeset viewer.