VirtualBox

Changeset 21644 in vbox for trunk/include


Ignore:
Timestamp:
Jul 16, 2009 11:54:31 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
50176
Message:

Register guest allocated memory (locked & executable) for patching purposes.

Location:
trunk/include/VBox
Files:
2 edited

Legend:

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

    r21506 r21644  
    131131    VMMDevReq_GetHypervisorInfo          = 20,
    132132    VMMDevReq_SetHypervisorInfo          = 21,
     133    VMMDevReq_SetPatchMemory             = 22,
     134    VMMDevReq_ClearPatchMemory           = 23,
    133135    VMMDevReq_SetPowerStatus             = 30,
    134136    VMMDevReq_AcknowledgeEvents          = 41,
     
    458460} VMMDevReqHypervisorInfo;
    459461AssertCompileSize(VMMDevReqHypervisorInfo, 24+8);
     462
     463/** @name Default patch memory size .
     464 * Used by VMMDevReq_SetPatchMemory and VMMDevReq_ClearPatchMemory.
     465 * @{ */
     466#define VMMDEV_GUEST_DEFAULT_PATCHMEM_SIZE          8192
     467/** @} */
     468
     469/**
     470 * Patching memory structure. (locked executable & read-only page from the guest's perspective)
     471 *
     472 * Used by VMMDevReq_SetPatchMemory and VMMDevReq_ClearPatchMemory
     473 */
     474typedef struct
     475{
     476    /** Header. */
     477    VMMDevRequestHeader header;
     478    /** Guest virtual address of the patching page(s). */
     479    RTGCPTR             pPatchMem;
     480    /** Patch page size in bytes. */
     481    uint32_t            cbPatchMem;
     482} VMMDevReqPatchMemory;
     483AssertCompileSize(VMMDevReqPatchMemory, 24+12);
    460484
    461485
     
    13801404        case VMMDevReq_SetHypervisorInfo:
    13811405            return sizeof(VMMDevReqHypervisorInfo);
     1406        case VMMDevReq_SetPatchMemory:
     1407        case VMMDevReq_ClearPatchMemory:
     1408            return sizeof(VMMDevReqPatchMemory);
    13821409        case VMMDevReq_SetPowerStatus:
    13831410            return sizeof(VMMDevPowerStateRequest);
  • trunk/include/VBox/vmm.h

    r21217 r21644  
    192192VMMR3DECL(void)     VMMR3SendSipi(PVM pVM, VMCPUID idCpu, uint32_t uVector);
    193193VMMR3DECL(void)     VMMR3SendInitIpi(PVM pVM, VMCPUID idCpu);
     194VMMR3DECL(int)      VMMR3SetPatchMemory(PVM pVM, RTGCPTR pPatchMem, unsigned cbPatchMem);
     195VMMR3DECL(int)      VMMR3ClearPatchMemory(PVM pVM, RTGCPTR pPatchMem, unsigned cbPatchMem);
    194196VMMR3DECL(int)      VMMR3AtomicExecuteHandler(PVM pVM, PFNATOMICHANDLER pfnHandler, void *pvUser);
    195197VMMR3DECL(int)      VMMR3EmtRendezvous(PVM pVM, uint32_t fFlags, PFNVMMEMTRENDEZVOUS pfnRendezvous, void *pvUser);
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