Remove dead file
Deleted: trunk/reactos/ntoskrnl/ke/catch.c

Deleted: trunk/reactos/ntoskrnl/ke/catch.c
--- trunk/reactos/ntoskrnl/ke/catch.c	2005-09-23 09:23:14 UTC (rev 18008)
+++ trunk/reactos/ntoskrnl/ke/catch.c	2005-09-23 09:51:18 UTC (rev 18009)
@@ -1,234 +0,0 @@
-/*
- * COPYRIGHT:       See COPYING in the top level directory
- * PROJECT:         ReactOS kernel
- * FILE:            ntoskrnl/ke/catch.c
- * PURPOSE:         Exception handling
- *
- * PROGRAMMERS:     Anich Gregor
- *                  David Welch (welch@mcmail.com)
- *                  Casper S. Hornstrup (chorns@users.sourceforge.net)
- */
-
-/* INCLUDES *****************************************************************/
-
-#include <ntoskrnl.h>
-#define NDEBUG
-#include <internal/debug.h>
-
-/* FUNCTIONS ****************************************************************/
-
-ULONG
-RtlpDispatchException(IN PEXCEPTION_RECORD  ExceptionRecord,
-                      IN PCONTEXT  Context);
-
-/*
- * @unimplemented
- */
-VOID
-STDCALL
-KiCoprocessorError(VOID)
-{
-    UNIMPLEMENTED;
-}
-
-/*
- * @unimplemented
- */
-VOID
-STDCALL
-KiUnexpectedInterrupt(VOID)
-{
-    UNIMPLEMENTED;
-}
-
-VOID
-KiDispatchException(PEXCEPTION_RECORD ExceptionRecord,
-                    PCONTEXT Context,
-                    PKTRAP_FRAME Tf,
-                    KPROCESSOR_MODE PreviousMode,
-                    BOOLEAN SearchFrames)
-{
-    EXCEPTION_DISPOSITION Value;
-    CONTEXT TContext;
-    KD_CONTINUE_TYPE Action = kdHandleException;
-
-    DPRINT("KiDispatchException() called\n");
-
-    /* Increase number of Exception Dispatches */
-    KeGetCurrentPrcb()->KeExceptionDispatchCount++;
-
-    if (!Context)
-    {
-        /* Assume Full context */
-        TContext.ContextFlags = CONTEXT_FULL;
-
-        /* Check the mode */
-        if (PreviousMode != KernelMode)
-        {
-            /* Add Debugger Registers if this is User Mode */
-            TContext.ContextFlags = TContext.ContextFlags | CONTEXT_DEBUGGER;
-        }
-
-        /* Convert the Trapframe into a Context */
-        KeTrapFrameToContext(Tf, &TContext);
-
-        /* Use local stack context */
-        Context = &TContext;
-    }
-
-    /* Break into Debugger */
-    Action = KdpEnterDebuggerException(ExceptionRecord,
-                                       PreviousMode,
-                                       Context,
-                                       Tf,
-                                       TRUE,
-                                       TRUE);
-
-    /* If the debugger said continue, then continue */
-    if (Action == kdContinue) return;
-
-    /* If the Debugger couldn't handle it... */
-    if (Action != kdDoNotHandleException)
-    {
-        /* See what kind of Exception this is */
-        if (PreviousMode != KernelMode)
-        {
-            /* User mode exception, search the frames if we have to */
-            if (SearchFrames)
-            {
-                PULONG Stack;
-                ULONG CDest;
-                char temp_space[12 + sizeof(EXCEPTION_RECORD) + sizeof(CONTEXT)]; /* FIXME: HACKHACK */
-                PULONG pNewUserStack = (PULONG)(Tf->Esp - (12 + sizeof(EXCEPTION_RECORD) + sizeof(CONTEXT)));
-                NTSTATUS Status = STATUS_SUCCESS;
-
-                /* Enter Debugger if available */
-                Action = KdpEnterDebuggerException(ExceptionRecord,
-                                                   PreviousMode,
-                                                   Context,
-                                                   Tf,
-                                                   TRUE,
-                                                   FALSE);
-
-                /* Exit if we're continuing */
-                if (Action == kdContinue) return;
-
-                /* FIXME: Forward exception to user mode debugger */
-
-                /* FIXME: Check user mode stack for enough space */
-
-                /* Let usermode try and handle the exception. Setup Stack */
-                Stack = (PULONG)temp_space;
-                CDest = 3 + (ROUND_UP(sizeof(EXCEPTION_RECORD), 4) / 4);
-                /* Return Address */
-                Stack[0] = 0;
-                /* Pointer to EXCEPTION_RECORD structure */
-                Stack[1] = (ULONG)&pNewUserStack[3];
-                /* Pointer to CONTEXT structure */
-                Stack[2] = (ULONG)&pNewUserStack[CDest];
-                memcpy(&Stack[3], ExceptionRecord, sizeof(EXCEPTION_RECORD));
-                memcpy(&Stack[CDest], Context, sizeof(CONTEXT));
-
-                /* Copy Stack */
-                _SEH_TRY
-                {
-                    ProbeForWrite(pNewUserStack,
-                                  12 + sizeof(EXCEPTION_RECORD) + sizeof(CONTEXT),
-                                  1);
-                    RtlCopyMemory(pNewUserStack,
-                                  temp_space,
-                                  12 + sizeof(EXCEPTION_RECORD) + sizeof(CONTEXT));
-                }
-                _SEH_HANDLE
-                {
-                    Status = _SEH_GetExceptionCode();
-                }
-                _SEH_END;
-
-                /* Check for success */
-                if (NT_SUCCESS(Status))
-                {
-                    /* Set new Stack Pointer */
-                    Tf->Esp = (ULONG)pNewUserStack;
-                }
-                else
-                {
-                    /*
-                     * Now it really hit the ventilation device. Sorry,
-                     * can do nothing but kill the sucker.
-                     */
-                    ZwTerminateThread(NtCurrentThread(), ExceptionRecord->ExceptionCode);
-                    DPRINT1("User-mode stack was invalid. Terminating target thread\n");
-                }
-                /* Set EIP to the User-mode Dispathcer */
-                Tf->Eip = (ULONG)KeUserExceptionDispatcher;
-                return;
-            }
-
-            /* FIXME: Forward the exception to the debugger */
-
-            /* FIXME: Forward the exception to the process exception port */
-
-            /* Enter KDB if available */
-            Action = KdpEnterDebuggerException(ExceptionRecord,
-                                                PreviousMode,
-                                                Context,
-                                                Tf,
-                                                FALSE,
-                                                FALSE);
-
-            /* Exit if we're continuing */
-            if (Action == kdContinue) return;
-
-            /* Terminate the offending thread */
-            DPRINT1("Unhandled UserMode exception, terminating thread\n");
-            ZwTerminateThread(NtCurrentThread(), ExceptionRecord->ExceptionCode);
-        }
-        else
-        {
-            /* This is Kernel Mode */
-
-            /* Enter KDB if available */
-            Action = KdpEnterDebuggerException(ExceptionRecord,
-                                                PreviousMode,
-                                                Context,
-                                                Tf,
-                                                TRUE,
-                                                FALSE);
-
-            /* Exit if we're continuing */
-            if (Action == kdContinue) return;
-
-            /* Dispatch the Exception */
-            Value = RtlpDispatchException (ExceptionRecord, Context);
-            DPRINT("RtlpDispatchException() returned with 0x%X\n", Value);
-
-            /* If RtlpDispatchException() did not handle the exception then bugcheck */
-            if (Value != ExceptionContinueExecution ||
-                0 != (ExceptionRecord->ExceptionFlags & EXCEPTION_NONCONTINUABLE))
-            {
-                DPRINT("ExceptionRecord->ExceptionAddress = 0x%p\n", ExceptionRecord->ExceptionAddress);
-
-                /* Enter KDB if available */
-                Action = KdpEnterDebuggerException(ExceptionRecord,
-                                                   PreviousMode,
-                                                   Context,
-                                                   Tf,
-                                                   FALSE,
-                                                   FALSE);
-
-                /* Exit if we're continuing */
-                if (Action == kdContinue) return;
-
-                KEBUGCHECKWITHTF(KMODE_EXCEPTION_NOT_HANDLED,
-                                 ExceptionRecord->ExceptionCode,
-                                 (ULONG)ExceptionRecord->ExceptionAddress,
-                                 ExceptionRecord->ExceptionInformation[0],
-                                 ExceptionRecord->ExceptionInformation[1],
-                                 Tf);
-            }
-        }
-    }
-}
-
-/* EOF */