diff options
author | Roland McGrath <roland@gnu.org> | 2003-02-25 23:45:16 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2003-02-25 23:45:16 +0000 |
commit | 1d02f71fe4046c1cd17ff6b6687a89932797cb3b (patch) | |
tree | d73f941e908994fa60b5932d98510aaf5cb15c2f /sysdeps/mach/hurd/alpha | |
parent | fec417190420a427bec2340853f42051da251b65 (diff) | |
download | glibc-1d02f71fe4046c1cd17ff6b6687a89932797cb3b.tar.gz glibc-1d02f71fe4046c1cd17ff6b6687a89932797cb3b.tar.xz glibc-1d02f71fe4046c1cd17ff6b6687a89932797cb3b.zip |
linuxthreads/ChangeLog
2003-02-25 Roland McGrath <roland@redhat.com> * sysdeps/powerpc/powerpc64/dl-machine.h: Support new TLS relocs. * sysdeps/powerpc/powerpc64/dl-tls.h: New file.
Diffstat (limited to 'sysdeps/mach/hurd/alpha')
-rw-r--r-- | sysdeps/mach/hurd/alpha/tls.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/sysdeps/mach/hurd/alpha/tls.h b/sysdeps/mach/hurd/alpha/tls.h new file mode 100644 index 0000000000..e820a013bf --- /dev/null +++ b/sysdeps/mach/hurd/alpha/tls.h @@ -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 */ |