11dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/*	$NetBSD: nameser_compat.h,v 1.1.1.2 2004/11/07 01:28:27 christos Exp $	*/
21dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
31dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* Copyright (c) 1983, 1989
41dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *    The Regents of the University of California.  All rights reserved.
51dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *
61dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Redistribution and use in source and binary forms, with or without
71dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * modification, are permitted provided that the following conditions
81dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * are met:
91dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * 1. Redistributions of source code must retain the above copyright
101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright
121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *    notice, this list of conditions and the following disclaimer in the
131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *    documentation and/or other materials provided with the distribution.
141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * 3. All advertising materials mentioning features or use of this software
151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *    must display the following acknowledgement:
161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * 	This product includes software developed by the University of
171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * 	California, Berkeley and its contributors.
181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * 4. Neither the name of the University nor the names of its contributors
191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *    may be used to endorse or promote products derived from this software
201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *    without specific prior written permission.
211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *
221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * SUCH DAMAGE.
331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */
341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/*
361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project *      from nameser.h	8.1 (Berkeley) 6/2/93
37fcb502e3ec032497bba7f8634fb214e0c05394d8Calin Juravle *	Id: nameser_compat.h,v 1.8 2006/05/19 02:33:40 marka Exp
381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */
391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifndef _ARPA_NAMESER_COMPAT_
411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	_ARPA_NAMESER_COMPAT_
421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <endian.h>
44203e13d97de840e01eded6a267fef9f245cf3a15Elliott Hughes#include <sys/cdefs.h>
45203e13d97de840e01eded6a267fef9f245cf3a15Elliott Hughes
46203e13d97de840e01eded6a267fef9f245cf3a15Elliott Hughes#define	__BIND		19950621	/* (DEAD) interface version stamp. */
471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/*
491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * Structure for query header.  The order of the fields is machine- and
501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * compiler-dependent, depending on the byte/bit order and the layout
511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * of bit fields.  We use bit fields only in int variables, as this
521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project * is all ANSI requires.  This requires a somewhat confusing rearrangement.
531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project */
541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projecttypedef struct {
561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	id :16;		/* query identification number */
571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project			/* fields in third byte */
581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	rd :1;		/* recursion desired */
591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	tc :1;		/* truncated message */
601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	aa :1;		/* authoritive answer */
611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	opcode :4;	/* purpose of message */
621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	qr :1;		/* response flag */
631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project			/* fields in fourth byte */
641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	rcode :4;	/* response code */
651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	cd: 1;		/* checking disabled by resolver */
661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	ad: 1;		/* authentic data from named */
671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	unused :1;	/* unused bits (MBZ as of 4.9.3a3) */
681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	ra :1;		/* recursion available */
691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project			/* remaining bytes */
701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	qdcount :16;	/* number of question entries */
711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	ancount :16;	/* number of answer entries */
721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	nscount :16;	/* number of authority entries */
731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project	unsigned	arcount :16;	/* number of resource entries */
741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project} HEADER;
751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define PACKETSZ	NS_PACKETSZ
771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MAXDNAME	NS_MAXDNAME
781dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MAXCDNAME	NS_MAXCDNAME
791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MAXLABEL	NS_MAXLABEL
801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	HFIXEDSZ	NS_HFIXEDSZ
811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define QFIXEDSZ	NS_QFIXEDSZ
821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define RRFIXEDSZ	NS_RRFIXEDSZ
831dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	INT32SZ		NS_INT32SZ
841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	INT16SZ		NS_INT16SZ
851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	INT8SZ		NS_INT8SZ
861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	INADDRSZ	NS_INADDRSZ
871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	IN6ADDRSZ	NS_IN6ADDRSZ
881dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	INDIR_MASK	NS_CMPRSFLGS
891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define NAMESERVER_PORT	NS_DEFAULTPORT
901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define S_ZONE		ns_s_zn
921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define S_PREREQ	ns_s_pr
931dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define S_UPDATE	ns_s_ud
941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define S_ADDT		ns_s_ar
951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define QUERY		ns_o_query
971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define IQUERY		ns_o_iquery
981dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define STATUS		ns_o_status
991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	NS_NOTIFY_OP	ns_o_notify
1001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	NS_UPDATE_OP	ns_o_update
1011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define NOERROR		ns_r_noerror
1031dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define FORMERR		ns_r_formerr
1041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define SERVFAIL	ns_r_servfail
1051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define NXDOMAIN	ns_r_nxdomain
1061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define NOTIMP		ns_r_notimpl
1071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define REFUSED		ns_r_refused
1081dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define YXDOMAIN	ns_r_yxdomain
1091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define YXRRSET		ns_r_yxrrset
1101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define NXRRSET		ns_r_nxrrset
1111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define NOTAUTH		ns_r_notauth
1121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define NOTZONE		ns_r_notzone
1131dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/*#define BADSIG		ns_r_badsig*/
1141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/*#define BADKEY		ns_r_badkey*/
1151dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/*#define BADTIME		ns_r_badtime*/
1161dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define DELETE		ns_uop_delete
1191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define ADD		ns_uop_add
1201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_A		ns_t_a
1221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_NS		ns_t_ns
1231dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_MD		ns_t_md
1241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_MF		ns_t_mf
1251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_CNAME		ns_t_cname
1261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_SOA		ns_t_soa
1271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_MB		ns_t_mb
1281dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_MG		ns_t_mg
1291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_MR		ns_t_mr
1301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_NULL		ns_t_null
1311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_WKS		ns_t_wks
1321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_PTR		ns_t_ptr
1331dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_HINFO		ns_t_hinfo
1341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_MINFO		ns_t_minfo
1351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_MX		ns_t_mx
1361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_TXT		ns_t_txt
1371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_RP		ns_t_rp
1381dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_AFSDB		ns_t_afsdb
1391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_X25		ns_t_x25
1401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_ISDN		ns_t_isdn
1411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_RT		ns_t_rt
1421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_NSAP		ns_t_nsap
1431dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_NSAP_PTR	ns_t_nsap_ptr
1441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_SIG		ns_t_sig
1451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_KEY		ns_t_key
1461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_PX		ns_t_px
1471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_GPOS		ns_t_gpos
1481dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_AAAA		ns_t_aaaa
1491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_LOC		ns_t_loc
1501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_NXT		ns_t_nxt
1511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_EID		ns_t_eid
1521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_NIMLOC	ns_t_nimloc
1531dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_SRV		ns_t_srv
1541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_ATMA		ns_t_atma
1551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_NAPTR		ns_t_naptr
1561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_A6		ns_t_a6
1571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_TSIG		ns_t_tsig
1581dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	T_IXFR		ns_t_ixfr
1591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_AXFR		ns_t_axfr
1601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_MAILB		ns_t_mailb
1611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_MAILA		ns_t_maila
1621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define T_ANY		ns_t_any
1631dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define C_IN		ns_c_in
1651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define C_CHAOS		ns_c_chaos
1661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define C_HS		ns_c_hs
1671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/* BIND_UPDATE */
1681dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define C_NONE		ns_c_none
1691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define C_ANY		ns_c_any
1701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	GETSHORT		NS_GET16
1721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	GETLONG			NS_GET32
1731dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	PUTSHORT		NS_PUT16
1741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define	PUTLONG			NS_PUT32
1751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project
1761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif /* _ARPA_NAMESER_COMPAT_ */
177