44 #define INT_NAME2(intnum) KiUnexpectedInterrupt##intnum 46 #define BUILD_INTERRUPT_HANDLER(intnum) \ 47 VOID INT_NAME2(intnum)(VOID); 50 BUILD_INTERRUPT_HANDLER(x##y) 53 D(x,0) D(x,1) D(x,2) D(x,3) \ 54 D(x,4) D(x,5) D(x,6) D(x,7) \ 55 D(x,8) D(x,9) D(x,A) D(x,B) \ 56 D(x,C) D(x,D) D(x,E) D(x,F) 58 D16(3) D16(4) D16(5) D16(6)
59 D16(7) D16(8) D16(9) D16(
A)
60 D16(
B) D16(
C) D16(
D) D16(
E)
64 (ULONG)& INT_NAME2(x##y) 67 L(x,0), L(x,1), L(x,2), L(x,3), \ 68 L(x,4), L(x,5), L(x,6), L(x,7), \ 69 L(x,8), L(x,9), L(x,A), L(x,B), \ 70 L(x,C), L(x,D), L(x,E), L(x,F) 73 L16(3), L16(4), L16(5), L16(6),
74 L16(7), L16(8), L16(9), L16(
A),
75 L16(
B), L16(
C), L16(
D), L16(
E)
144 #define TAG_ISR_LOCK 'LRSI' 286 if ((CurrentThread->Quantum -= 3) <= 0)
469 if (CurrentThread!=
NULL && CurrentThread->
ApcState.UserApcPending)
475 CurrentThread->
TrapFrame = &KernelTrapFrame;
483 if (CurrentThread->
TrapFrame == &KernelTrapFrame)
518 while (current_entry!=&(
IsrTable[
i][
j].ListHead))
520 if (printed ==
FALSE)
526 current_entry = current_entry->
Flink;
542 KIRQL oldlvl,synch_oldlvl;
548 DPRINT(
"KeConnectInterrupt()\n");
617 KIRQL oldlvl,synch_oldlvl;
621 DPRINT1(
"KeDisconnectInterrupt\n");
680 CHAR ProcessorNumber,
707 Interrupt->
Number = ProcessorNumber;
764 switch(trap_frame->
gpr[0])
767 for(
i = 0;
i < trap_frame->
gpr[5];
i++ )
789 [trap_frame->
gpr[0] >> 12].
Base)[trap_frame->
gpr[0] & 0xfff];
790 trap_frame->
gpr[3] = SyscallFunction
800 trap_frame->
gpr[12]);
struct _LARGE_INTEGER::@2220 u
#define KeGetCurrentIrql()
#define MAXIMUM_PROCESSORS
void trap_handler_10(void)
void trap_handler_7(void)
VOID NTAPI HalEndSystemInterrupt(IN KIRQL OldIrql, IN PKTRAP_FRAME TrapFrame)
BOOLEAN NTAPI HalEnableSystemInterrupt(IN ULONG Vector, IN KIRQL Irql, IN KINTERRUPT_MODE InterruptMode)
#define KeRaiseIrql(irql, oldIrql)
VOID NTAPI KiSystemService(ppc_trap_frame_t *trap_frame)
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE InterruptMode
#define KeLowerIrql(oldIrql)
#define ROUND_UP(n, align)
VOID KePrintInterruptStatistic(VOID)
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE _In_ BOOLEAN ShareVector
struct _LIST_ENTRY * Blink
void trap_handler_11(void)
VOID NTAPI KeRevertToUserAffinityThread(VOID)
void trap_handler_15(void)
static unsigned int trap_handler [NR_TRAPS] __attribute__((unused))
struct ISR_TABLE * PISR_TABLE
void __cdecl _enable(void)
BOOLEAN NTAPI KeInsertQueueDpc(IN PKDPC Dpc, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
VOID NTAPI KiInterruptDispatch2(ULONG vector, KIRQL old_level)
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
void trap_handler_8(void)
BOOLEAN NTAPI HalBeginSystemInterrupt(IN KIRQL Irql, IN ULONG Vector, OUT PKIRQL OldIrql)
#define InsertTailList(ListHead, Entry)
void trap_handler_6(void)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
ULONG NTAPI KdpServiceDispatcher(ULONG Service, PVOID Buffer1, ULONG Buffer1Length, KPROCESSOR_MODE PreviousMode)
VOID NTAPI KeSetSystemAffinityThread(IN KAFFINITY Affinity)
VOID NTAPI HalDisableSystemInterrupt(IN ULONG Vector, IN KIRQL Irql)
KSERVICE_ROUTINE * PKSERVICE_ROUTINE
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK SpinLock
void trap_handler_12(void)
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
FORCEINLINE ULONG KeGetCurrentProcessorNumber(VOID)
_Must_inspect_result_ _In_ ULONG Flags
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
VOID(NTAPI * PKSYSTEM_ROUTINE)(PKSTART_ROUTINE StartRoutine, PVOID StartContext)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
KSTART_ROUTINE * PKSTART_ROUTINE
VOID FASTCALL KiReleaseSpinLock(IN PKSPIN_LOCK SpinLock)
void trap_handler_13(void)
BOOLEAN NTAPI KeDisconnectInterrupt(PKINTERRUPT InterruptObject)
VOID NTAPI KeReleaseInterruptSpinLock(IN PKINTERRUPT Interrupt, IN KIRQL OldIrql)
struct _KTHREAD * CurrentThread
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
enum _KINTERRUPT_MODE KINTERRUPT_MODE
PPC_QUAL unsigned long long __readmsr()
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL SynchronizeIrql
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
VOID KiInterruptDispatch3(ULONG vector, PKIRQ_TRAPFRAME Trapframe)
VOID NTAPI KeUpdateSystemTime(IN PKTRAP_FRAME TrapFrame, IN KIRQL Irql, IN ULONG Increment)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
void trap_handler_14(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
struct _LIST_ENTRY * Flink
_In_ KPROCESSOR_MODE PreviousMode
void trap_handler_0(void)
void trap_handler_2(void)
KIRQL NTAPI KeAcquireInterruptSpinLock(IN PKINTERRUPT Interrupt)
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID ServiceContext
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
static VOID KeTrapFrameToIRQTrapFrame(PKTRAP_FRAME TrapFrame, PKIRQ_TRAPFRAME IrqTrapFrame)
PKSERVICE_ROUTINE ServiceRoutine
void trap_handler_3(void)
NTKERNELAPI volatile KSYSTEM_TIME KeTickCount
VOID NTAPI KeInitializeInterrupt(PKINTERRUPT Interrupt, PKSERVICE_ROUTINE ServiceRoutine, PVOID ServiceContext, PKSPIN_LOCK SpinLock, ULONG Vector, KIRQL Irql, KIRQL SynchronizeIrql, KINTERRUPT_MODE InterruptMode, BOOLEAN ShareVector, CHAR ProcessorNumber, BOOLEAN FloatingSave)
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE _In_ BOOLEAN _In_ KAFFINITY _In_ BOOLEAN FloatingSave
ULONG(* PSYSCALL_FUN)(ULONG, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG)
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG IN OUT PLONG IN LONG Increment IN PNDIS_RW_LOCK Lock
ULONG KiMaximumDpcQueueDepth
void trap_handler_5(void)
VOID FASTCALL HalRequestSoftwareInterrupt(IN KIRQL Irql)
void trap_handler_4(void)
volatile ULONG DpcQueueDepth
ULONG KiAdjustDpcThreshold
#define InterlockedIncrement
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG Vector
#define InitializeListHead(ListHead)
BOOLEAN NTAPI KeConnectInterrupt(PKINTERRUPT InterruptObject)
VOID FASTCALL KiAcquireSpinLock(IN PKSPIN_LOCK SpinLock)
VOID NTAPI KeUpdateRunTime(IN PKTRAP_FRAME TrapFrame, IN KIRQL Irql)
BOOLEAN NTAPI KeDisableInterrupts(VOID)
VOID INIT_FUNCTION NTAPI KeInitInterrupts(VOID)
KSERVICE_TABLE_DESCRIPTOR KeServiceDescriptorTable[SSDT_MAX_ENTRIES]
void trap_handler_1(void)
void __cdecl _disable(void)
struct _KINTERRUPT KINTERRUPT
void WRITE_PORT_UCHAR(PUCHAR Address, UCHAR Value)
static ISR_TABLE IsrTable[NR_TRAPS][1]
void trap_handler_9(void)
#define KeGetCurrentThread
LONG MaximumDpcQueueDepth
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG Increment
VOID NTAPI KiDeliverApc(IN KPROCESSOR_MODE DeliveryMode, IN PKEXCEPTION_FRAME ExceptionFrame, IN PKTRAP_FRAME TrapFrame)
static PLARGE_INTEGER Time
struct task_struct * current
static VOID KeDumpIrqList(VOID)
_In_ PKSERVICE_ROUTINE ServiceRoutine
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
static VOID KeIRQTrapFrameToTrapFrame(PKIRQ_TRAPFRAME IrqTrapFrame, PKTRAP_FRAME TrapFrame)