/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
- * FILE: ntoskrnl/hal/x86/mpsirql.c
+ * FILE: hal/halx86/mp/mpsirql.c
* PURPOSE: Implements IRQLs for multiprocessor systems
* PROGRAMMERS: David Welch (welch@cwcom.net)
* Casper S. Hornstrup (chorns@users.sourceforge.net)
*/
{
KIRQL irql;
- ULONG Flags = 0;
+ ULONG Flags;
- Ke386SaveFlags(Flags);
+ Flags = __readeflags();
_disable();
irql = __readfsbyte(FIELD_OFFSET(KPCR, Irql));
* PURPOSE: Sets the current irq level without taking any action
*/
{
- ULONG Flags = 0;
+ ULONG Flags;
if (NewIrql > HIGH_LEVEL)
{
DPRINT1 ("NewIrql %x\n", NewIrql);
ASSERT(FALSE);
}
- Ke386SaveFlags(Flags);
+ Flags = __readeflags();
_disable();
__writefsbyte(FIELD_OFFSET(KPCR, Irql), NewIrql);
if (Flags & EFLAGS_INTERRUPT_MASK)
VOID
HalpLowerIrql(KIRQL NewIrql, BOOLEAN FromHalEndSystemInterrupt)
{
- ULONG Flags = 0;
+ ULONG Flags;
UCHAR DpcRequested;
if (NewIrql >= DISPATCH_LEVEL)
{
APICWrite(APIC_TPR, IRQL2TPR (NewIrql) & APIC_TPR_PRI);
return;
}
- Ke386SaveFlags(Flags);
+ Flags = __readeflags();
if (KeGetCurrentIrql() > APC_LEVEL)
{
KeSetCurrentIrql (DISPATCH_LEVEL);
KfRaiseIrql (KIRQL NewIrql)
{
KIRQL OldIrql;
- ULONG Flags = 0;
+ ULONG Flags;
- Ke386SaveFlags(Flags);
+ Flags = __readeflags();
_disable();
OldIrql = KeGetCurrentIrql ();
BOOLEAN NTAPI
HalBeginSystemInterrupt (KIRQL Irql,
- ULONG Vector,
+ UCHAR Vector,
PKIRQL OldIrql)
{
- ULONG Flags = 0;
+ ULONG Flags;
DPRINT("Vector (0x%X) Irql (0x%X)\n", Vector, Irql);
if (KeGetCurrentIrql () >= Irql)
ASSERT(FALSE);
}
- Ke386SaveFlags(Flags);
+ Flags = __readeflags();
if (Flags & EFLAGS_INTERRUPT_MASK)
{
DPRINT1("HalBeginSystemInterrupt was called with interrupt's enabled\n");
VOID NTAPI
HalEndSystemInterrupt (KIRQL Irql,
- ULONG Unknown2)
+ IN PKTRAP_FRAME TrapFrame)
/*
* FUNCTION: Finish a system interrupt and restore the specified irq level.
*/
{
- ULONG Flags = 0;
- Ke386SaveFlags(Flags);
+ ULONG Flags;
+ Flags = __readeflags();
if (Flags & EFLAGS_INTERRUPT_MASK)
{
HalpLowerIrql (Irql, TRUE);
}
-BOOLEAN NTAPI
-HalDisableSystemInterrupt (ULONG Vector,
- KIRQL Irql)
+VOID
+NTAPI
+HalDisableSystemInterrupt(UCHAR Vector,
+ KIRQL Irql)
{
ULONG irq;
Vector >= FIRST_DEVICE_VECTOR + NUMBER_DEVICE_VECTORS)
{
DPRINT1("Not a device interrupt, vector=%x\n", Vector);
- return FALSE;
+ ASSERT(FALSE);
+ return;
}
irq = VECTOR2IRQ (Vector);
IOAPICMaskIrq (irq);
- return TRUE;
+ return;
}
BOOLEAN NTAPI
-HalEnableSystemInterrupt (ULONG Vector,
+HalEnableSystemInterrupt (UCHAR Vector,
KIRQL Irql,
KINTERRUPT_MODE InterruptMode)
{