VirtualBox

Changeset 28422 in vbox for trunk/src/VBox/VMM/VMMR0


Ignore:
Timestamp:
Apr 16, 2010 3:47:03 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
60188
Message:

Shared paging updates

Location:
trunk/src/VBox/VMM/VMMR0
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/GMMR0.cpp

    r28043 r28422  
    33143314}
    33153315
     3316
     3317/**
     3318 * Registers a new shared module for the VM
     3319 *
     3320 * @returns VBox status code.
     3321 * @param   pVM                 VM handle
     3322 * @param   idCpu               VCPU id
     3323 * @param   pszModuleName       Module name
     3324 * @param   pszVersion          Module version
     3325 * @param   GCBaseAddr          Module base address
     3326 * @param   cbModule            Module size
     3327 * @param   cRegions            Number of shared region descriptors
     3328 * @param   pRegions            Shared region(s)
     3329 */
     3330GMMR0DECL(int) GMMR0RegisterSharedModule(PVM pVM, VMCPUID idCpu, char *pszModuleName, char *pszVersion, RTGCPTR GCBaseAddr, uint32_t cbModule,
     3331                                         unsigned cRegions, VMMDEVSHAREDREGIONDESC *pRegions)
     3332{
     3333    return VERR_NOT_IMPLEMENTED;
     3334}
     3335
     3336
     3337/**
     3338 * VMMR0 request wrapper for GMMR0RegisterSharedModule.
     3339 *
     3340 * @returns see GMMR0RegisterSharedModule.
     3341 * @param   pVM             Pointer to the shared VM structure.
     3342 * @param   idCpu           VCPU id
     3343 * @param   pReq            The request packet.
     3344 */
     3345GMMR0DECL(int)  GMMR0RegisterSharedModuleReq(PVM pVM, VMCPUID idCpu, PGMMREGISTERSHAREDMODULEREQ pReq)
     3346{
     3347    /*
     3348     * Validate input and pass it on.
     3349     */
     3350    AssertPtrReturn(pVM, VERR_INVALID_POINTER);
     3351    AssertPtrReturn(pReq, VERR_INVALID_POINTER);
     3352    AssertMsgReturn(pReq->Hdr.cbReq >= sizeof(*pReq) && pReq->Hdr.cbReq == RT_OFFSETOF(GMMREGISTERSHAREDMODULEREQ, aRegions[pReq->cRegions]), ("%#x != %#x\n", pReq->Hdr.cbReq, sizeof(*pReq)), VERR_INVALID_PARAMETER);
     3353
     3354    return GMMR0RegisterSharedModule(pVM, idCpu, pReq->szName, pReq->szVersion, pReq->GCBaseAddr, pReq->cbModule, pReq->cRegions, pReq->aRegions);
     3355}
     3356
     3357/**
     3358 * Unregisters a shared module for the VM
     3359 *
     3360 * @returns VBox status code.
     3361 * @param   pVM                 VM handle
     3362 * @param   idCpu               VCPU id
     3363 * @param   pszModuleName       Module name
     3364 * @param   pszVersion          Module version
     3365 * @param   GCBaseAddr          Module base address
     3366 * @param   cbModule            Module size
     3367 */
     3368GMMR0DECL(int) GMMR0UnregisterSharedModule(PVM pVM, VMCPUID idCpu, char *pszModuleName, char *pszVersion, RTGCPTR GCBaseAddr, uint32_t cbModule)
     3369{
     3370    return VERR_NOT_IMPLEMENTED;
     3371}
     3372
     3373/**
     3374 * VMMR0 request wrapper for GMMR0UnregisterSharedModule.
     3375 *
     3376 * @returns see GMMR0UnregisterSharedModule.
     3377 * @param   pVM             Pointer to the shared VM structure.
     3378 * @param   idCpu           VCPU id
     3379 * @param   pReq            The request packet.
     3380 */
     3381GMMR0DECL(int)  GMMR0UnregisterSharedModuleReq(PVM pVM, VMCPUID idCpu, PGMMUNREGISTERSHAREDMODULEREQ pReq)
     3382{
     3383    /*
     3384     * Validate input and pass it on.
     3385     */
     3386    AssertPtrReturn(pVM, VERR_INVALID_POINTER);
     3387    AssertPtrReturn(pReq, VERR_INVALID_POINTER);
     3388    AssertMsgReturn(pReq->Hdr.cbReq == sizeof(*pReq), ("%#x != %#x\n", pReq->Hdr.cbReq, sizeof(*pReq)), VERR_INVALID_PARAMETER);
     3389
     3390    return GMMR0UnregisterSharedModule(pVM, idCpu, pReq->szName, pReq->szVersion, pReq->GCBaseAddr, pReq->cbModule);
     3391}
     3392
     3393
     3394/**
     3395 * Checks regsitered modules for shared pages
     3396 *
     3397 * @returns VBox status code.
     3398 * @param   pVM                 VM handle
     3399 * @param   idCpu               VCPU id
     3400 */
     3401GMMR0DECL(int) GMMR0CheckSharedModules(PVM pVM, VMCPUID idCpu)
     3402{
     3403    return VERR_NOT_IMPLEMENTED;
     3404}
  • trunk/src/VBox/VMM/VMMR0/VMMR0.cpp

    r28320 r28422  
    936936            return GMMR0SeedChunk(pVM, idCpu, (RTR3PTR)u64Arg);
    937937
     938        case VMMR0_DO_GMM_REGISTER_SHARED_MODULE:
     939            if (u64Arg)
     940                return VERR_INVALID_PARAMETER;
     941            return GMMR0RegisterSharedModuleReq(pVM, idCpu, (PGMMREGISTERSHAREDMODULEREQ)pReqHdr);
     942
     943        case VMMR0_DO_GMM_UNREGISTER_SHARED_MODULE:
     944            if (u64Arg)
     945                return VERR_INVALID_PARAMETER;
     946            return GMMR0UnregisterSharedModuleReq(pVM, idCpu, (PGMMUNREGISTERSHAREDMODULEREQ)pReqHdr);
     947
     948        case VMMR0_DO_GMM_CHECK_SHARED_MODULES:
     949            if (    u64Arg
     950                ||  pReqHdr)
     951                return VERR_INVALID_PARAMETER;
     952            return GMMR0CheckSharedModules(pVM, idCpu);
     953
    938954        /*
    939955         * A quick GCFGM mock-up.
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