ntdll: Move the CPU-specific handling of current TEB to the respective signal files.
diff --git a/dlls/ntdll/signal_sparc.c b/dlls/ntdll/signal_sparc.c
index 54165ee..dddc183 100644
--- a/dlls/ntdll/signal_sparc.c
+++ b/dlls/ntdll/signal_sparc.c
@@ -44,6 +44,8 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(seh);
 
+static pthread_key_t teb_key;
+
 #define HANDLER_DEF(name) void name( int __signal, struct siginfo *__siginfo, ucontext_t *__context )
 #define HANDLER_CONTEXT (__context)
 
@@ -459,10 +461,19 @@
 /**********************************************************************
  *		signal_init_thread
  */
-void signal_init_thread(void)
+void signal_init_thread( TEB *teb )
 {
+    static int init_done;
+
+    if (!init_done)
+    {
+        pthread_key_create( &teb_key, NULL );
+        init_done = 1;
+    }
+    pthread_setspecific( teb_key, teb );
 }
 
+
 /**********************************************************************
  *		signal_init_process
  */
@@ -516,4 +527,12 @@
      kill(getpid(), SIGTRAP);
 }
 
+/**********************************************************************
+ *           NtCurrentTeb   (NTDLL.@)
+ */
+TEB * WINAPI NtCurrentTeb(void)
+{
+    return pthread_getspecific( teb_key );
+}
+
 #endif  /* __sparc__ */