]> git.proxmox.com Git - mirror_edk2.git/blame - StdLib/Include/arpa/nameser_compat.h
StdLib: Remove EfiSocketLib and Ip4Config Protocol dependency.
[mirror_edk2.git] / StdLib / Include / arpa / nameser_compat.h
CommitLineData
2aa62f2b 1/* $NetBSD: nameser_compat.h,v 1.1.1.2.10.1 2007/05/17 21:25:12 jdc Exp $ */\r
2\r
3/* Copyright (c) 1983, 1989\r
4 * The Regents of the University of California. All rights reserved.\r
5 * \r
6 * Redistribution and use in source and binary forms, with or without\r
7 * modification, are permitted provided that the following conditions\r
8 * are met:\r
9 * 1. Redistributions of source code must retain the above copyright\r
10 * notice, this list of conditions and the following disclaimer.\r
11 * 2. Redistributions in binary form must reproduce the above copyright\r
12 * notice, this list of conditions and the following disclaimer in the\r
13 * documentation and/or other materials provided with the distribution.\r
14 * 3. All advertising materials mentioning features or use of this software\r
15 * must display the following acknowledgement:\r
16 * This product includes software developed by the University of\r
17 * California, Berkeley and its contributors.\r
18 * 4. Neither the name of the University nor the names of its contributors\r
19 * may be used to endorse or promote products derived from this software\r
20 * without specific prior written permission.\r
21 * \r
22 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
23 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
32 * SUCH DAMAGE.\r
33 */\r
34\r
35/*%\r
36 * from nameser.h 8.1 (Berkeley) 6/2/93\r
37 * Id: nameser_compat.h,v 1.5.18.3 2006/05/19 02:36:00 marka Exp\r
38 */\r
39\r
40#ifndef _ARPA_NAMESER_COMPAT_\r
41#define _ARPA_NAMESER_COMPAT_\r
42\r
43#define __BIND 19950621 /*%< (DEAD) interface version stamp. */\r
44\r
45#ifndef BYTE_ORDER\r
46#if (BSD >= 199103)\r
47# include <machine/endian.h>\r
48#else\r
49#ifdef __linux\r
50# include <endian.h>\r
51#else\r
52#define LITTLE_ENDIAN 1234 /*%< least-significant byte first (vax, pc) */\r
53#define BIG_ENDIAN 4321 /*%< most-significant byte first (IBM, net) */\r
54#define PDP_ENDIAN 3412 /*%< LSB first in word, MSW first in long (pdp) */\r
55\r
56#if defined(vax) || defined(ns32000) || defined(sun386) || defined(i386) || \\r
57 defined(MIPSEL) || defined(_MIPSEL) || defined(BIT_ZERO_ON_RIGHT) || \\r
58 defined(__i386__) || defined(__i386) || defined(__amd64__) || \\r
59 defined(__x86_64__) || defined(MIPSEL) || defined(_MIPSEL) || \\r
60 defined(BIT_ZERO_ON_RIGHT) || defined(__alpha__) || defined(__alpha) || \\r
61 (defined(__Lynx__) && defined(__x86__))\r
62#define BYTE_ORDER LITTLE_ENDIAN\r
63#endif\r
64\r
65#if defined(sel) || defined(pyr) || defined(mc68000) || defined(sparc) || \\r
66 defined(is68k) || defined(tahoe) || defined(ibm032) || defined(ibm370) || \\r
67 defined(MIPSEB) || defined(_MIPSEB) || defined(_IBMR2) || defined(DGUX) ||\\r
68 defined(apollo) || defined(__convex__) || defined(_CRAY) || \\r
69 defined(__hppa) || defined(__hp9000) || \\r
70 defined(__hp9000s300) || defined(__hp9000s700) || \\r
71 defined(__hp3000s900) || defined(__hpux) || defined(MPE) || \\r
72 defined (BIT_ZERO_ON_LEFT) || defined(m68k) || defined(__sparc) || \\r
73 (defined(__Lynx__) && \\r
74 (defined(__68k__) || defined(__sparc__) || defined(__powerpc__)))\r
75#define BYTE_ORDER BIG_ENDIAN\r
76#endif\r
77#endif /* __linux */\r
78#endif /* BSD */\r
79#endif /* BYTE_ORDER */\r
80\r
81#if !defined(BYTE_ORDER) || \\r
82 (BYTE_ORDER != BIG_ENDIAN && BYTE_ORDER != LITTLE_ENDIAN && \\r
83 BYTE_ORDER != PDP_ENDIAN)\r
84 /* you must determine what the correct bit order is for\r
85 * your compiler - the next line is an intentional error\r
86 * which will force your compiles to bomb until you fix\r
87 * the above macros.\r
88 */\r
89 error "Undefined or invalid BYTE_ORDER";\r
90#endif\r
91\r
92/*%\r
93 * Structure for query header. The order of the fields is machine- and\r
94 * compiler-dependent, depending on the byte/bit order and the layout\r
95 * of bit fields. We use bit fields only in int variables, as this\r
96 * is all ANSI requires. This requires a somewhat confusing rearrangement.\r
97 */\r
98\r
99typedef struct {\r
100 unsigned id :16; /*%< query identification number */\r
101#if BYTE_ORDER == BIG_ENDIAN\r
102 /* fields in third byte */\r
103 unsigned qr: 1; /*%< response flag */\r
104 unsigned opcode: 4; /*%< purpose of message */\r
105 unsigned aa: 1; /*%< authoritive answer */\r
106 unsigned tc: 1; /*%< truncated message */\r
107 unsigned rd: 1; /*%< recursion desired */\r
108 /* fields in fourth byte */\r
109 unsigned ra: 1; /*%< recursion available */\r
110 unsigned unused :1; /*%< unused bits (MBZ as of 4.9.3a3) */\r
111 unsigned ad: 1; /*%< authentic data from named */\r
112 unsigned cd: 1; /*%< checking disabled by resolver */\r
113 unsigned rcode :4; /*%< response code */\r
114#endif\r
115#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN\r
116 /* fields in third byte */\r
117 unsigned rd :1; /*%< recursion desired */\r
118 unsigned tc :1; /*%< truncated message */\r
119 unsigned aa :1; /*%< authoritive answer */\r
120 unsigned opcode :4; /*%< purpose of message */\r
121 unsigned qr :1; /*%< response flag */\r
122 /* fields in fourth byte */\r
123 unsigned rcode :4; /*%< response code */\r
124 unsigned cd: 1; /*%< checking disabled by resolver */\r
125 unsigned ad: 1; /*%< authentic data from named */\r
126 unsigned unused :1; /*%< unused bits (MBZ as of 4.9.3a3) */\r
127 unsigned ra :1; /*%< recursion available */\r
128#endif\r
129 /* remaining bytes */\r
130 unsigned qdcount :16; /*%< number of question entries */\r
131 unsigned ancount :16; /*%< number of answer entries */\r
132 unsigned nscount :16; /*%< number of authority entries */\r
133 unsigned arcount :16; /*%< number of resource entries */\r
134} HEADER;\r
135\r
136#define PACKETSZ NS_PACKETSZ\r
137#define MAXDNAME NS_MAXDNAME\r
138#define MAXCDNAME NS_MAXCDNAME\r
139#define MAXLABEL NS_MAXLABEL\r
140#define HFIXEDSZ NS_HFIXEDSZ\r
141#define QFIXEDSZ NS_QFIXEDSZ\r
142#define RRFIXEDSZ NS_RRFIXEDSZ\r
143#define INT32SZ NS_INT32SZ\r
144#define INT16SZ NS_INT16SZ\r
145#define INT8SZ NS_INT8SZ\r
146#define INADDRSZ NS_INADDRSZ\r
147#define IN6ADDRSZ NS_IN6ADDRSZ\r
148#define INDIR_MASK NS_CMPRSFLGS\r
149#define NAMESERVER_PORT NS_DEFAULTPORT\r
150\r
151#define S_ZONE ns_s_zn\r
152#define S_PREREQ ns_s_pr\r
153#define S_UPDATE ns_s_ud\r
154#define S_ADDT ns_s_ar\r
155\r
156#define QUERY ns_o_query\r
157#define IQUERY ns_o_iquery\r
158#define STATUS ns_o_status\r
159#define NS_NOTIFY_OP ns_o_notify\r
160#define NS_UPDATE_OP ns_o_update\r
161\r
162#define NOERROR ns_r_noerror\r
163#define FORMERR ns_r_formerr\r
164#define SERVFAIL ns_r_servfail\r
165#define NXDOMAIN ns_r_nxdomain\r
166#define NOTIMP ns_r_notimpl\r
167#define REFUSED ns_r_refused\r
168#define YXDOMAIN ns_r_yxdomain\r
169#define YXRRSET ns_r_yxrrset\r
170#define NXRRSET ns_r_nxrrset\r
171#define NOTAUTH ns_r_notauth\r
172#define NOTZONE ns_r_notzone\r
173/*#define BADSIG ns_r_badsig*/\r
174/*#define BADKEY ns_r_badkey*/\r
175/*#define BADTIME ns_r_badtime*/\r
176\r
177\r
178#define DELETE ns_uop_delete\r
179#define ADD ns_uop_add\r
180\r
181#define T_A ns_t_a\r
182#define T_NS ns_t_ns\r
183#define T_MD ns_t_md\r
184#define T_MF ns_t_mf\r
185#define T_CNAME ns_t_cname\r
186#define T_SOA ns_t_soa\r
187#define T_MB ns_t_mb\r
188#define T_MG ns_t_mg\r
189#define T_MR ns_t_mr\r
190#define T_NULL ns_t_null\r
191#define T_WKS ns_t_wks\r
192#define T_PTR ns_t_ptr\r
193#define T_HINFO ns_t_hinfo\r
194#define T_MINFO ns_t_minfo\r
195#define T_MX ns_t_mx\r
196#define T_TXT ns_t_txt\r
197#define T_RP ns_t_rp\r
198#define T_AFSDB ns_t_afsdb\r
199#define T_X25 ns_t_x25\r
200#define T_ISDN ns_t_isdn\r
201#define T_RT ns_t_rt\r
202#define T_NSAP ns_t_nsap\r
203#define T_NSAP_PTR ns_t_nsap_ptr\r
204#define T_SIG ns_t_sig\r
205#define T_KEY ns_t_key\r
206#define T_PX ns_t_px\r
207#define T_GPOS ns_t_gpos\r
208#define T_AAAA ns_t_aaaa\r
209#define T_LOC ns_t_loc\r
210#define T_NXT ns_t_nxt\r
211#define T_EID ns_t_eid\r
212#define T_NIMLOC ns_t_nimloc\r
213#define T_SRV ns_t_srv\r
214#define T_ATMA ns_t_atma\r
215#define T_NAPTR ns_t_naptr\r
216#define T_A6 ns_t_a6\r
217#define T_TSIG ns_t_tsig\r
218#define T_IXFR ns_t_ixfr\r
219#define T_AXFR ns_t_axfr\r
220#define T_MAILB ns_t_mailb\r
221#define T_MAILA ns_t_maila\r
222#define T_ANY ns_t_any\r
223\r
224#define C_IN ns_c_in\r
225#define C_CHAOS ns_c_chaos\r
226#define C_HS ns_c_hs\r
227/* BIND_UPDATE */\r
228#define C_NONE ns_c_none\r
229#define C_ANY ns_c_any\r
230\r
231#define GETSHORT NS_GET16\r
232#define GETLONG NS_GET32\r
233#define PUTSHORT NS_PUT16\r
234#define PUTLONG NS_PUT32\r
235\r
236#endif /* _ARPA_NAMESER_COMPAT_ */\r