VirtualBox

Changeset 28422 in vbox for trunk/include


Ignore:
Timestamp:
Apr 16, 2010 3:47:03 PM (15 years ago)
Author:
vboxsync
Message:

Shared paging updates

Location:
trunk/include/VBox
Files:
2 edited

Legend:

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

    r28036 r28422  
    3434#include <VBox/gvmm.h>
    3535#include <VBox/sup.h>
     36#include <VBox/VMMDev.h> /* for VMMDEVSHAREDREGIONDESC */
    3637
    3738RT_C_DECLS_BEGIN
     
    297298GMMR0DECL(int)  GMMR0MapUnmapChunk(PVM pVM, VMCPUID idCpu, uint32_t idChunkMap, uint32_t idChunkUnmap, PRTR3PTR ppvR3);
    298299GMMR0DECL(int)  GMMR0SeedChunk(PVM pVM, VMCPUID idCpu, RTR3PTR pvR3);
     300GMMR0DECL(int)  GMMR0RegisterSharedModule(PVM pVM, VMCPUID idCpu, char *pszModuleName, char *pszVersion, RTGCPTR GCBaseAddr, uint32_t cbModule, unsigned cRegions, VMMDEVSHAREDREGIONDESC *pRegions);
     301GMMR0DECL(int)  GMMR0UnregisterSharedModule(PVM pVM, VMCPUID idCpu, char *pszModuleName, char *pszVersion, RTGCPTR GCBaseAddr, uint32_t cbModule);
     302GMMR0DECL(int)  GMMR0CheckSharedModules(PVM pVM, VMCPUID idCpu);
    299303
    300304
     
    454458
    455459GMMR0DECL(int) GMMR0FreeLargePageReq(PVM pVM, VMCPUID idCpu, PGMMFREELARGEPAGEREQ pReq);
     460
     461/**
     462 * Request buffer for GMMR0RegisterSharedModuleReq / VMMR0_DO_GMM_REGISTER_SHARED_MODULE.
     463 * @see GMMR0RegisterSharedModule.
     464 */
     465typedef struct GMMREGISTERSHAREDMODULEREQ
     466{
     467    /** The header. */
     468    SUPVMMR0REQHDR              Hdr;
     469    /** Shared module size. */
     470    uint32_t                    cbModule;
     471    /** Number of included region descriptors */
     472    uint32_t                    cRegions;
     473    /** Base address of the shared module. */
     474    RTGCPTR64                   GCBaseAddr;
     475    /** Module name */
     476    char                        szName[128];
     477    /** Module version */
     478    char                        szVersion[16];
     479    /** Shared region descriptor(s). */
     480    VMMDEVSHAREDREGIONDESC      aRegions[1];
     481} GMMREGISTERSHAREDMODULEREQ;
     482/** Pointer to a GMMR0RegisterSharedModuleReq / VMMR0_DO_GMM_REGISTER_SHARED_MODULE request buffer. */
     483typedef GMMREGISTERSHAREDMODULEREQ *PGMMREGISTERSHAREDMODULEREQ;
     484
     485GMMR0DECL(int) GMMR0RegisterSharedModuleReq(PVM pVM, VMCPUID idCpu, PGMMREGISTERSHAREDMODULEREQ pReq);
     486
     487
     488/**
     489 * Request buffer for GMMR0UnregisterSharedModuleReq / VMMR0_DO_GMM_UNREGISTER_SHARED_MODULE.
     490 * @see GMMR0UnregisterSharedModule.
     491 */
     492typedef struct GMMUNREGISTERSHAREDMODULEREQ
     493{
     494    /** The header. */
     495    SUPVMMR0REQHDR              Hdr;
     496    /** Shared module size. */
     497    uint32_t                    cbModule;
     498    /** Align at 8 byte boundary. */
     499    uint32_t                    u32Alignment;
     500    /** Base address of the shared module. */
     501    RTGCPTR64                   GCBaseAddr;
     502    /** Module name */
     503    char                        szName[128];
     504    /** Module version */
     505    char                        szVersion[16];
     506} GMMUNREGISTERSHAREDMODULEREQ;
     507/** Pointer to a GMMR0UnregisterSharedModuleReq / VMMR0_DO_GMM_UNREGISTER_SHARED_MODULE request buffer. */
     508typedef GMMUNREGISTERSHAREDMODULEREQ *PGMMUNREGISTERSHAREDMODULEREQ;
     509
     510GMMR0DECL(int) GMMR0UnregisterSharedModuleReq(PVM pVM, VMCPUID idCpu, PGMMUNREGISTERSHAREDMODULEREQ pReq);
    456511
    457512
     
    478533GMMR3DECL(int)  GMMR3BalloonedPages(PVM pVM, GMMBALLOONACTION enmAction, uint32_t cBalloonedPages);
    479534GMMR3DECL(int)  GMMR3QueryVMMMemoryStats(PVM pVM, uint64_t *pcTotalAllocPages, uint64_t *pcTotalFreePages, uint64_t *pcTotalBalloonPages);
     535GMMR3DECL(int)  GMMR3RegisterSharedModule(PVM pVM, char *pszModuleName, char *pszVersion, RTGCPTR GCBaseAddr, uint32_t cbModule,
     536                                          unsigned cRegions, VMMDEVSHAREDREGIONDESC *pRegions);
     537GMMR3DECL(int)  GMMR3UnregisterSharedModule(PVM pVM, char *pszModuleName, char *pszVersion, RTGCPTR GCBaseAddr, uint32_t cbModule);
     538GMMR3DECL(int)  GMMR3CheckSharedModules(PVM pVM);
    480539/** @} */
    481540#endif /* IN_RING3 */
  • trunk/include/VBox/vmm.h

    r28036 r28422  
    308308    /** Call GMMR0SeedChunk(). */
    309309    VMMR0_DO_GMM_SEED_CHUNK,
     310    /** Call GMMR0RegisterSharedModule. */
     311    VMMR0_DO_GMM_REGISTER_SHARED_MODULE,
     312    /** Call GMMR0UnregisterSharedModule. */
     313    VMMR0_DO_GMM_UNREGISTER_SHARED_MODULE,
     314    /** Call GMMR0CheckSharedModules. */
     315    VMMR0_DO_GMM_CHECK_SHARED_MODULES,
    310316
    311317    /** Set a GVMM or GMM configuration value. */
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