xref: /freebsd-src/lib/libc/include/resolv_mt.h (revision 65e96449c14c00e862c3664803ead4b8aa9ba4b7)
1*65e96449SHajimu UMEMOTO #ifndef _RESOLV_MT_H
2*65e96449SHajimu UMEMOTO #define _RESOLV_MT_H
3*65e96449SHajimu UMEMOTO 
4*65e96449SHajimu UMEMOTO #include <sys/types.h>
5*65e96449SHajimu UMEMOTO #include <netinet/in.h>
6*65e96449SHajimu UMEMOTO #include <arpa/nameser.h>
7*65e96449SHajimu UMEMOTO #include <resolv.h>
8*65e96449SHajimu UMEMOTO 
9*65e96449SHajimu UMEMOTO /* Access functions for the libresolv private interface */
10*65e96449SHajimu UMEMOTO 
11*65e96449SHajimu UMEMOTO int	__res_enable_mt(void);
12*65e96449SHajimu UMEMOTO int	__res_disable_mt(void);
13*65e96449SHajimu UMEMOTO 
14*65e96449SHajimu UMEMOTO /* Per-thread context */
15*65e96449SHajimu UMEMOTO 
16*65e96449SHajimu UMEMOTO typedef struct {
17*65e96449SHajimu UMEMOTO int	no_hosts_fallback_private;
18*65e96449SHajimu UMEMOTO int	retry_save;
19*65e96449SHajimu UMEMOTO int	retry_private;
20*65e96449SHajimu UMEMOTO char	inet_nsap_ntoa_tmpbuf[255*3];
21*65e96449SHajimu UMEMOTO char	sym_ntos_unname[20];
22*65e96449SHajimu UMEMOTO char	sym_ntop_unname[20];
23*65e96449SHajimu UMEMOTO char	p_option_nbuf[40];
24*65e96449SHajimu UMEMOTO char	p_time_nbuf[40];
25*65e96449SHajimu UMEMOTO char	precsize_ntoa_retbuf[sizeof "90000000.00"];
26*65e96449SHajimu UMEMOTO char	loc_ntoa_tmpbuf[sizeof
27*65e96449SHajimu UMEMOTO "1000 60 60.000 N 1000 60 60.000 W -12345678.00m 90000000.00m 90000000.00m 90000000.00m"];
28*65e96449SHajimu UMEMOTO char	p_secstodate_output[15];
29*65e96449SHajimu UMEMOTO } mtctxres_t;
30*65e96449SHajimu UMEMOTO 
31*65e96449SHajimu UMEMOTO /* Thread-specific data (TSD) */
32*65e96449SHajimu UMEMOTO 
33*65e96449SHajimu UMEMOTO mtctxres_t	*___mtctxres(void);
34*65e96449SHajimu UMEMOTO #define mtctxres	(___mtctxres())
35*65e96449SHajimu UMEMOTO 
36*65e96449SHajimu UMEMOTO /* Various static data that should be TSD */
37*65e96449SHajimu UMEMOTO 
38*65e96449SHajimu UMEMOTO #define sym_ntos_unname		(mtctxres->sym_ntos_unname)
39*65e96449SHajimu UMEMOTO #define sym_ntop_unname		(mtctxres->sym_ntop_unname)
40*65e96449SHajimu UMEMOTO #define inet_nsap_ntoa_tmpbuf	(mtctxres->inet_nsap_ntoa_tmpbuf)
41*65e96449SHajimu UMEMOTO #define p_option_nbuf		(mtctxres->p_option_nbuf)
42*65e96449SHajimu UMEMOTO #define p_time_nbuf		(mtctxres->p_time_nbuf)
43*65e96449SHajimu UMEMOTO #define precsize_ntoa_retbuf	(mtctxres->precsize_ntoa_retbuf)
44*65e96449SHajimu UMEMOTO #define loc_ntoa_tmpbuf		(mtctxres->loc_ntoa_tmpbuf)
45*65e96449SHajimu UMEMOTO #define p_secstodate_output	(mtctxres->p_secstodate_output)
46*65e96449SHajimu UMEMOTO 
47*65e96449SHajimu UMEMOTO #endif /* _RESOLV_MT_H */
48