Add stubs for C++ exception and purecall handlers
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 35s
Builds / ExectOS (amd64, debug) (push) Successful in 37s
Builds / ExectOS (i686, debug) (push) Successful in 29s
Builds / ExectOS (i686, release) (push) Successful in 28s

This commit is contained in:
2025-09-15 20:52:40 +02:00
parent e0844b38cd
commit 3e097c260d
2 changed files with 62 additions and 0 deletions

View File

@@ -4,6 +4,7 @@
* FILE: xtoskrnl/rtl/i686/exsup.cc
* DESCRIPTION: Exception handling for i686 architecture
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
* Aiken Harris <harraiken91@gmail.com>
*/
#include <xtos.hh>
@@ -23,6 +24,24 @@ __C_specific_handler(IN PEXCEPTION_RECORD ExceptionRecord,
return ExceptionContinueExecution;
}
XTCLINK
XTCDECL
EXCEPTION_DISPOSITION
__CxxFrameHandler3(IN PEXCEPTION_RECORD ExceptionRecord,
IN PVOID EstablisherFrame,
IN OUT PCONTEXT ContextRecord,
IN OUT PVOID DispatcherContext)
{
UNIMPLEMENTED;
/* Disable interrupts and hang */
AR::CpuFunc::ClearInterruptFlag();
KE::Crash::Panic(0); // CXX_FRAME_HANDLER_CALLED
/* Continue search */
return ExceptionContinueSearch;
}
XTCLINK
XTCDECL
INT
@@ -36,3 +55,15 @@ _except_handler3(PEXCEPTION_RECORD ExceptionRecord,
/* Handler not found */
return 0;
}
XTCLINK
XTCDECL
VOID
_purecall(VOID)
{
UNIMPLEMENTED;
/* Disable interrupts and hang */
AR::CpuFunc::ClearInterruptFlag();
KE::Crash::Panic(0); // PURE_VIRTUAL_FUNCTION_CALL
}