Arch-abstraction:
- Factored out the remaining arch-specific code from vg_libpthread.c.
- Also fixed up the build process for x86/libpthread.c, which was done
  wrongly in the previous commit.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2798 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/core.h b/coregrind/core.h
index a3dc106..68f16cc 100644
--- a/coregrind/core.h
+++ b/coregrind/core.h
@@ -1532,6 +1532,28 @@
                                       const vki_ksigset_t *mask);
 extern Int  VGA_(pop_signal_frame)  ( ThreadId tid );
 
+// libpthread stuff
+typedef struct arch_thread_aux arch_thread_aux_t;
+
+void VGA_(thread_create) ( arch_thread_aux_t *aux );
+void VGA_(thread_wrapper)( arch_thread_aux_t *aux );
+void VGA_(thread_exit)   ( void );
+
+Bool VGA_(has_tls)       ( void );
+
+#define MY__STRING(__str)  #__str
+
+// Assertion to use in code running on the simulated CPU.
+#define my_assert(expr)                                               \
+  ((void) ((expr) ? 0 :						      \
+	   (VG_(user_assert_fail) (MY__STRING(expr),		      \
+			      __FILE__, __LINE__,                     \
+                              __PRETTY_FUNCTION__), 0)))
+
+extern void VG_(user_assert_fail) ( const Char* expr, const Char* file,
+                                    Int line, const Char* fn );
+
+
 // ---------------------------------------------------------------------
 // Platform-specific things defined in eg. x86/*.c
 // ---------------------------------------------------------------------