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__ */