[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