From 40f4e264b0c957eafe187bc0de597c3aa18dc6be Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 19 Mar 2017 19:08:34 +0100
Subject: ntdll: Catch windows int 0x2e syscall on i386.

---
 dlls/ntdll/signal_i386.c | 13 +++++++++++++
 include/wine/exception.h |  1 +
 2 files changed, 14 insertions(+)

diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index d76fe95dfa..93d9418527 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -1572,6 +1572,14 @@ static inline BOOL handle_interrupt( unsigned int interrupt, EXCEPTION_RECORD *r
         rec->ExceptionInformation[1] = context->Ecx;
         rec->ExceptionInformation[2] = context->Edx;
         return TRUE;
+    case 0x2e:
+        context->Eip += 2;
+        rec->ExceptionCode = EXCEPTION_WINE_SYSCALL;
+        rec->ExceptionAddress = (void *)context->Eip;
+        rec->NumberParameters = 2;
+        rec->ExceptionInformation[0] = context->Eax;
+        rec->ExceptionInformation[1] = context->Edx;
+        return TRUE;
     default:
         return FALSE;
     }
@@ -1953,6 +1961,11 @@ static void WINAPI raise_segv_exception( EXCEPTION_RECORD *rec, CONTEXT *context
             }
         }
         break;
+    case EXCEPTION_WINE_SYSCALL:
+        FIXME("unimplemented syscall handler for 0x%lx, stack 0x%lx\n",
+              rec->ExceptionInformation[0], rec->ExceptionInformation[1]);
+        context->Eax = STATUS_INVALID_SYSTEM_SERVICE;
+        goto done;
     }
     status = NtRaiseException( rec, context, TRUE );
     raise_status( status, rec );
diff --git a/include/wine/exception.h b/include/wine/exception.h
index f275568f4d..b8aeb3b866 100644
--- a/include/wine/exception.h
+++ b/include/wine/exception.h
@@ -302,6 +302,7 @@ static inline EXCEPTION_REGISTRATION_REC
 
 #define EXCEPTION_WINE_STUB       0x80000100  /* stub entry point called */
 #define EXCEPTION_WINE_ASSERTION  0x80000101  /* assertion failed */
+#define EXCEPTION_WINE_SYSCALL    0x80000103
 
 #ifdef __cplusplus
 }
-- 
2.11.0
