VirtualBox

Changeset 28415 in vbox for trunk/src/VBox/Devices/VMMDev


Ignore:
Timestamp:
Apr 16, 2010 12:59:40 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
60179
Message:

Shared paging updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/VMMDev/VMMDev.cpp

    r28264 r28415  
    17621762            break;
    17631763        }
     1764
     1765#ifdef VBOX_WITH_PAGE_SHARING
     1766        case VMMDevReq_RegisterSharedModule:
     1767        {
     1768            VMMDevSharedModuleRegistrationRequest *pReqModule = (VMMDevSharedModuleRegistrationRequest *)pRequestHeader;
     1769
     1770            if (    pRequestHeader->size < sizeof(VMMDevSharedModuleRegistrationRequest)
     1771                ||  pRequestHeader->size != RT_OFFSETOF(VMMDevSharedModuleRegistrationRequest, aRegions[pReqModule->cRegions]))
     1772            {
     1773                pRequestHeader->rc = VERR_INVALID_PARAMETER;
     1774            }
     1775            else
     1776            {
     1777                pRequestHeader->rc = PGMR3SharedModuleRegister(pVM, pReqModule->GCBaseAddr, pReqModule->cbModule,
     1778                                                               pReqModule->szName, pReqModule->szVersion,
     1779                                                               pReqModule->cRegions, pReqModule->aRegions);
     1780            }
     1781            break;
     1782        }
     1783
     1784        case VMMDevReq_UnregisterSharedModule:
     1785        {
     1786            VMMDevSharedModuleUnregistrationRequest *pReqModule = (VMMDevSharedModuleUnregistrationRequest *)pRequestHeader;
     1787
     1788            if (pRequestHeader->size != sizeof(VMMDevSharedModuleUnregistrationRequest)
     1789            {
     1790                pRequestHeader->rc = VERR_INVALID_PARAMETER;
     1791            }
     1792            else
     1793            {
     1794                pRequestHeader->rc = PGMR3SharedModuleUnregister(pVM, pReqModule->GCBaseAddr, pReqModule->cbModule,
     1795                                                                 pReqModule->szName, pReqModule->szVersion);
     1796            }
     1797            break;
     1798        }
     1799
     1800        case VMMDevReq_CheckSharedModules:
     1801        {
     1802            VMMDevSharedModuleCheckRequest *pReqModule = (VMMDevSharedModuleCheckRequest *)pRequestHeader;
     1803
     1804            if (pRequestHeader->size != sizeof(VMMDevSharedModuleCheckRequest)
     1805            {
     1806                pRequestHeader->rc = VERR_INVALID_PARAMETER;
     1807            }
     1808            else
     1809            {
     1810                pRequestHeader->rc = PGMR3SharedModuleCheck(pVM);
     1811            }
     1812            break;
     1813        }
     1814
     1815#endif
    17641816
    17651817#ifdef DEBUG
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