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