Implement software interrupt dispatch table and secondary handler lookup
This commit is contained in:
@@ -17,9 +17,14 @@ namespace AR
|
||||
{
|
||||
class Traps
|
||||
{
|
||||
private:
|
||||
STATIC PINTERRUPT_HANDLER UnhandledInterruptRoutine;
|
||||
|
||||
public:
|
||||
STATIC XTCDECL VOID DispatchInterrupt(IN PKTRAP_FRAME TrapFrame) XTSYMBOL("ArDispatchInterrupt");
|
||||
STATIC XTCDECL VOID DispatchTrap(IN PKTRAP_FRAME TrapFrame) XTSYMBOL("ArDispatchTrap");
|
||||
STATIC XTCDECL VOID InitializeSystemCallMsrs(VOID);
|
||||
STATIC XTCDECL VOID SetUnhandledInterruptRoutine(PINTERRUPT_HANDLER Handler);
|
||||
|
||||
private:
|
||||
STATIC XTCDECL VOID HandleSystemCall32(VOID);
|
||||
|
||||
@@ -17,8 +17,13 @@ namespace AR
|
||||
{
|
||||
class Traps
|
||||
{
|
||||
private:
|
||||
STATIC PINTERRUPT_HANDLER UnhandledInterruptRoutine;
|
||||
|
||||
public:
|
||||
STATIC XTCDECL VOID DispatchInterrupt(IN PKTRAP_FRAME TrapFrame) XTSYMBOL("_ArDispatchInterrupt");
|
||||
STATIC XTCDECL VOID DispatchTrap(IN PKTRAP_FRAME TrapFrame) XTSYMBOL("_ArDispatchTrap");
|
||||
STATIC XTCDECL VOID SetUnhandledInterruptRoutine(PINTERRUPT_HANDLER Handler);
|
||||
|
||||
private:
|
||||
STATIC XTCDECL VOID HandleTrap00(IN PKTRAP_FRAME TrapFrame);
|
||||
|
||||
@@ -18,8 +18,13 @@ namespace HL
|
||||
class Irq
|
||||
{
|
||||
public:
|
||||
STATIC XTAPI VOID SetInterruptHandler(IN ULONG Vector,
|
||||
IN PVOID Handler);
|
||||
STATIC XTAPI PVOID QueryInterruptHandler(IN ULONG Vector);
|
||||
STATIC XTAPI PVOID QuerySystemInterruptHandler(IN ULONG Vector);
|
||||
STATIC XTCDECL VOID HandleUnexpectedInterrupt(IN PKTRAP_FRAME TrapFrame);
|
||||
STATIC XTAPI VOID RegisterInterruptHandler(IN ULONG Vector,
|
||||
IN PVOID Handler);
|
||||
STATIC XTAPI VOID RegisterSystemInterruptHandler(IN ULONG Vector,
|
||||
IN PINTERRUPT_HANDLER Handler);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user