/* * FinishDebugging - undo all the stuff done by InitDebugging */ void FinishDebugging( void ) { InterruptUnRegister( NULL ); if( faultInstance != NULL ) { FreeProcInstance( faultInstance ); } NotifyUnRegister( NULL ); if( notifyInstance != NULL ) { FreeProcInstance( notifyInstance ); } if( WDebug386 ) { ResetDebugInterrupts32(); DebuggerIsExecuting( -1 ); Out((OUT_INIT,"Debug interrupts reset")); FreeLibrary( wint32 ); } KillWDebug386(); // FreeProcInstance( SubClassProcInstance ); FiniDebugHook(); WasInt32 = FALSE; if( CSAlias != NULL ) { FreeSelector( CSAlias ); } CSAlias = 0; DisableHookEvents(); HookRtn = NULL; } /* FinishDebugging */
trap_retval TRAPENTRY TrapRequest( trap_elen num_in_mx, in_mx_entry_p mx_in, trap_elen num_out_mx, mx_entry_p mx_out ) { trap_retval result; In_Mx_Num = num_in_mx; Out_Mx_Num = num_out_mx; In_Mx_Ptr = mx_in; Out_Mx_Ptr = mx_out; #if defined(WIN16) DisableHookEvents(); #endif /* The first item must be the request! */ result = CoreRequests[ *(access_req *)mx_in[0].ptr ](); #if defined(WIN16) EnableHookEvents(); #endif return( result ); }