#include <hal.h>
#include <debug.h>
Go to the source code of this file.
|
VOID NTAPI | HalpEndSoftwareInterrupt (IN KIRQL OldIrql, IN PKTRAP_FRAME TrapFrame) |
|
| HalpDelayedHardwareInterrupt (0) |
|
| HalpDelayedHardwareInterrupt (1) |
|
| HalpDelayedHardwareInterrupt (2) |
|
| HalpDelayedHardwareInterrupt (3) |
|
| HalpDelayedHardwareInterrupt (4) |
|
| HalpDelayedHardwareInterrupt (5) |
|
| HalpDelayedHardwareInterrupt (6) |
|
| HalpDelayedHardwareInterrupt (7) |
|
| HalpDelayedHardwareInterrupt (8) |
|
| HalpDelayedHardwareInterrupt (9) |
|
| HalpDelayedHardwareInterrupt (10) |
|
| HalpDelayedHardwareInterrupt (11) |
|
| HalpDelayedHardwareInterrupt (12) |
|
| HalpDelayedHardwareInterrupt (13) |
|
| HalpDelayedHardwareInterrupt (14) |
|
| HalpDelayedHardwareInterrupt (15) |
|
VOID NTAPI | HalpInitializePICs (IN BOOLEAN EnableInterrupts) |
|
UCHAR FASTCALL | HalpIrqToVector (UCHAR Irq) |
|
UCHAR FASTCALL | HalpVectorToIrq (UCHAR Vector) |
|
KIRQL FASTCALL | HalpVectorToIrql (UCHAR Vector) |
|
KIRQL NTAPI | KeGetCurrentIrql (VOID) |
|
KIRQL NTAPI | KeRaiseIrqlToDpcLevel (VOID) |
|
KIRQL NTAPI | KeRaiseIrqlToSynchLevel (VOID) |
|
KIRQL FASTCALL | KfRaiseIrql (IN KIRQL NewIrql) |
|
VOID FASTCALL | KfLowerIrql (IN KIRQL OldIrql) |
|
VOID FASTCALL | HalRequestSoftwareInterrupt (IN KIRQL Irql) |
|
VOID FASTCALL | HalClearSoftwareInterrupt (IN KIRQL Irql) |
|
PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY FASTCALL | HalpEndSoftwareInterrupt2 (IN KIRQL OldIrql, IN PKTRAP_FRAME TrapFrame) |
|
FORCEINLINE BOOLEAN | _HalpDismissIrqGeneric (IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) |
|
BOOLEAN NTAPI | HalpDismissIrqGeneric (IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) |
|
BOOLEAN NTAPI | HalpDismissIrq15 (IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) |
|
BOOLEAN NTAPI | HalpDismissIrq13 (IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) |
|
BOOLEAN NTAPI | HalpDismissIrq07 (IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) |
|
FORCEINLINE BOOLEAN | _HalpDismissIrqLevel (IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) |
|
BOOLEAN NTAPI | HalpDismissIrqLevel (IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) |
|
BOOLEAN NTAPI | HalpDismissIrq15Level (IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) |
|
BOOLEAN NTAPI | HalpDismissIrq13Level (IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) |
|
BOOLEAN NTAPI | HalpDismissIrq07Level (IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql) |
|
PHAL_SW_INTERRUPT_HANDLER __cdecl | HalpHardwareInterruptLevel2 (VOID) |
|
BOOLEAN NTAPI | HalEnableSystemInterrupt (IN ULONG Vector, IN KIRQL Irql, IN KINTERRUPT_MODE InterruptMode) |
|
VOID NTAPI | HalDisableSystemInterrupt (IN ULONG Vector, IN KIRQL Irql) |
|
BOOLEAN NTAPI | HalBeginSystemInterrupt (IN KIRQL Irql, IN ULONG Vector, OUT PKIRQL OldIrql) |
|
PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY FASTCALL | HalEndSystemInterrupt2 (IN KIRQL OldIrql, IN PKTRAP_FRAME TrapFrame) |
|
FORCEINLINE DECLSPEC_NORETURN VOID | _HalpApcInterruptHandler (IN PKTRAP_FRAME TrapFrame) |
|
DECLSPEC_NORETURN VOID FASTCALL | HalpApcInterrupt2ndEntry (IN PKTRAP_FRAME TrapFrame) |
|
DECLSPEC_NORETURN VOID FASTCALL | HalpApcInterruptHandler (IN PKTRAP_FRAME TrapFrame) |
|
FORCEINLINE KIRQL | _HalpDispatchInterruptHandler (VOID) |
|
DECLSPEC_NORETURN VOID FASTCALL | HalpDispatchInterrupt2ndEntry (IN PKTRAP_FRAME TrapFrame) |
|
PHAL_SW_INTERRUPT_HANDLER __cdecl | HalpDispatchInterrupt2 (VOID) |
|
ULONG NTAPI | HalpGetRootInterruptVector (IN ULONG BusInterruptLevel, IN ULONG BusInterruptVector, OUT PKIRQL Irql, OUT PKAFFINITY Affinity) |
|
◆ NDEBUG
Definition at line 12 of file pic.c.
◆ _HalpApcInterruptHandler()
Definition at line 1104 of file pic.c.
1105{
1108
1109
1110 CurrentIrql = Pcr->
Irql;
1112
1113
1115
1116
1121 TrapFrame);
1122
1123
1126
1127
1129}
VOID NTAPI HalpEndSoftwareInterrupt(IN KIRQL OldIrql, IN PKTRAP_FRAME TrapFrame)
void __cdecl _disable(void)
void __cdecl _enable(void)
FORCEINLINE BOOLEAN KiUserTrap(IN PKTRAP_FRAME TrapFrame)
DECLSPEC_NORETURN VOID FASTCALL KiEoiHelper(IN PKTRAP_FRAME TrapFrame)
VOID NTAPI KiDeliverApc(IN KPROCESSOR_MODE DeliveryMode, IN PKEXCEPTION_FRAME ExceptionFrame, IN PKTRAP_FRAME TrapFrame)
Referenced by HalpApcInterrupt2ndEntry(), and HalpApcInterruptHandler().
◆ _HalpDismissIrqGeneric()
Definition at line 553 of file pic.c.
556{
561
562
563 CurrentIrql = Pcr->
Irql;
564
565
566 if (
Irql > CurrentIrql)
567 {
568
571
572
575
576
577 if (Irq >= 8)
578 {
579#if defined(SARCH_PC98)
582
583
585
586
591
592
594
595
597 {
598
600 }
601#else
602
604
605
607#endif
608 }
609 else
610 {
611
613 }
614
615
618 }
619
620
621 Pcr->
IRR |= (1 << (Irq + 4));
622
623
627
628
630}
static BOOLEAN NTAPI Isr(PKINTERRUPT Interrupt, PVOID ServiceContext)
ULONG KiI8259MaskTable[32]
PPC_QUAL unsigned char __inbyte(const unsigned long Port)
PPC_QUAL void __outbyte(unsigned long const Port, const unsigned char Data)
#define PIC2_CONTROL_PORT
#define PIC1_CONTROL_PORT
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Referenced by HalpDismissIrq07(), HalpDismissIrq13(), HalpDismissIrq15(), and HalpDismissIrqGeneric().
◆ _HalpDismissIrqLevel()
◆ _HalpDispatchInterruptHandler()
◆ HalBeginSystemInterrupt()
Definition at line 1025 of file pic.c.
1028{
1030
1031
1034}
PHAL_DISMISS_INTERRUPT HalpSpecialDismissTable[16]
#define PRIMARY_VECTOR_BASE
◆ HalClearSoftwareInterrupt()
◆ HalDisableSystemInterrupt()
Definition at line 990 of file pic.c.
992{
995
996
998
999
1001
1002
1004
1005
1008
1009
1010 PicMask.
Both |= IrqMask;
1011
1012
1015
1016
1018}
◆ HalEnableSystemInterrupt()
Definition at line 947 of file pic.c.
950{
954
955
958
959
961 {
962
964
965
967 }
968
969
971
972
973 Pcr->
IDR &= ~(1 << Irq);
974
975
979
980
983}
PHAL_DISMISS_INTERRUPT HalpSpecialDismissLevelTable[16]
PHAL_SW_INTERRUPT_HANDLER SWInterruptHandlerTable[20]
VOID __cdecl HalpHardwareInterruptLevel(VOID)
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE InterruptMode
◆ HalEndSystemInterrupt2()
Definition at line 1041 of file pic.c.
1043{
1044 ULONG PendingIrql, PendingIrqlMask, PendingIrqMask;
1047
1048
1050
1051
1053 if (PendingIrqlMask)
1054 {
1055
1057
1058
1060 {
1061
1064 {
1065
1066 Mask.Both = Pcr->
IDR & 0xFFFF;
1069
1070
1071 PendingIrqMask = (1 << PendingIrql);
1073
1074
1076 Pcr->
IRR ^= PendingIrqMask;
1077
1078
1080
1081
1083
1084
1086 if (!PendingIrqlMask) break;
1087 }
1088 else
1089 {
1090
1092 }
1093 }
1094 }
1095
1097}
ULONG FindHigherIrqlMask[32]
PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY SWInterruptHandlerTable2[3]
◆ HalpApcInterrupt2ndEntry()
Definition at line 1134 of file pic.c.
1135{
1136
1138}
FORCEINLINE DECLSPEC_NORETURN VOID _HalpApcInterruptHandler(IN PKTRAP_FRAME TrapFrame)
◆ HalpApcInterruptHandler()
Definition at line 1143 of file pic.c.
1144{
1145
1148 TrapFrame->Eip = TrapFrame->Eax;
1149
1150
1152
1153
1155}
__INTRIN_INLINE uintptr_t __readeflags(void)
FORCEINLINE VOID KiEnterInterruptTrap(IN PKTRAP_FRAME TrapFrame)
◆ HalpDelayedHardwareInterrupt() [1/16]
HalpDelayedHardwareInterrupt |
( |
0 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [2/16]
HalpDelayedHardwareInterrupt |
( |
1 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [3/16]
HalpDelayedHardwareInterrupt |
( |
10 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [4/16]
HalpDelayedHardwareInterrupt |
( |
11 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [5/16]
HalpDelayedHardwareInterrupt |
( |
12 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [6/16]
HalpDelayedHardwareInterrupt |
( |
13 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [7/16]
HalpDelayedHardwareInterrupt |
( |
14 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [8/16]
HalpDelayedHardwareInterrupt |
( |
15 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [9/16]
HalpDelayedHardwareInterrupt |
( |
2 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [10/16]
HalpDelayedHardwareInterrupt |
( |
3 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [11/16]
HalpDelayedHardwareInterrupt |
( |
4 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [12/16]
HalpDelayedHardwareInterrupt |
( |
5 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [13/16]
HalpDelayedHardwareInterrupt |
( |
6 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [14/16]
HalpDelayedHardwareInterrupt |
( |
7 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [15/16]
HalpDelayedHardwareInterrupt |
( |
8 |
| ) |
|
◆ HalpDelayedHardwareInterrupt() [16/16]
HalpDelayedHardwareInterrupt |
( |
9 |
| ) |
|
◆ HalpDismissIrq07()
Definition at line 708 of file pic.c.
711{
714
715
720
721
723
724
726
727
729}
FORCEINLINE BOOLEAN _HalpDismissIrqGeneric(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
◆ HalpDismissIrq07Level()
Definition at line 890 of file pic.c.
893{
896
897
902
903
905
906
908
909
911}
FORCEINLINE BOOLEAN _HalpDismissIrqLevel(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
◆ HalpDismissIrq13()
◆ HalpDismissIrq13Level()
◆ HalpDismissIrq15()
Definition at line 644 of file pic.c.
647{
651
652
657
658
660
661
663 {
664
668
669
671 }
672
673
675}
◆ HalpDismissIrq15Level()
Definition at line 826 of file pic.c.
829{
833
834
839
840
842
843
845 {
846
850
851
853 }
854
855
857}
◆ HalpDismissIrqGeneric()
◆ HalpDismissIrqLevel()
◆ HalpDispatchInterrupt2()
Definition at line 1199 of file pic.c.
1200{
1201 ULONG PendingIrqlMask, PendingIrql;
1205
1206
1208
1209
1211
1212
1214 if (PendingIrqlMask)
1215 {
1216
1219 {
1220
1221 Mask.Both = Pcr->
IDR & 0xFFFF;
1224
1225
1226 Pcr->
IRR ^= (1 << PendingIrql);
1227 }
1228
1229
1231 }
1232
1234}
FORCEINLINE KIRQL _HalpDispatchInterruptHandler(VOID)
◆ HalpDispatchInterrupt2ndEntry()
Definition at line 1183 of file pic.c.
1184{
1186
1187
1189
1190
1192
1193
1195}
◆ HalpEndSoftwareInterrupt()
◆ HalpEndSoftwareInterrupt2()
Definition at line 497 of file pic.c.
499{
500 ULONG PendingIrql, PendingIrqlMask, PendingIrqMask;
503
505
506
508
509
511 {
512
514 if (!PendingIrqlMask)
return NULL;
515
516
518
519
522 {
523
527
528
529 PendingIrqMask = (1 << PendingIrql);
531 Pcr->
IRR ^= PendingIrqMask;
532
533
535
536
538 }
539 else
540 {
541
543 }
544 }
545
547}
#define UNREFERENCED_PARAMETER(P)
◆ HalpGetRootInterruptVector()
Definition at line 1238 of file pic.c.
1242{
1244
1245
1247 {
1248
1250 return 0;
1251 }
1252
1253
1255
1256
1260
1261
1262 return SystemVector;
1263}
KAFFINITY HalpDefaultInterruptAffinity
UCHAR FASTCALL HalpIrqToVector(UCHAR Irq)
KIRQL FASTCALL HalpVectorToIrql(UCHAR Vector)
_In_ ULONG _In_ ULONG BusInterruptLevel
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
◆ HalpHardwareInterruptLevel2()
Definition at line 915 of file pic.c.
916{
918 ULONG PendingIrqlMask, PendingIrql;
919
920
922 if (PendingIrqlMask)
923 {
924
926
927
929
930
931 Pcr->
IRR ^= (1 << PendingIrql);
932
933
935 }
936
938}
◆ HalpInitializePICs()
Definition at line 220 of file pic.c.
221{
226
227
230
231
233
234
236
237#if defined(SARCH_PC98)
238
239 if (Elcr.
Bits == 0xFFFF)
240 {
241 Elcr.
Master.Irq0Level = 0;
242 Elcr.
Master.Irq1Level = 0;
243 Elcr.
Master.Irq7Level = 0;
244 Elcr.
Slave.Irq8Level = 0;
245 }
247#else
248
249 ElcrFound = (!(Elcr.
Master.Irq0Level) && !(Elcr.
Master.Irq1Level) && !(Elcr.
Master.Irq2Level) &&
250 !(Elcr.
Slave.Irq8Level) && !(Elcr.
Slave.Irq13Level));
251#endif
252
253 if (ElcrFound)
254 {
255
257
258
259 for (
i = 1,
j = 0;
j < 16;
i <<= 1,
j++)
260 {
262 {
263
265
266
268 }
269 }
270 }
271
272
277
278
281}
#define EFLAGS_INTERRUPT_MASK
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
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
VOID NTAPI HalpRegisterVector(IN UCHAR Flags, IN ULONG BusVector, IN ULONG SystemVector, IN KIRQL Irql)
VOID NTAPI HalpInitializeLegacyPICs(VOID)
__INTRIN_INLINE void __writeeflags(uintptr_t Value)
struct _EISA_ELCR::@1528::@1531 Slave
struct _EISA_ELCR::@1528::@1530 Master
◆ HalpIrqToVector()
◆ HalpVectorToIrq()
◆ HalpVectorToIrql()
◆ HalRequestSoftwareInterrupt()
Definition at line 463 of file pic.c.
464{
468
469
472
473
475
476
479
480
482}
KIRQL SWInterruptLookUpTable[8]
◆ KeGetCurrentIrql()
◆ KeRaiseIrqlToDpcLevel()
Definition at line 322 of file pic.c.
323{
326
327
328 CurrentIrql = Pcr->
Irql;
330
331#if DBG
332
334#endif
335
336
337 return CurrentIrql;
338}
DECLSPEC_NORETURN VOID NTAPI KeBugCheck(ULONG BugCheckCode)
◆ KeRaiseIrqlToSynchLevel()
Definition at line 345 of file pic.c.
346{
349
350
351 CurrentIrql = Pcr->
Irql;
353
354#if DBG
355
357 {
358
360 CurrentIrql,
362 0,
363 1);
364 }
365#endif
366
367
368 return CurrentIrql;
369}
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
◆ KfLowerIrql()
Definition at line 407 of file pic.c.
408{
410 ULONG PendingIrql, PendingIrqlMask;
413
414#if DBG
415
417 {
418
421 }
422#endif
423
424
427
428
430
431
433 if (PendingIrqlMask)
434 {
435
438 {
439
443
444
445 Pcr->
IRR ^= (1 << PendingIrql);
446 }
447
448
450 }
451
452
454}
◆ KfRaiseIrql()
Definition at line 376 of file pic.c.
377{
380
381
382 CurrentIrql = Pcr->
Irql;
383
384#if DBG
385
387 {
388
391 }
392#endif
393
394
396
397
398 return CurrentIrql;
399}
_Requires_lock_held_ SpinLock _Releases_lock_ SpinLock _In_ _IRQL_restores_ KIRQL NewIrql
◆ FindHigherIrqlMask
ULONG FindHigherIrqlMask[32] |
|
extern |
◆ HalpEisaELCR
◆ HalpSpecialDismissLevelTable
Initial value:=
{
}
BOOLEAN NTAPI HalpDismissIrq13Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
BOOLEAN NTAPI HalpDismissIrqLevel(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
BOOLEAN NTAPI HalpDismissIrq15Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
BOOLEAN NTAPI HalpDismissIrq07Level(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition at line 87 of file pic.c.
Referenced by HalEnableSystemInterrupt(), and HalpInitializePICs().
◆ HalpSpecialDismissTable
Initial value:=
{
}
BOOLEAN NTAPI HalpDismissIrq13(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
BOOLEAN NTAPI HalpDismissIrq07(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
BOOLEAN NTAPI HalpDismissIrq15(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
BOOLEAN NTAPI HalpDismissIrqGeneric(IN KIRQL Irql, IN ULONG Irq, OUT PKIRQL OldIrql)
Definition at line 55 of file pic.c.
Referenced by HalBeginSystemInterrupt(), HalEnableSystemInterrupt(), and HalpInitializePICs().
◆ KiI8259MaskTable
ULONG KiI8259MaskTable[32] |
|
extern |
◆ SWInterruptHandlerTable
Initial value:=
{
HalpHardwareInterrupt0,
HalpHardwareInterrupt1,
HalpHardwareInterrupt2,
HalpHardwareInterrupt3,
HalpHardwareInterrupt4,
HalpHardwareInterrupt5,
HalpHardwareInterrupt6,
HalpHardwareInterrupt7,
HalpHardwareInterrupt8,
HalpHardwareInterrupt9,
HalpHardwareInterrupt10,
HalpHardwareInterrupt11,
HalpHardwareInterrupt12,
HalpHardwareInterrupt13,
HalpHardwareInterrupt14,
HalpHardwareInterrupt15
}
VOID __cdecl HalpDispatchInterrupt(VOID)
VOID(__cdecl * PHAL_SW_INTERRUPT_HANDLER)(VOID)
VOID __cdecl HalpApcInterrupt(VOID)
VOID KiUnexpectedInterrupt(VOID)
Definition at line 182 of file pic.c.
Referenced by HalEnableSystemInterrupt(), HalEndSystemInterrupt2(), HalpDispatchInterrupt2(), HalpEndSoftwareInterrupt2(), HalpHardwareInterruptLevel2(), HalpInitializePICs(), HalRequestSoftwareInterrupt(), and KfLowerIrql().
◆ SWInterruptHandlerTable2
Initial value:=
{
}
DECLSPEC_NORETURN VOID FASTCALL HalpDispatchInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame)
DECLSPEC_NORETURN VOID FASTCALL HalpApcInterrupt2ndEntry(IN PKTRAP_FRAME TrapFrame)
VOID(FASTCALL * PHAL_SW_INTERRUPT_HANDLER_2ND_ENTRY)(IN PKTRAP_FRAME TrapFrame)
Definition at line 207 of file pic.c.
Referenced by HalEndSystemInterrupt2(), and HalpEndSoftwareInterrupt2().
◆ SWInterruptLookUpTable
KIRQL SWInterruptLookUpTable[8] |