diff --git a/reactos/ntoskrnl/include/internal/i386/ke.h b/reactos/ntoskrnl/include/internal/i386/ke.h index 1dfcff90b2d..c6abac3d1bf 100644 --- a/reactos/ntoskrnl/include/internal/i386/ke.h +++ b/reactos/ntoskrnl/include/internal/i386/ke.h @@ -397,6 +397,7 @@ Ki386HandleOpcodeV86( VOID FASTCALL +DECLSPEC_NORETURN KiEoiHelper( IN PKTRAP_FRAME TrapFrame ); @@ -415,6 +416,7 @@ KiExitV86Mode( VOID NTAPI +DECLSPEC_NORETURN KiDispatchExceptionFromTrapFrame( IN NTSTATUS Code, IN ULONG_PTR Address, @@ -548,7 +550,7 @@ Ke386SanitizeDr(IN PVOID DrAddress, // VOID FORCEINLINE -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiDispatchException0Args(IN NTSTATUS Code, IN ULONG_PTR Address, IN PKTRAP_FRAME TrapFrame) @@ -562,7 +564,7 @@ KiDispatchException0Args(IN NTSTATUS Code, // VOID FORCEINLINE -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiDispatchException1Args(IN NTSTATUS Code, IN ULONG_PTR Address, IN ULONG P1, @@ -577,7 +579,7 @@ KiDispatchException1Args(IN NTSTATUS Code, // VOID FORCEINLINE -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiDispatchException2Args(IN NTSTATUS Code, IN ULONG_PTR Address, IN ULONG P1, diff --git a/reactos/ntoskrnl/include/internal/ke.h b/reactos/ntoskrnl/include/internal/ke.h index a59f96723e1..694581979a5 100644 --- a/reactos/ntoskrnl/include/internal/ke.h +++ b/reactos/ntoskrnl/include/internal/ke.h @@ -1114,7 +1114,7 @@ KiIdleLoop( VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiSystemFatalException( IN ULONG ExceptionCode, IN PKTRAP_FRAME TrapFrame diff --git a/reactos/ntoskrnl/include/internal/trap_x.h b/reactos/ntoskrnl/include/internal/trap_x.h index 8c8b675e1e0..3672fca6e3f 100644 --- a/reactos/ntoskrnl/include/internal/trap_x.h +++ b/reactos/ntoskrnl/include/internal/trap_x.h @@ -9,12 +9,14 @@ #define _TRAP_X_ // -// Unreachable code hint for GCC 4.5.x, 4.4.x, and MSVC +// Unreachable code hint for GCC 4.5.x, older GCC versions, and MSVC // +#ifdef __GNUC__ #if __GNUC__ * 100 + __GNUC_MINOR__ >= 405 #define UNREACHABLE __builtin_unreachable() -#elif __GNUC__ * 100 + __GNUC_MINOR__ >= 404 +#else #define UNREACHABLE __builtin_trap() +#endif #elif _MSC_VER #define UNREACHABLE __assume(0) #else @@ -188,7 +190,7 @@ KiUserTrap(IN PKTRAP_FRAME TrapFrame) // VOID FORCEINLINE -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiSystemCallReturn(IN PKTRAP_FRAME TrapFrame) { /* Restore nonvolatiles, EAX, and do a "jump" back to the kernel caller */ @@ -219,7 +221,7 @@ KiSystemCallReturn(IN PKTRAP_FRAME TrapFrame) VOID FORCEINLINE -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiSystemCallTrapReturn(IN PKTRAP_FRAME TrapFrame) { /* Regular interrupt exit, but we only restore EAX as a volatile */ @@ -248,7 +250,7 @@ KiSystemCallTrapReturn(IN PKTRAP_FRAME TrapFrame) VOID FORCEINLINE -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiSystemCallSysExitReturn(IN PKTRAP_FRAME TrapFrame) { /* Restore nonvolatiles, EAX, and do a SYSEXIT back to the user caller */ @@ -281,7 +283,7 @@ KiSystemCallSysExitReturn(IN PKTRAP_FRAME TrapFrame) VOID FORCEINLINE -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrapReturn(IN PKTRAP_FRAME TrapFrame) { /* Regular interrupt exit */ @@ -314,7 +316,7 @@ KiTrapReturn(IN PKTRAP_FRAME TrapFrame) VOID FORCEINLINE -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiEditedTrapReturn(IN PKTRAP_FRAME TrapFrame) { /* Regular interrupt exit */ @@ -351,7 +353,7 @@ KiEditedTrapReturn(IN PKTRAP_FRAME TrapFrame) // VOID FORCEINLINE -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiExitTrap(IN PKTRAP_FRAME TrapFrame, IN UCHAR Skip) { diff --git a/reactos/ntoskrnl/ke/i386/exp.c b/reactos/ntoskrnl/ke/i386/exp.c index ed6fb12a5c3..284ff19e3bf 100644 --- a/reactos/ntoskrnl/ke/i386/exp.c +++ b/reactos/ntoskrnl/ke/i386/exp.c @@ -1107,7 +1107,7 @@ Handled: VOID NTAPI -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiDispatchExceptionFromTrapFrame(IN NTSTATUS Code, IN ULONG_PTR Address, IN ULONG ParameterCount, @@ -1146,7 +1146,7 @@ KiDispatchExceptionFromTrapFrame(IN NTSTATUS Code, VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiSystemFatalException(IN ULONG ExceptionCode, IN PKTRAP_FRAME TrapFrame) { diff --git a/reactos/ntoskrnl/ke/i386/traphdlr.c b/reactos/ntoskrnl/ke/i386/traphdlr.c index 51d5457a526..96176df3f99 100644 --- a/reactos/ntoskrnl/ke/i386/traphdlr.c +++ b/reactos/ntoskrnl/ke/i386/traphdlr.c @@ -58,7 +58,7 @@ KiVdmTrap(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiEoiHelper(IN PKTRAP_FRAME TrapFrame) { /* Disable interrupts until we return */ @@ -73,7 +73,7 @@ KiEoiHelper(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiServiceExit(IN PKTRAP_FRAME TrapFrame, IN NTSTATUS Status) { @@ -92,7 +92,7 @@ KiServiceExit(IN PKTRAP_FRAME TrapFrame, VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiServiceExit2(IN PKTRAP_FRAME TrapFrame) { /* Disable interrupts until we return */ @@ -109,7 +109,7 @@ KiServiceExit2(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiDebugHandler(IN PKTRAP_FRAME TrapFrame, IN ULONG Parameter1, IN ULONG Parameter2, @@ -133,7 +133,7 @@ KiDebugHandler(IN PKTRAP_FRAME TrapFrame, VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiNpxHandler(IN PKTRAP_FRAME TrapFrame, IN PKTHREAD Thread, IN PFX_SAVE_AREA SaveArea) @@ -290,7 +290,7 @@ KiNpxHandler(IN PKTRAP_FRAME TrapFrame, VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap00Handler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -310,7 +310,7 @@ KiTrap00Handler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap01Handler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -330,7 +330,7 @@ KiTrap01Handler(IN PKTRAP_FRAME TrapFrame) } VOID -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap02(VOID) { PKTSS Tss, NmiTss; @@ -477,7 +477,7 @@ KiTrap02(VOID) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap03Handler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -489,7 +489,7 @@ KiTrap03Handler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap04Handler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -509,7 +509,7 @@ KiTrap04Handler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap05Handler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -532,7 +532,7 @@ KiTrap05Handler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap06Handler(IN PKTRAP_FRAME TrapFrame) { PUCHAR Instruction; @@ -578,7 +578,7 @@ KiTrap06Handler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap07Handler(IN PKTRAP_FRAME TrapFrame) { PKTHREAD Thread, NpxThread; @@ -688,7 +688,7 @@ KiTrap07Handler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap08Handler(IN PKTRAP_FRAME TrapFrame) { /* FIXME: Not handled */ @@ -697,7 +697,7 @@ KiTrap08Handler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap09Handler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -710,7 +710,7 @@ KiTrap09Handler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap0AHandler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -725,7 +725,7 @@ KiTrap0AHandler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap0BHandler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -738,7 +738,7 @@ KiTrap0BHandler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap0CHandler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -751,7 +751,7 @@ KiTrap0CHandler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame, IN ULONG EFlags) { @@ -1036,7 +1036,7 @@ KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame, VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame) { PKTHREAD Thread; @@ -1159,7 +1159,7 @@ KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap0FHandler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -1172,7 +1172,7 @@ KiTrap0FHandler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap10Handler(IN PKTRAP_FRAME TrapFrame) { PKTHREAD Thread; @@ -1200,7 +1200,7 @@ KiTrap10Handler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap11Handler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -1213,7 +1213,7 @@ KiTrap11Handler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiTrap13Handler(IN PKTRAP_FRAME TrapFrame) { PKTHREAD Thread; @@ -1316,7 +1316,7 @@ KiCallbackReturnHandler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiRaiseAssertionHandler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -1333,7 +1333,7 @@ KiRaiseAssertionHandler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiDebugServiceHandler(IN PKTRAP_FRAME TrapFrame) { /* Save trap frame */ @@ -1348,7 +1348,7 @@ KiDebugServiceHandler(IN PKTRAP_FRAME TrapFrame) VOID FASTCALL -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiSystemCall(IN ULONG SystemCallNumber, IN PVOID Arguments) { @@ -1439,7 +1439,7 @@ ExitCall: VOID FORCEINLINE -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiSystemCallHandler(IN PKTRAP_FRAME TrapFrame, IN ULONG ServiceNumber, IN PVOID Arguments, @@ -1481,7 +1481,7 @@ KiSystemCallHandler(IN PKTRAP_FRAME TrapFrame, VOID __attribute__((regparm(3))) -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiFastCallEntryHandler(IN ULONG ServiceNumber, IN PVOID Arguments, IN PKTRAP_FRAME TrapFrame) @@ -1515,7 +1515,7 @@ KiFastCallEntryHandler(IN ULONG ServiceNumber, VOID __attribute__((regparm(3))) -//DECLSPEC_NORETURN +DECLSPEC_NORETURN KiSystemServiceHandler(IN ULONG ServiceNumber, IN PVOID Arguments, IN PKTRAP_FRAME TrapFrame)