]> sourceware.org Git - glibc.git/commitdiff
linuxthreads/ChangeLog
authorRoland McGrath <roland@gnu.org>
Tue, 25 Feb 2003 23:45:16 +0000 (23:45 +0000)
committerRoland McGrath <roland@gnu.org>
Tue, 25 Feb 2003 23:45:16 +0000 (23:45 +0000)
sysdeps/mach/alpha/machine-lock.h
sysdeps/mach/hurd/alpha/tls.h [new file with mode: 0644]

index 80f8750c87884770448710d8362213a233fbc12e..363c29e56f0542f7494fac2c0e70a81a7d5dd956 100644 (file)
@@ -1,5 +1,5 @@
 /* Machine-specific definition for spin locks.  Alpha version.
-   Copyright (C) 1994, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1994,97,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -38,8 +38,8 @@ typedef __volatile long int __spin_lock_t;
 _EXTERN_INLINE void
 __spin_unlock (__spin_lock_t *__lock)
 {
-  __asm__ __volatile__ ("mb; stq $31, %0; mb"
-                       : "=m" (__lock));
+  __asm__ __volatile__ ("mb");
+  *__lock = 0;
 }
 
 /* Try to lock LOCK; return nonzero if we locked it, zero if another has.  */
@@ -47,6 +47,9 @@ __spin_unlock (__spin_lock_t *__lock)
 _EXTERN_INLINE int
 __spin_try_lock (register __spin_lock_t *__lock)
 {
+#if 1
+  return 1;
+#else
   register long int __rtn, __tmp;
 
   do
@@ -66,6 +69,7 @@ __spin_try_lock (register __spin_lock_t *__lock)
    } while (! __rtn);
   /* RTN is now nonzero; we have the lock.  */
   return __rtn;
+#endif
 }
 
 /* Return nonzero if LOCK is locked.  */
diff --git a/sysdeps/mach/hurd/alpha/tls.h b/sysdeps/mach/hurd/alpha/tls.h
new file mode 100644 (file)
index 0000000..e820a01
--- /dev/null
@@ -0,0 +1,53 @@
+/* Definition for thread-local data handling.  Hurd/Alpha version.
+   Copyright (C) 2002 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _TLS_H
+#define _TLS_H
+
+#if defined HAVE_TLS_SUPPORT && 0
+
+/* Signal that TLS support is available.  */
+# define USE_TLS       1
+
+/* Code to initially initialize the thread pointer.  This might need
+   special attention since 'errno' is not yet available and if the
+   operation can cause a failure 'errno' must not be touched.  */
+# define TLS_INIT_TP(descr)                                                  \
+  do                                                                         \
+  {                                                                          \
+    register tcbhead_t *_a0 __asm__ ("$16") = (descr);                       \
+    __asm__ ("call_pal %0" : : "i" (PAL_wruniq), "r" (_a0));                 \
+  } while (0)
+
+# define THREAD_TCB()                                                        \
+  ({                                                                         \
+    register tcbhead_t *_rv __asm__ ("$0");                                  \
+    __asm__ ("call_pal %0" : "=r" (rv) : "i" (PAL_rduniq));                  \
+    _rv;                                                                     \
+  })
+
+/* Install new dtv for current thread.  */
+# define INSTALL_NEW_DTV(dtv)          (THREAD_DTV () = (dtv))
+
+/* Return the address of the dtv for the current thread.  */
+# define THREAD_DTV()                  (THREAD_TCB ()->dtv)
+
+#endif /* HAVE_TLS_SUPPORT */
+
+#endif /* tls.h */
This page took 0.050111 seconds and 5 git commands to generate.