65 #if defined(SARCH_PC98) 74 #if defined(SARCH_PC98) 97 #if defined(SARCH_PC98) 98 HalpDismissIrq08Level,
106 #if defined(SARCH_PC98) 134 #if defined(__GNUC__) 136 #define HalpDelayedHardwareInterrupt(x) \ 137 VOID __cdecl HalpHardwareInterrupt##x(VOID); \ 140 HalpHardwareInterrupt##x(VOID) \ 142 asm volatile ("int $%c0\n"::"i"(PRIMARY_VECTOR_BASE + x)); \ 145 #elif defined(_MSC_VER) 147 #define HalpDelayedHardwareInterrupt(x) \ 148 VOID __cdecl HalpHardwareInterrupt##x(VOID); \ 151 HalpHardwareInterrupt##x(VOID) \ 155 int PRIMARY_VECTOR_BASE + x \ 160 #error Unsupported compiler 188 HalpHardwareInterrupt0,
189 HalpHardwareInterrupt1,
190 HalpHardwareInterrupt2,
191 HalpHardwareInterrupt3,
192 HalpHardwareInterrupt4,
193 HalpHardwareInterrupt5,
194 HalpHardwareInterrupt6,
195 HalpHardwareInterrupt7,
196 HalpHardwareInterrupt8,
197 HalpHardwareInterrupt9,
198 HalpHardwareInterrupt10,
199 HalpHardwareInterrupt11,
200 HalpHardwareInterrupt12,
201 HalpHardwareInterrupt13,
202 HalpHardwareInterrupt14,
203 HalpHardwareInterrupt15
237 #if defined(SARCH_PC98) 239 if (Elcr.
Bits == 0xFFFF)
241 Elcr.
Master.Irq0Level = 0;
242 Elcr.
Master.Irq1Level = 0;
243 Elcr.
Master.Irq7Level = 0;
244 Elcr.
Slave.Irq8Level = 0;
249 ElcrFound = (!(Elcr.
Master.Irq0Level) && !(Elcr.
Master.Irq1Level) && !(Elcr.
Master.Irq2Level) &&
250 !(Elcr.
Slave.Irq8Level) && !(Elcr.
Slave.Irq13Level));
259 for (
i = 1,
j = 0;
j < 16;
i <<= 1,
j++)
328 CurrentIrql = Pcr->
Irql;
351 CurrentIrql = Pcr->
Irql;
382 CurrentIrql = Pcr->
Irql;
410 ULONG PendingIrql, PendingIrqlMask;
445 Pcr->
IRR ^= (1 << PendingIrql);
500 ULONG PendingIrql, PendingIrqlMask, PendingIrqMask;
514 if (!PendingIrqlMask)
return NULL;
529 PendingIrqMask = (1 << PendingIrql);
531 Pcr->
IRR ^= PendingIrqMask;
563 CurrentIrql = Pcr->
Irql;
566 if (
Irql > CurrentIrql)
579 #if defined(SARCH_PC98) 621 Pcr->
IRR |= (1 << (Irq + 4));
690 #if defined(SARCH_PC98) 750 Pcr->
IRR |= (1 << (Irq + 4));
753 CurrentIrql = Pcr->
Irql;
762 #if defined(SARCH_PC98) 799 if (
Irql > CurrentIrql)
872 #if defined(SARCH_PC98) 875 HalpDismissIrq08Level(
918 ULONG PendingIrqlMask, PendingIrql;
931 Pcr->
IRR ^= (1 << PendingIrql);
973 Pcr->
IDR &= ~(1 << Irq);
1010 PicMask.Both |= IrqMask;
1044 ULONG PendingIrql, PendingIrqlMask, PendingIrqMask;
1053 if (PendingIrqlMask)
1066 Mask.Both = Pcr->
IDR & 0xFFFF;
1071 PendingIrqMask = (1 << PendingIrql);
1076 Pcr->
IRR ^= PendingIrqMask;
1086 if (!PendingIrqlMask)
break;
1110 CurrentIrql = Pcr->
Irql;
1148 TrapFrame->Eip = TrapFrame->Eax;
1165 CurrentIrql = Pcr->
Irql;
1201 ULONG PendingIrqlMask, PendingIrql;
1214 if (PendingIrqlMask)
1221 Mask.Both = Pcr->
IDR & 0xFFFF;
1226 Pcr->
IRR ^= (1 << PendingIrql);
BOOLEAN NTAPI HalEnableSystemInterrupt(IN ULONG Vector, IN KIRQL Irql, IN KINTERRUPT_MODE InterruptMode)
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE InterruptMode
BOOLEAN NTAPI HalpDismissIrq07(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
#define UNREFERENCED_PARAMETER(P)
DECLSPEC_NORETURN VOID FASTCALL HalpDispatchInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame)
DECLSPEC_NORETURN VOID FASTCALL HalpApcInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame)
VOID NTAPI HalpRegisterVector(IN UCHAR Flags, IN ULONG BusVector, IN ULONG SystemVector, IN KIRQL Irql)
void __cdecl _enable(void)
PHAL_DISMISS_INTERRUPT HalpSpecialDismissLevelTable[16]
#define PRIMARY_VECTOR_BASE
PHAL_DISMISS_INTERRUPT HalpSpecialDismissTable[16]
KIRQL NTAPI KeGetCurrentIrql(VOID)
PHAL_SW_INTERRUPT_HANDLER __cdecl HalpHardwareInterruptLevel2(VOID)
BOOLEAN NTAPI HalBeginSystemInterrupt(IN KIRQL Irql, IN ULONG Vector, OUT PKIRQL OldIrql)
ULONG FindHigherIrqlMask[32]
PPC_QUAL void __outbyte(unsigned long const Port, const unsigned char Data)
DECLSPEC_NORETURN VOID FASTCALL KiEoiHelper(IN PKTRAP_FRAME TrapFrame)
#define DECLSPEC_NORETURN
DECLSPEC_NORETURN VOID FASTCALL HalpApcInterruptHandler(IN PKTRAP_FRAME TrapFrame)
struct _EISA_ELCR::@1508::@1510 Master
FORCEINLINE BOOLEAN _HalpDismissIrqLevel(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
VOID NTAPI HalDisableSystemInterrupt(IN ULONG Vector, IN KIRQL Irql)
BOOLEAN NTAPI HalpDismissIrqGeneric(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
FORCEINLINE BOOLEAN _HalpDismissIrqGeneric(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
__INTRIN_INLINE uintptr_t __readeflags(void)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
DECLSPEC_NORETURN VOID NTAPI KeBugCheck(ULONG BugCheckCode)
PHAL_SW_INTERRUPT_HANDLER SWInterruptHandlerTable[20]
BOOLEAN NTAPI HalpDismissIrq15Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
VOID __cdecl HalpDispatchInterrupt(VOID)
VOID NTAPI HalpInitializePICs(IN BOOLEAN EnableInterrupts)
PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY FASTCALL HalpEndSoftwareInterrupt2(IN KIRQL OldIrql, IN PKTRAP_FRAME TrapFrame)
enum _KINTERRUPT_MODE KINTERRUPT_MODE
PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY SWInterruptHandlerTable2[3]
KIRQL FASTCALL HalpVectorToIrql(UCHAR Vector)
VOID(FASTCALL * PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY)(IN PKTRAP_FRAME TrapFrame)
VOID KiUnexpectedInterrupt(VOID)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
KIRQL FASTCALL KfRaiseIrql(IN KIRQL NewIrql)
static BOOLEAN NTAPI Isr(PKINTERRUPT Interrupt, PVOID ServiceContext)
KIRQL SWInterruptLookUpTable[8]
FORCEINLINE DECLSPEC_NORETURN VOID _HalpApcInterruptHandler(IN PKTRAP_FRAME TrapFrame)
BOOLEAN NTAPI HalpDismissIrq13(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
VOID NTAPI HalpEndSoftwareInterrupt(IN KIRQL OldIrql, IN PKTRAP_FRAME TrapFrame)
struct _EISA_ELCR::@1508::@1511 Slave
VOID __cdecl HalpApcInterrupt(VOID)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
__INTRIN_INLINE void __writeeflags(uintptr_t Value)
VOID NTAPI KiDispatchInterrupt(VOID)
#define PIC1_CONTROL_PORT
BOOLEAN NTAPI HalpDismissIrqLevel(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
HalpDelayedHardwareInterrupt(0)
KIRQL NTAPI KeRaiseIrqlToDpcLevel(VOID)
FORCEINLINE BOOLEAN KiUserTrap(IN PKTRAP_FRAME TrapFrame)
VOID FASTCALL HalRequestSoftwareInterrupt(IN KIRQL Irql)
FORCEINLINE KIRQL _HalpDispatchInterruptHandler(VOID)
VOID FASTCALL KfLowerIrql(IN KIRQL NewIrql)
FORCEINLINE VOID KiEnterInterruptTrap(IN PKTRAP_FRAME TrapFrame)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY FASTCALL HalEndSystemInterrupt2(IN KIRQL OldIrql, IN PKTRAP_FRAME TrapFrame)
#define CPU_IO_o_FPU_BUSY_LATCH
PHAL_SW_INTERRUPT_HANDLER __cdecl HalpDispatchInterrupt2(VOID)
UCHAR FASTCALL HalpVectorToIrq(UCHAR Vector)
ULONG KiI8259MaskTable[32]
BOOLEAN NTAPI HalpDismissIrq13Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
VOID FASTCALL HalClearSoftwareInterrupt(IN KIRQL Irql)
UCHAR FASTCALL HalpIrqToVector(UCHAR Irq)
void __cdecl _disable(void)
BOOLEAN(NTAPI * PHAL_DISMISS_INTERRUPT)(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
VOID __cdecl HalpHardwareInterruptLevel(VOID)
VOID NTAPI KiDeliverApc(IN KPROCESSOR_MODE DeliveryMode, IN PKEXCEPTION_FRAME ExceptionFrame, IN PKTRAP_FRAME TrapFrame)
#define PIC2_CONTROL_PORT
BOOLEAN NTAPI HalpDismissIrq07Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
VOID(__cdecl * PHAL_SW_INTERRUPT_HANDLER)(VOID)
VOID NTAPI HalpInitializeLegacyPICs(VOID)
_Requires_lock_held_ SpinLock _Releases_lock_ SpinLock _In_ _IRQL_restores_ KIRQL NewIrql
BOOLEAN NTAPI HalpDismissIrq15(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
#define EFLAGS_INTERRUPT_MASK
PPC_QUAL unsigned char __inbyte(const unsigned long Port)
KIRQL NTAPI KeRaiseIrqlToSynchLevel(VOID)