mirror of git://sourceware.org/git/glibc.git
2002-09-01 Roland McGrath <roland@redhat.com>
* sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_address): New macro. (__libc_internal_tsd_address): Declare it. * Versions (libc, ld, libpthread: GLIBC_PRIVATE): Add __libc_internal_tsd_address. * specific.c (libc_internal_tsd_address): New function. (__libc_internal_tsd_address): New variable. * no-tsd.c (__libc_internal_tsd_address): New variable.
This commit is contained in:
parent
d20fec5d65
commit
4032add80a
|
|
@ -20,6 +20,8 @@ libc {
|
||||||
GLIBC_PRIVATE {
|
GLIBC_PRIVATE {
|
||||||
# Internal libc interface to libpthread
|
# Internal libc interface to libpthread
|
||||||
__libc_internal_tsd_get; __libc_internal_tsd_set;
|
__libc_internal_tsd_get; __libc_internal_tsd_set;
|
||||||
|
__libc_internal_tsd_address;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -27,6 +29,7 @@ ld {
|
||||||
GLIBC_PRIVATE {
|
GLIBC_PRIVATE {
|
||||||
# Internal libc interface to libpthread
|
# Internal libc interface to libpthread
|
||||||
__libc_internal_tsd_get; __libc_internal_tsd_set;
|
__libc_internal_tsd_get; __libc_internal_tsd_set;
|
||||||
|
__libc_internal_tsd_address;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -160,6 +163,7 @@ libpthread {
|
||||||
GLIBC_PRIVATE {
|
GLIBC_PRIVATE {
|
||||||
# Internal libc interface to libpthread
|
# Internal libc interface to libpthread
|
||||||
__libc_internal_tsd_get; __libc_internal_tsd_set;
|
__libc_internal_tsd_get; __libc_internal_tsd_set;
|
||||||
|
__libc_internal_tsd_address;
|
||||||
__pthread_kill_other_threads_np;
|
__pthread_kill_other_threads_np;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,5 +34,7 @@
|
||||||
void *(*__libc_internal_tsd_get) (enum __libc_tsd_key_t);
|
void *(*__libc_internal_tsd_get) (enum __libc_tsd_key_t);
|
||||||
int (*__libc_internal_tsd_set) (enum __libc_tsd_key_t,
|
int (*__libc_internal_tsd_set) (enum __libc_tsd_key_t,
|
||||||
__const void *);
|
__const void *);
|
||||||
|
void **(*__libc_internal_tsd_address) (enum __libc_tsd_key_t)
|
||||||
|
__THROW __attribute__ ((__const__));
|
||||||
|
|
||||||
#endif /* !(USE_TLS && HAVE___THREAD) */
|
#endif /* !(USE_TLS && HAVE___THREAD) */
|
||||||
|
|
|
||||||
|
|
@ -229,4 +229,13 @@ libc_internal_tsd_get(enum __libc_tsd_key_t key)
|
||||||
void * (*__libc_internal_tsd_get)(enum __libc_tsd_key_t key)
|
void * (*__libc_internal_tsd_get)(enum __libc_tsd_key_t key)
|
||||||
= libc_internal_tsd_get;
|
= libc_internal_tsd_get;
|
||||||
|
|
||||||
|
static void ** __attribute__ ((__const__))
|
||||||
|
libc_internal_tsd_address (enum __libc_tsd_key_t key)
|
||||||
|
{
|
||||||
|
pthread_descr self = thread_self();
|
||||||
|
return &self->p_libc_specific[key];
|
||||||
|
}
|
||||||
|
void **(*const __libc_internal_tsd_address) (enum __libc_tsd_key_t key)
|
||||||
|
__THROW __attribute__ ((__const__)) = libc_internal_tsd_address;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue