2N/A#ifndef _RESOLV_MT_H
2N/A#define _RESOLV_MT_H
2N/A
2N/A#include <sys/types.h>
2N/A#include <netinet/in.h>
2N/A#include <arpa/nameser.h>
2N/A#include <resolv.h>
2N/A
2N/A/* Access functions for the libresolv private interface */
2N/A
2N/Aint __res_enable_mt(void);
2N/Aint __res_disable_mt(void);
2N/A
2N/A/* Per-thread context */
2N/A
2N/Atypedef struct {
2N/Aint no_hosts_fallback_private;
2N/Aint retry_save;
2N/Aint retry_private;
2N/Achar inet_nsap_ntoa_tmpbuf[255*3];
2N/Achar sym_ntos_unname[20];
2N/Achar sym_ntop_unname[20];
2N/Achar p_option_nbuf[40];
2N/Achar p_time_nbuf[40];
2N/Achar precsize_ntoa_retbuf[sizeof "90000000.00"];
2N/Achar loc_ntoa_tmpbuf[sizeof
2N/A"1000 60 60.000 N 1000 60 60.000 W -12345678.00m 90000000.00m 90000000.00m 90000000.00m"];
2N/Achar p_secstodate_output[15];
2N/A} mtctxres_t;
2N/A
2N/A/* Thread-specific data (TSD) */
2N/A
2N/Amtctxres_t *___mtctxres(void);
2N/A#define mtctxres (___mtctxres())
2N/A
2N/A/* Various static data that should be TSD */
2N/A
2N/A#define sym_ntos_unname (mtctxres->sym_ntos_unname)
2N/A#define sym_ntop_unname (mtctxres->sym_ntop_unname)
2N/A#define inet_nsap_ntoa_tmpbuf (mtctxres->inet_nsap_ntoa_tmpbuf)
2N/A#define p_option_nbuf (mtctxres->p_option_nbuf)
2N/A#define p_time_nbuf (mtctxres->p_time_nbuf)
2N/A#define precsize_ntoa_retbuf (mtctxres->precsize_ntoa_retbuf)
2N/A#define loc_ntoa_tmpbuf (mtctxres->loc_ntoa_tmpbuf)
2N/A#define p_secstodate_output (mtctxres->p_secstodate_output)
2N/A
2N/A#endif /* _RESOLV_MT_H */