mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
* inet/herrno.c (__h_errno_location): Remove. * inet/Makefile (routines): Add herrno-loc. * resolv/res_libc.c (__res_state): Remove. * resolv/Makefile (routines): Add res-state. * sysdeps/generic/herrno-loc.c: New file. * sysdeps/generic/res-state.c: New file. 2002-12-27 Jakub Jelinek <jakub@redhat.com>
This commit is contained in:
@ -20,16 +20,7 @@
|
||||
#ifndef _BITS_LIBC_TSD_H
|
||||
#define _BITS_LIBC_TSD_H 1
|
||||
|
||||
/* Fast thread-specific data internal to libc. */
|
||||
enum __libc_tsd_key_t { _LIBC_TSD_KEY_MALLOC = 0,
|
||||
_LIBC_TSD_KEY_DL_ERROR,
|
||||
_LIBC_TSD_KEY_RPC_VARS,
|
||||
_LIBC_TSD_KEY_LOCALE,
|
||||
_LIBC_TSD_KEY_CTYPE_B,
|
||||
_LIBC_TSD_KEY_CTYPE_TOLOWER,
|
||||
_LIBC_TSD_KEY_CTYPE_TOUPPER,
|
||||
_LIBC_TSD_KEY_N };
|
||||
|
||||
#include <linuxthreads/descr.h>
|
||||
#include <tls.h>
|
||||
|
||||
#if USE_TLS && HAVE___THREAD
|
||||
@ -39,26 +30,25 @@ enum __libc_tsd_key_t { _LIBC_TSD_KEY_MALLOC = 0,
|
||||
|
||||
#else
|
||||
|
||||
extern void *(*__libc_internal_tsd_get) (enum __libc_tsd_key_t) __THROW;
|
||||
extern int (*__libc_internal_tsd_set) (enum __libc_tsd_key_t,
|
||||
__const void *) __THROW;
|
||||
extern void **(*const __libc_internal_tsd_address) (enum __libc_tsd_key_t)
|
||||
__THROW __attribute__ ((__const__));
|
||||
# include <bits/libc-lock.h>
|
||||
|
||||
#define __libc_tsd_address(KEY) \
|
||||
(__libc_internal_tsd_address != NULL \
|
||||
? __libc_internal_tsd_address (_LIBC_TSD_KEY_##KEY) \
|
||||
: &__libc_tsd_##KEY##_data)
|
||||
# ifndef SHARED
|
||||
weak_extern (__pthread_internal_tsd_address)
|
||||
weak_extern (__pthread_internal_tsd_get)
|
||||
weak_extern (__pthread_internal_tsd_set)
|
||||
# endif
|
||||
|
||||
#define __libc_tsd_define(CLASS, KEY) CLASS void *__libc_tsd_##KEY##_data;
|
||||
#define __libc_tsd_address(KEY) \
|
||||
__libc_maybe_call2 (pthread_internal_tsd_address, \
|
||||
(_LIBC_TSD_KEY_##KEY), &__libc_tsd_##KEY##_data)
|
||||
#define __libc_tsd_get(KEY) \
|
||||
(__libc_internal_tsd_get != NULL \
|
||||
? __libc_internal_tsd_get (_LIBC_TSD_KEY_##KEY) \
|
||||
: __libc_tsd_##KEY##_data)
|
||||
__libc_maybe_call2 (pthread_internal_tsd_get, \
|
||||
(_LIBC_TSD_KEY_##KEY), __libc_tsd_##KEY##_data)
|
||||
#define __libc_tsd_set(KEY, VALUE) \
|
||||
(__libc_internal_tsd_set != NULL \
|
||||
? __libc_internal_tsd_set (_LIBC_TSD_KEY_##KEY, (VALUE)) \
|
||||
: ((__libc_tsd_##KEY##_data = (VALUE)), 0))
|
||||
__libc_maybe_call2 (pthread_internal_tsd_set, \
|
||||
(_LIBC_TSD_KEY_##KEY, (VALUE)), \
|
||||
(__libc_tsd_##KEY##_data = (VALUE), 0))
|
||||
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user