From 9003fd20fe4491b536153a0970b436aba2b3ee40 Mon Sep 17 00:00:00 2001
From: "mostang.com!davidm" <mostang.com!davidm>
Date: Thu, 6 Mar 2003 06:14:36 +0000
Subject: [PATCH] Include <signal.h>.  Remove include of <tdep.h>.
 (mutex_init): New macro. (HAVE_CMPXCHG): Ditto. (cmpxchg_ptr): Ditto.
 (unwi_full_sigmask): New variable.

(Logical change 1.59)
---
 include/internal.h | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/include/internal.h b/include/internal.h
index 8b40a64c..74ed5de2 100644
--- a/include/internal.h
+++ b/include/internal.h
@@ -29,8 +29,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
 /* Platform-independent libunwind-internal declarations.  */
 
 #include <assert.h>
-#include <pthread.h>
 #include <libunwind.h>
+#include <pthread.h>
+#include <signal.h>
 
 #ifdef __GNUC__
 # if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ > 2)
@@ -79,12 +80,25 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
 #pragma weak pthread_mutex_lock
 #pragma weak pthread_mutex_unlock
 
+#define mutex_init(l)	(pthread_mutex_init ? pthread_mutex_init ((l), 0) : 0)
 #define mutex_lock(l)	(pthread_mutex_lock ? pthread_mutex_lock (l) : 0)
 #define mutex_unlock(l)	(pthread_mutex_unlock ? pthread_mutex_unlock (l) : 0)
 
+#if UNW_TARGET_IA64
+# define HAVE_CMPXCHG
+# include <ia64intrin.h>
+# define cmpxchg_ptr(_ptr,_o,_n)					\
+	((void *) __sync_val_compare_and_swap((long *) (_ptr),		\
+					      (long) (_o), (long) (_n)))
+#endif
+
 #define UNWI_OBJ(fn)	  UNW_PASTE(UNW_PREFIX,UNW_PASTE(I,fn))
 #define UNWI_ARCH_OBJ(fn) UNW_PASTE(UNW_PASTE(UNW_PASTE(_UI,UNW_TARGET),_), fn)
 
+#define unwi_full_sigmask	UNWI_ARCH_OBJ(full_sigmask)
+
+extern sigset_t unwi_full_sigmask;
+
 extern int UNWI_OBJ(find_dynamic_proc_info) (unw_addr_space_t as,
 					     unw_word_t ip,
 					     unw_proc_info_t *pi,
@@ -223,6 +237,4 @@ struct elf_image
     size_t size;		/* (file-) size of the image */
   };
 
-#include <tdep.h>
-
 #endif /* internal_h */