From d21497f9fba95688e464ae712bd6b4c0fbc4ea13 Mon Sep 17 00:00:00 2001 From: Austin Foxley Date: Sat, 19 Sep 2009 09:54:20 -0700 Subject: include/: add tls errno and res_state Signed-off-by: Austin Foxley --- include/resolv.h | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'include/resolv.h') diff --git a/include/resolv.h b/include/resolv.h index fc2fa9b99..e0cd35db1 100644 --- a/include/resolv.h +++ b/include/resolv.h @@ -279,14 +279,10 @@ struct res_sym { /* 0x00008000 */ /* Things involving an internal (static) resolver context. */ -#if 0 __BEGIN_DECLS extern struct __res_state *__res_state(void) __attribute__ ((__const__)); __END_DECLS #define _res (*__res_state()) -#else -extern struct __res_state _res; -#endif #define fp_nquery __fp_nquery #define fp_query __fp_query @@ -425,6 +421,24 @@ int res_nsend (res_state, const u_char *, int, u_char *, int) __THROW; void res_nclose (res_state) __THROW; __END_DECLS -#endif + +# if _LIBC +# ifdef __UCLIBC_HAS_THREADS__ +# if defined __UCLIBC_HAS_TLS__ \ + && (!defined NOT_IN_libc || defined IS_IN_libpthread) +# undef _res +# ifndef NOT_IN_libc +# define __resp __libc_resp +# endif +# define _res (*__resp) +extern __thread struct __res_state *__resp attribute_tls_model_ie; +# endif +# else +# undef _res +# define _res (*__resp) +extern struct __res_state *__resp; +# endif /* __UCLIBC_HAS_TLS__ */ +# endif /* __UCLIBC_HAS_THREADS__ */ +# endif /* _LIBC */ #endif /* !_RESOLV_H_ */ -- cgit v1.2.3