Files
exectos/xtoskrnl/includes/hl/irq.hh
Aiken Harris 88d1f6f2ae
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in -59m28s
Builds / ExectOS (amd64, release) (push) Successful in -59m29s
Builds / ExectOS (i686, debug) (push) Successful in -59m25s
Builds / ExectOS (i686, release) (push) Successful in -59m27s
Implement system interrupt prologue and epilogue functions
2026-04-27 20:22:28 +02:00

40 lines
1.6 KiB
C++

/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/includes/hl/irq.hh
* DESCRIPTION: Interrupts support
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#ifndef __XTOSKRNL_HL_IRQ_HH
#define __XTOSKRNL_HL_IRQ_HH
#include <xtos.hh>
/* Hardware Layer */
namespace HL
{
class Irq
{
public:
STATIC XTAPI VOID BeginSystemInterrupt(IN KRUNLEVEL RunLevel,
OUT PKRUNLEVEL OldRunLevel);
STATIC XTAPI VOID EndInterrupt(IN PKTRAP_FRAME TrapFrame,
IN KRUNLEVEL RunLevel);
STATIC XTAPI VOID EndSystemInterrupt(IN PKTRAP_FRAME TrapFrame,
IN KRUNLEVEL RunLevel);
STATIC XTCDECL VOID HandleProfileInterrupt(IN PKTRAP_FRAME TrapFrame);
STATIC XTCDECL VOID HandleUnexpectedInterrupt(IN PKTRAP_FRAME TrapFrame);
STATIC XTAPI PVOID QueryInterruptHandler(IN ULONG Vector);
STATIC XTAPI PVOID QuerySystemInterruptHandler(IN ULONG Vector);
STATIC XTAPI VOID RegisterInterruptHandler(IN ULONG Vector,
IN PVOID Handler);
STATIC XTAPI VOID RegisterSystemInterruptHandler(IN ULONG Vector,
IN PINTERRUPT_HANDLER Handler);
STATIC XTFASTCALL VOID SendSoftwareInterrupt(IN KRUNLEVEL RunLevel);
};
}
#endif /* __XTOSKRNL_HL_IRQ_HH */