186d7f5d3SJohn Marino #ifndef _RESOLV_MT_H 286d7f5d3SJohn Marino #define _RESOLV_MT_H 386d7f5d3SJohn Marino 486d7f5d3SJohn Marino #include <sys/types.h> 586d7f5d3SJohn Marino #include <netinet/in.h> 686d7f5d3SJohn Marino #include <arpa/nameser.h> 786d7f5d3SJohn Marino #include <resolv.h> 886d7f5d3SJohn Marino 986d7f5d3SJohn Marino /* Access functions for the libresolv private interface */ 1086d7f5d3SJohn Marino 1186d7f5d3SJohn Marino int __res_enable_mt(void); 1286d7f5d3SJohn Marino int __res_disable_mt(void); 1386d7f5d3SJohn Marino 1486d7f5d3SJohn Marino /* Per-thread context */ 1586d7f5d3SJohn Marino 1686d7f5d3SJohn Marino typedef struct { 1786d7f5d3SJohn Marino int no_hosts_fallback_private; 1886d7f5d3SJohn Marino int retry_save; 1986d7f5d3SJohn Marino int retry_private; 2086d7f5d3SJohn Marino char inet_nsap_ntoa_tmpbuf[255*3]; 2186d7f5d3SJohn Marino char sym_ntos_unname[20]; 2286d7f5d3SJohn Marino char sym_ntop_unname[20]; 2386d7f5d3SJohn Marino char p_option_nbuf[40]; 2486d7f5d3SJohn Marino char p_time_nbuf[40]; 2586d7f5d3SJohn Marino char precsize_ntoa_retbuf[sizeof "90000000.00"]; 2686d7f5d3SJohn Marino char loc_ntoa_tmpbuf[sizeof 2786d7f5d3SJohn Marino "1000 60 60.000 N 1000 60 60.000 W -12345678.00m 90000000.00m 90000000.00m 90000000.00m"]; 2886d7f5d3SJohn Marino char p_secstodate_output[15]; 2986d7f5d3SJohn Marino } mtctxres_t; 3086d7f5d3SJohn Marino 3186d7f5d3SJohn Marino /* Thread-specific data (TSD) */ 3286d7f5d3SJohn Marino 3386d7f5d3SJohn Marino mtctxres_t *___mtctxres(void); 3486d7f5d3SJohn Marino #define mtctxres (___mtctxres()) 3586d7f5d3SJohn Marino 3686d7f5d3SJohn Marino /* Various static data that should be TSD */ 3786d7f5d3SJohn Marino 3886d7f5d3SJohn Marino #define sym_ntos_unname (mtctxres->sym_ntos_unname) 3986d7f5d3SJohn Marino #define sym_ntop_unname (mtctxres->sym_ntop_unname) 4086d7f5d3SJohn Marino #define inet_nsap_ntoa_tmpbuf (mtctxres->inet_nsap_ntoa_tmpbuf) 4186d7f5d3SJohn Marino #define p_option_nbuf (mtctxres->p_option_nbuf) 4286d7f5d3SJohn Marino #define p_time_nbuf (mtctxres->p_time_nbuf) 4386d7f5d3SJohn Marino #define precsize_ntoa_retbuf (mtctxres->precsize_ntoa_retbuf) 4486d7f5d3SJohn Marino #define loc_ntoa_tmpbuf (mtctxres->loc_ntoa_tmpbuf) 4586d7f5d3SJohn Marino #define p_secstodate_output (mtctxres->p_secstodate_output) 4686d7f5d3SJohn Marino 4786d7f5d3SJohn Marino #endif /* _RESOLV_MT_H */ 48