VirtualBox

Changeset 32135 in vbox


Ignore:
Timestamp:
Aug 31, 2010 12:24:28 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
65410
Message:

Checkpoint PDM helper

Location:
trunk
Files:
6 edited

Legend:

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

    r32051 r32135  
    3535 * @{
    3636 */
     37
     38/**
     39 * Fault tolerance checkpoint type.
     40 */
     41typedef enum FTMCHECKPOINTTYPE
     42{
     43    FTMCHECKPOINTTYPE_NETWORK,
     44    FTMCHECKPOINTTYPE_STORAGE,
     45    FTMCHECKPOINTTYPE_32BIT_HACK = 0x7fffffff
     46} FTMCHECKPOINTTYPE;
     47
    3748VMMDECL(bool)  FTMIsDeltaLoadSaveActive(PVM pVM);
     49VMMDECL(int)   FTMSetCheckpoint(PVM pVM, FTMCHECKPOINTTYPE enmType);
    3850
    3951#ifdef IN_RING3
  • trunk/include/VBox/pdmdrv.h

    r30587 r32135  
    4040#include <VBox/mm.h>
    4141#include <VBox/err.h>
     42#include <VBox/ftm.h>
    4243#include <iprt/stdarg.h>
    4344
     
    628629    DECLRCCALLBACKMEMBER(bool, pfnAssertOther,(PPDMDRVINS pDrvIns, const char *pszFile, unsigned iLine, const char *pszFunction));
    629630
     631    /**
     632     * Notify FTM about a checkpoint occurance
     633     *
     634     * @param   pDrvIns             The driver instance.
     635     * @param   enmType             Checkpoint type
     636     * @thread  Any
     637     */
     638    DECLRCCALLBACKMEMBER(int, pfnFTSetCheckpoint,(PPDMDRVINS pDrvIns, FTMCHECKPOINTTYPE enmType));
     639
    630640    /** Just a safety precaution. */
    631641    uint32_t                        u32TheEnd;
    632642} PDMDRVHLPRC;
    633643/** Current PDMDRVHLPRC version number. */
    634 #define PDM_DRVHLPRC_VERSION                    PDM_VERSION_MAKE(0xf0f9, 1, 0)
     644#define PDM_DRVHLPRC_VERSION                    PDM_VERSION_MAKE(0xf0fA, 1, 0)
    635645
    636646
     
    715725    DECLR0CALLBACKMEMBER(bool, pfnAssertOther,(PPDMDRVINS pDrvIns, const char *pszFile, unsigned iLine, const char *pszFunction));
    716726
     727    /**
     728     * Notify FTM about a checkpoint occurance
     729     *
     730     * @param   pDrvIns             The driver instance.
     731     * @param   enmType             Checkpoint type
     732     * @thread  Any
     733     */
     734    DECLR0CALLBACKMEMBER(int, pfnFTSetCheckpoint,(PPDMDRVINS pDrvIns, FTMCHECKPOINTTYPE enmType));
     735
    717736    /** Just a safety precaution. */
    718737    uint32_t                        u32TheEnd;
    719738} PDMDRVHLPR0;
    720739/** Current DRVHLP version number. */
    721 #define PDM_DRVHLPR0_VERSION                    PDM_VERSION_MAKE(0xf0f8, 1, 0)
     740#define PDM_DRVHLPR0_VERSION                    PDM_VERSION_MAKE(0xf0f9, 1, 0)
    722741
    723742
     
    11961215    DECLR3CALLBACKMEMBER(int, pfnCallR0,(PPDMDRVINS pDrvIns, uint32_t uOperation, uint64_t u64Arg));
    11971216
     1217    /**
     1218     * Notify FTM about a checkpoint occurance
     1219     *
     1220     * @param   pDrvIns             The driver instance.
     1221     * @param   enmType             Checkpoint type
     1222     * @thread  Any
     1223     */
     1224    DECLR3CALLBACKMEMBER(int, pfnFTSetCheckpoint,(PPDMDRVINS pDrvIns, FTMCHECKPOINTTYPE enmType));
     1225
    11981226    /** Just a safety precaution. */
    11991227    uint32_t                        u32TheEnd;
    12001228} PDMDRVHLPR3;
    12011229/** Current DRVHLP version number. */
    1202 #define PDM_DRVHLPR3_VERSION                    PDM_VERSION_MAKE(0xf0fb, 1, 0)
     1230#define PDM_DRVHLPR3_VERSION                    PDM_VERSION_MAKE(0xf0fc, 1, 0)
    12031231
    12041232#endif /* IN_RING3 */
     
    12791307#endif
    12801308
     1309/**
     1310 * @copydoc PDMDRVHLP::pfnFTSetCheckpoint
     1311 */
     1312DECLINLINE(int) PDMDrvHlpFTSetCheckpoint(PPDMDRVINS pDrvIns, FTMCHECKPOINTTYPE enmType)
     1313{
     1314    return pDrvIns->CTX_SUFF(pHlp)->pfnFTSetCheckpoint(pDrvIns, enmType);
     1315}
    12811316
    12821317#ifdef IN_RING3
  • trunk/src/VBox/VMM/PDMDriver.cpp

    r30320 r32135  
    13521352}
    13531353
     1354/** @interface_method_impl{PDMDRVHLP,pfnFTSetCheckpoint} */
     1355static DECLCALLBACK(int) pdmR3DrvHlp_FTSetCheckpoint(PPDMDRVINS pDrvIns, FTMCHECKPOINTTYPE enmType)
     1356{
     1357    PDMDRV_ASSERT_DRVINS(pDrvIns);
     1358    return FTMSetCheckpoint(pDrvIns->Internal.s.pVMR3, enmType);
     1359}
    13541360
    13551361/**
     
    13921398    pdmR3DrvHlp_CritSectInit,
    13931399    pdmR3DrvHlp_CallR0,
     1400    pdmR3DrvHlp_FTSetCheckpoint,
    13941401    PDM_DRVHLPR3_VERSION /* u32TheEnd */
    13951402};
  • trunk/src/VBox/VMM/VMMAll/FTMAll.cpp

    r32051 r32135  
    3737 *
    3838 * @param   pVM         The VM to operate on.
     39 * @param   enmType     Checkpoint type
    3940 */
    40 VMMDECL(int) FTMSetCheckpoint(PVM pVM)
     41VMMDECL(int)   FTMSetCheckpoint(PVM pVM, FTMCHECKPOINTTYPE enmType)
    4142{
    4243    if (!pVM->fFaultTolerantMaster)
  • trunk/src/VBox/VMM/VMMGC/PDMGCDevice.cpp

    r28800 r32135  
    684684}
    685685
     686/** @interface_method_impl{PDMDRVHLPRC,pfnFTSetCheckpoint} */
     687static DECLCALLBACK(int) pdmRCDrvHlp_FTSetCheckpoint(PPDMDRVINS pDrvIns, FTMCHECKPOINTTYPE enmType)
     688{
     689    PDMDRV_ASSERT_DRVINS(pDrvIns);
     690    return FTMSetCheckpoint(pDrvIns->Internal.s.pVMRC, enmType);
     691}
    686692
    687693/**
     
    697703    pdmRCDrvHlp_AssertEMT,
    698704    pdmRCDrvHlp_AssertOther,
     705    pdmRCDrvHlp_FTSetCheckpoint,
    699706    PDM_DRVHLPRC_VERSION
    700707};
  • trunk/src/VBox/VMM/VMMR0/PDMR0Device.cpp

    r29521 r32135  
    716716}
    717717
     718/** @interface_method_impl{PDMDRVHLPR0,pfnFTSetCheckpoint} */
     719static DECLCALLBACK(int) pdmR0DrvHlp_FTSetCheckpoint(PPDMDRVINS pDrvIns, FTMCHECKPOINTTYPE enmType)
     720{
     721    PDMDRV_ASSERT_DRVINS(pDrvIns);
     722    return FTMSetCheckpoint(pDrvIns->Internal.s.pVMR0, enmType);
     723}
    718724
    719725/**
     
    729735    pdmR0DrvHlp_AssertEMT,
    730736    pdmR0DrvHlp_AssertOther,
     737    pdmR0DrvHlp_FTSetCheckpoint,
    731738    PDM_DRVHLPRC_VERSION
    732739};
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