xref: /dflybsd-src/lib/libc/include/resolv_mt.h (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
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