VirtualBox

Changeset 1325 in vbox


Ignore:
Timestamp:
Mar 8, 2007 12:02:11 PM (18 years ago)
Author:
vboxsync
Message:

Cleaned up

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/TRPM.cpp

    r716 r1325  
    423423static DECLCALLBACK(int) trpmR3Load(PVM pVM, PSSMHANDLE pSSM, uint32_t u32Version);
    424424static DECLCALLBACK(int) trpmGuestIDTWriteHandler(PVM pVM, RTGCPTR GCPtr, void *pvPtr, void *pvBuf, size_t cbBuf, PGMACCESSTYPE enmAccessType, void *pvUser);
     425static int               trpmR3ClearGuestTrapHandler(PVM pVM, unsigned iTrap);
    425426
    426427
     
    868869    {
    869870        /* Clear all handlers */
     871        Log(("TRPMR3SyncIDT: Clear all trap handlers.\n"));
    870872        /** @todo inefficient, but simple */
    871873        for (unsigned iGate=0;iGate<256;iGate++)
    872             TRPMR3SetGuestTrapHandler(pVM, iGate, TRPM_INVALID_HANDLER);
     874            trpmR3ClearGuestTrapHandler(pVM, iGate);
    873875
    874876        /* Scan them all (only the first time) */
     
    11031105
    11041106/**
     1107 * Clear guest trap/interrupt gate handler
     1108 *
     1109 * @returns VBox status code.
     1110 * @param   pVM         The VM to operate on.
     1111 * @param   iTrap       Interrupt/trap number.
     1112 */
     1113static int trpmR3ClearGuestTrapHandler(PVM pVM, unsigned iTrap)
     1114{
     1115    /*
     1116     * Validate.
     1117     */
     1118    if (iTrap >= ELEMENTS(pVM->trpm.s.aIdt))
     1119    {
     1120        AssertMsg(iTrap < TRPM_HANDLER_INT_BASE, ("Illegal gate number %d!\n", iTrap));
     1121        return VERR_INVALID_PARAMETER;
     1122    }
     1123
     1124    if (ASMBitTest(&pVM->trpm.s.au32IdtPatched[0], iTrap))
     1125        trpmR3ClearPassThroughHandler(pVM, iTrap);
     1126
     1127    pVM->trpm.s.aGuestTrapHandler[iTrap] = TRPM_INVALID_HANDLER;
     1128    return VINF_SUCCESS;
     1129}
     1130
     1131/**
    11051132 * Set guest trap/interrupt gate handler
    11061133 * Used for setting up trap gates used for kernel calls.
     
    11331160        /* clear trap handler */
    11341161        Log(("TRPMR3SetGuestTrapHandler: clear handler %x\n", iTrap));
    1135 
    1136         if (ASMBitTest(&pVM->trpm.s.au32IdtPatched[0], iTrap))
    1137             trpmR3ClearPassThroughHandler(pVM, iTrap);
    1138 
    1139         pVM->trpm.s.aGuestTrapHandler[iTrap] = TRPM_INVALID_HANDLER;
    1140         return VINF_SUCCESS;
     1162        return trpmR3ClearGuestTrapHandler(pVM, iTrap);
    11411163    }
    11421164
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