[ros-diffs] [ion] 23673: - Get rid of some large debugging functions that were called at all times, and don't manually deliver user APCs anymore, since the HAL handles it now.

ion at svn.reactos.org ion at svn.reactos.org
Wed Aug 23 20:09:45 CEST 2006


Author: ion
Date: Wed Aug 23 22:09:44 2006
New Revision: 23673

URL: http://svn.reactos.org/svn/reactos?rev=23673&view=rev
Log:
- Get rid of some large debugging functions that were called at all times, and don't manually deliver user APCs anymore, since the HAL handles it now.

Modified:
    trunk/reactos/ntoskrnl/ke/i386/irq.c

Modified: trunk/reactos/ntoskrnl/ke/i386/irq.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/irq.c?rev=23673&r1=23672&r2=23673&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ke/i386/irq.c (original)
+++ trunk/reactos/ntoskrnl/ke/i386/irq.c Wed Aug 23 22:09:44 2006
@@ -188,27 +188,6 @@
    TrapFrame->EFlags = IrqTrapFrame->Eflags;
 }
 
-STATIC VOID
-KeTrapFrameToIRQTrapFrame(PKTRAP_FRAME TrapFrame,
-                          PKIRQ_TRAPFRAME IrqTrapFrame)
-{
-   IrqTrapFrame->Gs     = TrapFrame->SegGs;
-   IrqTrapFrame->Fs     = TrapFrame->SegFs;
-   IrqTrapFrame->Es     = TrapFrame->SegEs;
-   IrqTrapFrame->Ds     = TrapFrame->SegDs;
-   IrqTrapFrame->Eax    = TrapFrame->Eax;
-   IrqTrapFrame->Ecx    = TrapFrame->Ecx;
-   IrqTrapFrame->Edx    = TrapFrame->Edx;
-   IrqTrapFrame->Ebx    = TrapFrame->Ebx;
-   IrqTrapFrame->Esp    = TrapFrame->HardwareEsp;
-   IrqTrapFrame->Ebp    = TrapFrame->Ebp;
-   IrqTrapFrame->Esi    = TrapFrame->Esi;
-   IrqTrapFrame->Edi    = TrapFrame->Edi;
-   IrqTrapFrame->Eip    = TrapFrame->Eip;
-   IrqTrapFrame->Cs     = TrapFrame->SegCs;
-   IrqTrapFrame->Eflags = TrapFrame->EFlags;
-}
-
 VOID STDCALL
 KiInterruptDispatch2 (ULONG vector, KIRQL old_level)
 /*
@@ -261,8 +240,6 @@
 {
    KIRQL old_level;
    KTRAP_FRAME KernelTrapFrame;
-   PKTHREAD CurrentThread;
-   PKTRAP_FRAME OldTrapFrame=NULL;
 
    /*
     * At this point we have interrupts disabled, nothing has been done to
@@ -292,7 +269,7 @@
 #ifndef CONFIG_SMP
    if (VECTOR2IRQ(vector) == 0)
    {
-       DPRINT1("Tick\n");
+       //DPRINT1("Tick\n");
       KeIRQTrapFrameToTrapFrame(Trapframe, &KernelTrapFrame);
       KeUpdateSystemTime(&KernelTrapFrame, old_level);
    }
@@ -309,81 +286,7 @@
     * End the system interrupt.
     */
    Ke386DisableInterrupts();
-
-   if (old_level==PASSIVE_LEVEL && Trapframe->Cs != KGDT_R0_CODE)
-     {
-       HalEndSystemInterrupt (APC_LEVEL, 0);
-
-       CurrentThread = KeGetCurrentThread();
-       if (CurrentThread!=NULL && CurrentThread->ApcState.UserApcPending)
-         {
-           DPRINT("PID: %d, TID: %d CS %04x/%04x\n",
-                  ((PETHREAD)CurrentThread)->ThreadsProcess->UniqueProcessId,
-                  ((PETHREAD)CurrentThread)->Cid.UniqueThread,
-                  Trapframe->Cs,
-                  CurrentThread->TrapFrame ? CurrentThread->TrapFrame->Cs : 0);
-           if (CurrentThread->TrapFrame == NULL)
-             {
-               OldTrapFrame = CurrentThread->TrapFrame;
-               KeIRQTrapFrameToTrapFrame(Trapframe, &KernelTrapFrame);
-               CurrentThread->TrapFrame = &KernelTrapFrame;
-             }
-
-           Ke386EnableInterrupts();
-           KiDeliverApc(UserMode, NULL, NULL);
-           Ke386DisableInterrupts();
-
-           ASSERT(KeGetCurrentThread() == CurrentThread);
-           if (CurrentThread->TrapFrame == &KernelTrapFrame)
-             {
-               KeTrapFrameToIRQTrapFrame(&KernelTrapFrame, Trapframe);
-               CurrentThread->TrapFrame = OldTrapFrame;
-             }
-         }
-       KeLowerIrql(PASSIVE_LEVEL);
-     }
-   else
-     {
-       HalEndSystemInterrupt (old_level, 0);
-     }
-
-}
-
-static VOID
-KeDumpIrqList(VOID)
-{
-   PKINTERRUPT current;
-   PLIST_ENTRY current_entry;
-   LONG i, j;
-   KIRQL oldlvl;
-   BOOLEAN printed;
-
-   for (i=0;i<NR_IRQS;i++)
-     {
-        printed = FALSE;
-        KeRaiseIrql(VECTOR2IRQL(i + IRQ_BASE),&oldlvl);
-
-        for (j=0; j < KeNumberProcessors; j++)
-          {
-            KiAcquireSpinLock(&IsrTable[i][j].Lock);
-
-            current_entry = IsrTable[i][j].ListHead.Flink;
-            current = CONTAINING_RECORD(current_entry,KINTERRUPT,InterruptListEntry);
-            while (current_entry!=&(IsrTable[i][j].ListHead))
-              {
-                if (printed == FALSE)
-                  {
-                    printed = TRUE;
-                    DPRINT("For irq %x:\n",i);
-                  }
-                DPRINT("   Isr %x\n",current);
-                current_entry = current_entry->Flink;
-                current = CONTAINING_RECORD(current_entry,KINTERRUPT,InterruptListEntry);
-              }
-            KiReleaseSpinLock(&IsrTable[i][j].Lock);
-          }
-        KeLowerIrql(oldlvl);
-     }
+   HalEndSystemInterrupt (old_level, 0);
 }
 
 /*
@@ -451,8 +354,6 @@
     */
    KiReleaseSpinLock(&CurrentIsr->Lock);
    KeLowerIrql(oldlvl);
-
-   KeDumpIrqList();
 
    KeRevertToUserAffinityThread();
 
@@ -567,21 +468,4 @@
     Interrupt->Connected = FALSE;
 }
 
-VOID KePrintInterruptStatistic(VOID)
-{
-   LONG i, j;
-
-   for (j = 0; j < KeNumberProcessors; j++)
-   {
-      DPRINT1("CPU%d:\n", j);
-      for (i = 0; i < NR_IRQS; i++)
-      {
-         if (IsrTable[i][j].Count)
-         {
-             DPRINT1("  Irq %x(%d): %d\n", i, VECTOR2IRQ(i + IRQ_BASE), IsrTable[i][j].Count);
-         }
-      }
-   }
-}
-
 /* EOF */




More information about the Ros-diffs mailing list