Example #1
0
VOID NTAPI HalEndSystemInterrupt (KIRQL Irql, ULONG Unknown2)
/*
 * FUNCTION: Finish a system interrupt and restore the specified irq level.
 */
{
  HalpLowerIrql(Irql);
  HalpEndSystemInterrupt(Irql);
}
Example #2
0
/**********************************************************************
 * NAME							EXPORTED
 *	KfLowerIrql
 *
 * DESCRIPTION
 *	Restores the irq level on the current processor
 *
 * ARGUMENTS
 *	NewIrql = Irql to lower to
 *
 * RETURN VALUE
 *	None
 *
 * NOTES
 *	Uses fastcall convention
 */
VOID FASTCALL
KfLowerIrql (KIRQL	NewIrql)
{
  KIRQL oldIrql = KeGetCurrentIrql();
  if (NewIrql > oldIrql)
    {
      DPRINT1 ("NewIrql %x CurrentIrql %x\n", NewIrql, oldIrql);
      ASSERT(FALSE);
    }
  HalpLowerIrql (NewIrql, FALSE);
}
Example #3
0
/**********************************************************************
 * NAME							EXPORTED
 *	KfLowerIrql
 *
 * DESCRIPTION
 *	Restores the irq level on the current processor
 *
 * ARGUMENTS
 *	NewIrql = Irql to lower to
 *
 * RETURN VALUE
 *	None
 *
 * NOTES
 *	Uses fastcall convention
 */
VOID FASTCALL
KfLowerIrql (KIRQL	NewIrql)
{
  DPRINT("KfLowerIrql(NewIrql %d)\n", NewIrql);

  if (NewIrql > KeGetPcr()->Irql)
    {
      DbgPrint ("(%s:%d) NewIrql %x CurrentIrql %x\n",
		__FILE__, __LINE__, NewIrql, KeGetPcr()->Irql);
      KeBugCheck(IRQL_NOT_LESS_OR_EQUAL);
      for(;;);
    }

  HalpLowerIrql(NewIrql);
}
Example #4
0
VOID NTAPI
HalEndSystemInterrupt (KIRQL Irql,
                       IN PKTRAP_FRAME TrapFrame)
/*
 * FUNCTION: Finish a system interrupt and restore the specified irq level.
 */
{
  ULONG Flags;
  Flags = __readeflags();

  if (Flags & EFLAGS_INTERRUPT_MASK)
  {
     DPRINT1("HalEndSystemInterrupt was called with interrupt's enabled\n");
     ASSERT(FALSE);
  }
  APICSendEOI();
  HalpLowerIrql (Irql, TRUE);
}