VirtualBox

Changeset 94763 in vbox


Ignore:
Timestamp:
Apr 29, 2022 4:36:29 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
151148
Message:

VMM/SSM: Allow SSMR3Open and SSMR3ValidateFile to take a stream operations callback table, bugref:9955

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/ssm.h

    r93444 r94763  
    12121212VMMR3DECL(int)          SSMR3Load(PVM pVM, const char *pszFilename, PCSSMSTRMOPS pStreamOps, void *pvStreamOpsUser,
    12131213                                  SSMAFTER enmAfter, PFNVMPROGRESS pfnProgress, void *pvProgressUser);
    1214 VMMR3DECL(int)          SSMR3ValidateFile(const char *pszFilename, bool fChecksumIt);
    1215 VMMR3DECL(int)          SSMR3Open(const char *pszFilename, unsigned fFlags, PSSMHANDLE *ppSSM);
     1214VMMR3DECL(int)          SSMR3ValidateFile(const char *pszFilename, PCSSMSTRMOPS pStreamOps, void *pvStreamOps,
     1215                                          bool fChecksumIt);
     1216VMMR3DECL(int)          SSMR3Open(const char *pszFilename, PCSSMSTRMOPS pStreamOps, void *pvStreamOps,
     1217                                  unsigned fFlags, PSSMHANDLE *ppSSM);
    12161218VMMR3DECL(int)          SSMR3Close(PSSMHANDLE pSSM);
    12171219VMMR3DECL(int)          SSMR3Seek(PSSMHANDLE pSSM, const char *pszUnit, uint32_t iInstance, uint32_t *piVersion);
  • trunk/src/VBox/Main/src-all/DisplayUtils.cpp

    r93444 r94763  
    4141
    4242    PSSMHANDLE pSSM;
    43     int vrc = SSMR3Open(strStateFilePath.c_str(), 0 /*fFlags*/, &pSSM);
     43    int vrc = SSMR3Open(strStateFilePath.c_str(), NULL /*pStreamOps*/, NULL /*pvStreamOps*/,
     44                        0 /*fFlags*/, &pSSM);
    4445    if (RT_SUCCESS(vrc))
    4546    {
     
    157158
    158159    PSSMHANDLE pSSM;
    159     int vrc = SSMR3Open(strStateFilePath.c_str(), 0 /*fFlags*/, &pSSM);
     160    int vrc = SSMR3Open(strStateFilePath.c_str(), NULL /*pStreamOps*/, NULL /*pvStreamOps*/,
     161                        0 /*fFlags*/, &pSSM);
    160162    if (RT_SUCCESS(vrc))
    161163    {
  • trunk/src/VBox/Main/src-client/ConsoleImpl.cpp

    r94744 r94763  
    16161616
    16171617        PSSMHANDLE pSSM;
    1618         int vrc = pVMM->pfnSSMR3Open(strSavedStateFile.c_str(), 0, &pSSM);
     1618        int vrc = pVMM->pfnSSMR3Open(strSavedStateFile.c_str(), NULL /*pStreamOps*/, NULL /*pvStreamOps*/,
     1619                                     0, &pSSM);
    16191620        if (RT_SUCCESS(vrc))
    16201621        {
     
    78617862
    78627863            ComAssertRet(bstrSavedStateFile.isNotEmpty(), E_FAIL);
    7863             int vrc = pVMM->pfnSSMR3ValidateFile(strSavedStateFile.c_str(), false /* fChecksumIt */);
     7864            int vrc = pVMM->pfnSSMR3ValidateFile(strSavedStateFile.c_str(), NULL /*pStreamOps*/, NULL /*pvStreamOps*/,
     7865                                                 false /* fChecksumIt */);
    78647866            if (RT_FAILURE(vrc))
    78657867            {
  • trunk/src/VBox/VMM/VMMR3/SSM.cpp

    r93554 r94763  
    93269326 *
    93279327 * @param   pszFilename     The path to the file to validate.
     9328 * @param   pStreamOps      The stream method table. NULL if pszFilename is
     9329 *                          used.
     9330 * @param   pvStreamOps     The user argument to the stream methods.
    93289331 * @param   fChecksumIt     Whether to checksum the file or not.
    93299332 *
    93309333 * @thread  Any.
    93319334 */
    9332 VMMR3DECL(int) SSMR3ValidateFile(const char *pszFilename, bool fChecksumIt)
     9335VMMR3DECL(int) SSMR3ValidateFile(const char *pszFilename, PCSSMSTRMOPS pStreamOps, void *pvStreamOps, bool fChecksumIt)
    93339336{
    93349337    LogFlow(("SSMR3ValidateFile: pszFilename=%p:{%s} fChecksumIt=%RTbool\n", pszFilename, pszFilename, fChecksumIt));
     
    93389341     */
    93399342    SSMHANDLE Handle;
    9340     int rc = ssmR3OpenFile(NULL, pszFilename, NULL /*pStreamOps*/, NULL /*pvUser*/, fChecksumIt,
     9343    int rc = ssmR3OpenFile(NULL, pszFilename, pStreamOps, pvStreamOps, fChecksumIt,
    93419344                           false /*fChecksumOnRead*/, 1 /*cBuffers*/, &Handle);
    93429345    if (RT_SUCCESS(rc))
     
    93549357 *
    93559358 * @param   pszFilename     The path to the saved state file.
     9359 * @param   pStreamOps      The stream method table. NULL if pszFilename is
     9360 *                          used.
     9361 * @param   pvStreamOps     The user argument to the stream methods.
    93569362 * @param   fFlags          Open flags. Reserved, must be 0.
    93579363 * @param   ppSSM           Where to store the SSM handle.
     
    93599365 * @thread  Any.
    93609366 */
    9361 VMMR3DECL(int) SSMR3Open(const char *pszFilename, unsigned fFlags, PSSMHANDLE *ppSSM)
     9367VMMR3DECL(int) SSMR3Open(const char *pszFilename, PCSSMSTRMOPS pStreamOps, void *pvStreamOps,
     9368                         unsigned fFlags, PSSMHANDLE *ppSSM)
    93629369{
    93639370    LogFlow(("SSMR3Open: pszFilename=%p:{%s} fFlags=%#x ppSSM=%p\n", pszFilename, pszFilename, fFlags, ppSSM));
     
    93799386     * Try open the file and validate it.
    93809387     */
    9381     int rc = ssmR3OpenFile(NULL, pszFilename, NULL /*pStreamOps*/, NULL /*pvUser*/, false /*fChecksumIt*/,
     9388    int rc = ssmR3OpenFile(NULL, pszFilename, pStreamOps, pvStreamOps, false /*fChecksumIt*/,
    93829389                           true /*fChecksumOnRead*/, 1 /*cBuffers*/, pSSM);
    93839390    if (RT_SUCCESS(rc))
  • trunk/src/VBox/VMM/testcase/tstSSM-2.cpp

    r93115 r94763  
    3434{
    3535    PSSMHANDLE pSSM;
    36     int rc = SSMR3Open(pszFilename, 0, &pSSM);
     36    int rc = SSMR3Open(pszFilename, NULL /*pStreamOps*/, NULL /*pvStreamOps*/, 0, &pSSM);
    3737    RTEXITCODE rcExit = RTEXITCODE_FAILURE;
    3838    if (RT_SUCCESS(rc))
  • trunk/src/VBox/VMM/testcase/tstSSM.cpp

    r93554 r94763  
    806806     */
    807807    u64Start = RTTimeNanoTS();
    808     rc = SSMR3ValidateFile(pszFilename, false /* fChecksumIt*/ );
     808    rc = SSMR3ValidateFile(pszFilename, NULL /*pStreamOps*/, NULL /*pvStreamOps*/, false /* fChecksumIt*/ );
    809809    if (RT_FAILURE(rc))
    810810    {
     
    816816
    817817    u64Start = RTTimeNanoTS();
    818     rc = SSMR3ValidateFile(pszFilename, true /* fChecksumIt */);
     818    rc = SSMR3ValidateFile(pszFilename, NULL /*pStreamOps*/, NULL /*pvStreamOps*/, true /* fChecksumIt */);
    819819    if (RT_FAILURE(rc))
    820820    {
     
    830830    u64Start = RTTimeNanoTS();
    831831    PSSMHANDLE pSSM;
    832     rc = SSMR3Open(pszFilename, 0, &pSSM);
     832    rc = SSMR3Open(pszFilename, NULL /*pStreamOps*/, NULL /*pvStreamOps*/, 0, &pSSM);
    833833    if (RT_FAILURE(rc))
    834834    {
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette