Moved stack switch handling (large stack) to sysdeps.c
Enable exception dispatch while on large stack.

diff --git a/include/callback.h b/include/callback.h
index 75603d3..df369eb 100644
--- a/include/callback.h
+++ b/include/callback.h
@@ -12,12 +12,11 @@
 #include "wingdi.h"
 #include "wine/winuser16.h"
 
-extern int (*IF1632_CallLargeStack)( int (*func)(void), void *arg );
+extern void SYSDEPS_SwitchToThreadStack( void (*func)(void) ) WINE_NORETURN;
+extern int SYSDEPS_CallOnLargeStack( int (*func)(void *), void *arg );
 
-#define CALL_LARGE_STACK(func,arg) \
-    (IF1632_CallLargeStack ? \
-     IF1632_CallLargeStack( (int(*)())(func), (void *)(arg) ) : \
-     ((int(*)())(func))((void *)arg))
+#define CALL_LARGE_STACK( func, arg ) \
+        SYSDEPS_CallOnLargeStack( (int (*)(void *))(func), (void *)(arg) )
 
 typedef void (*RELAY)();
 extern FARPROC THUNK_Alloc( FARPROC16 func, RELAY relay );
@@ -25,8 +24,6 @@
 extern BOOL THUNK_Init(void);
 extern void THUNK_InitCallout(void);
 
-extern void CALL32_Init( void *func, void *target, void *stack ) WINE_NORETURN;
-
 typedef struct
 {
     LONG (CALLBACK *CallRegisterShortProc)( CONTEXT86 *, INT );