/** * Notification about a successful PGMR3HandlerPhysicalRegister() call. * * @param pVM Pointer to the VM. * @param enmKind Kind of access handler. * @param GCPhys Handler range address. * @param cb Size of the handler range. * @param fHasHCHandler Set if the handler have a HC callback function. */ VMMDECL(void) REMNotifyHandlerPhysicalRegister(PVM pVM, PGMPHYSHANDLERKIND enmKind, RTGCPHYS GCPhys, RTGCPHYS cb, bool fHasHCHandler) { REMHANDLERNOTIFICATION Rec; Rec.enmKind = REMHANDLERNOTIFICATIONKIND_PHYSICAL_REGISTER; Rec.u.PhysicalRegister.enmKind = enmKind; Rec.u.PhysicalRegister.GCPhys = GCPhys; Rec.u.PhysicalRegister.cb = cb; Rec.u.PhysicalRegister.fHasHCHandler = fHasHCHandler; remNotifyHandlerInsert(pVM, &Rec); }
/** * Notification about a successful PGMR3HandlerPhysicalDeregister() operation. * * @param pVM VM Handle. * @param enmType Handler type. * @param GCPhys Handler range address. * @param cb Size of the handler range. * @param fHasHCHandler Set if the handler have a HC callback function. * @param fRestoreAsRAM Whether the to restore it as normal RAM or as unassigned memory. */ VMMDECL(void) REMNotifyHandlerPhysicalDeregister(PVM pVM, PGMPHYSHANDLERTYPE enmType, RTGCPHYS GCPhys, RTGCPHYS cb, bool fHasHCHandler, bool fRestoreAsRAM) { REMHANDLERNOTIFICATION Rec; Rec.enmKind = REMHANDLERNOTIFICATIONKIND_PHYSICAL_DEREGISTER; Rec.u.PhysicalDeregister.enmType = enmType; Rec.u.PhysicalDeregister.GCPhys = GCPhys; Rec.u.PhysicalDeregister.cb = cb; Rec.u.PhysicalDeregister.fHasHCHandler = fHasHCHandler; Rec.u.PhysicalDeregister.fRestoreAsRAM = fRestoreAsRAM; remNotifyHandlerInsert(pVM, &Rec); }
/** * Notification about a successful PGMR3HandlerPhysicalModify() call. * * @param pVM Pointer to the VM. * @param enmKind Kind of access handler. * @param GCPhysOld Old handler range address. * @param GCPhysNew New handler range address. * @param cb Size of the handler range. * @param fHasHCHandler Set if the handler have a HC callback function. * @param fRestoreAsRAM Whether the to restore it as normal RAM or as unassigned memory. */ VMMDECL(void) REMNotifyHandlerPhysicalModify(PVM pVM, PGMPHYSHANDLERKIND enmKind, RTGCPHYS GCPhysOld, RTGCPHYS GCPhysNew, RTGCPHYS cb, bool fHasHCHandler, bool fRestoreAsRAM) { REMHANDLERNOTIFICATION Rec; Rec.enmKind = REMHANDLERNOTIFICATIONKIND_PHYSICAL_MODIFY; Rec.u.PhysicalModify.enmKind = enmKind; Rec.u.PhysicalModify.GCPhysOld = GCPhysOld; Rec.u.PhysicalModify.GCPhysNew = GCPhysNew; Rec.u.PhysicalModify.cb = cb; Rec.u.PhysicalModify.fHasHCHandler = fHasHCHandler; Rec.u.PhysicalModify.fRestoreAsRAM = fRestoreAsRAM; remNotifyHandlerInsert(pVM, &Rec); }