#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
//
VOID
FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiSystemCallReturn(IN PKTRAP_FRAME TrapFrame)
{
/* Restore nonvolatiles, EAX, and do a "jump" back to the kernel caller */
VOID
FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiSystemCallTrapReturn(IN PKTRAP_FRAME TrapFrame)
{
/* Regular interrupt exit, but we only restore EAX as a volatile */
VOID
FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiSystemCallSysExitReturn(IN PKTRAP_FRAME TrapFrame)
{
/* Restore nonvolatiles, EAX, and do a SYSEXIT back to the user caller */
VOID
FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrapReturn(IN PKTRAP_FRAME TrapFrame)
{
/* Regular interrupt exit */
VOID
FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiEditedTrapReturn(IN PKTRAP_FRAME TrapFrame)
{
/* Regular interrupt exit */
//
VOID
FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiExitTrap(IN PKTRAP_FRAME TrapFrame,
IN UCHAR Skip)
{
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiEoiHelper(IN PKTRAP_FRAME TrapFrame)
{
/* Disable interrupts until we return */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiServiceExit(IN PKTRAP_FRAME TrapFrame,
IN NTSTATUS Status)
{
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiServiceExit2(IN PKTRAP_FRAME TrapFrame)
{
/* Disable interrupts until we return */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiDebugHandler(IN PKTRAP_FRAME TrapFrame,
IN ULONG Parameter1,
IN ULONG Parameter2,
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiNpxHandler(IN PKTRAP_FRAME TrapFrame,
IN PKTHREAD Thread,
IN PFX_SAVE_AREA SaveArea)
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap00Handler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap01Handler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
}
VOID
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap02(VOID)
{
PKTSS Tss, NmiTss;
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap03Handler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap04Handler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap05Handler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap06Handler(IN PKTRAP_FRAME TrapFrame)
{
PUCHAR Instruction;
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap07Handler(IN PKTRAP_FRAME TrapFrame)
{
PKTHREAD Thread, NpxThread;
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap08Handler(IN PKTRAP_FRAME TrapFrame)
{
/* FIXME: Not handled */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap09Handler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap0AHandler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap0BHandler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap0CHandler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame,
IN ULONG EFlags)
{
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame)
{
PKTHREAD Thread;
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap0FHandler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap10Handler(IN PKTRAP_FRAME TrapFrame)
{
PKTHREAD Thread;
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap11Handler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiTrap13Handler(IN PKTRAP_FRAME TrapFrame)
{
PKTHREAD Thread;
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiRaiseAssertionHandler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiDebugServiceHandler(IN PKTRAP_FRAME TrapFrame)
{
/* Save trap frame */
VOID
FASTCALL
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiSystemCall(IN ULONG SystemCallNumber,
IN PVOID Arguments)
{
VOID
FORCEINLINE
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiSystemCallHandler(IN PKTRAP_FRAME TrapFrame,
IN ULONG ServiceNumber,
IN PVOID Arguments,
VOID
__attribute__((regparm(3)))
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiFastCallEntryHandler(IN ULONG ServiceNumber,
IN PVOID Arguments,
IN PKTRAP_FRAME TrapFrame)
VOID
__attribute__((regparm(3)))
-//DECLSPEC_NORETURN
+DECLSPEC_NORETURN
KiSystemServiceHandler(IN ULONG ServiceNumber,
IN PVOID Arguments,
IN PKTRAP_FRAME TrapFrame)