Add stubs for C++ exception and purecall handlers
Všechny kontroly byly úspěšné
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

Tento commit je obsažen v:
2025-09-15 20:52:40 +02:00
rodič e0844b38cd
revize 3e097c260d
2 změnil soubory, kde provedl 62 přidání a 0 odebrání

Zobrazit soubor

@@ -4,6 +4,7 @@
* FILE: xtoskrnl/rtl/amd64/exsup.cc
* DESCRIPTION: Exception handling for AMD64 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
}