a4dce8963d3dafd6607ff63295e7f18d494ec639
[platform/upstream/c-ares.git] / ares_nowarn.c
1
2 /* Copyright (C) 2010-2012 by Daniel Stenberg
3  *
4  * Permission to use, copy, modify, and distribute this
5  * software and its documentation for any purpose and without
6  * fee is hereby granted, provided that the above copyright
7  * notice appear in all copies and that both that copyright
8  * notice and this permission notice appear in supporting
9  * documentation, and that the name of M.I.T. not be used in
10  * advertising or publicity pertaining to distribution of the
11  * software without specific, written prior permission.
12  * M.I.T. makes no representations about the suitability of
13  * this software for any purpose.  It is provided "as is"
14  * without express or implied warranty.
15  */
16
17
18 #include "ares_setup.h"
19
20 #ifdef HAVE_ASSERT_H
21 #  include <assert.h>
22 #endif
23
24 #if defined(__INTEL_COMPILER) && defined(__unix__)
25
26 #ifdef HAVE_NETINET_IN_H
27 #  include <netinet/in.h>
28 #endif
29 #ifdef HAVE_ARPA_INET_H
30 #  include <arpa/inet.h>
31 #endif
32
33 #endif /* __INTEL_COMPILER && __unix__ */
34
35 #define BUILDING_ARES_NOWARN_C 1
36
37 #include "ares_nowarn.h"
38
39 #if (SIZEOF_SHORT == 2)
40 #  define CARES_MASK_SSHORT  0x7FFF
41 #  define CARES_MASK_USHORT  0xFFFF
42 #elif (SIZEOF_SHORT == 4)
43 #  define CARES_MASK_SSHORT  0x7FFFFFFF
44 #  define CARES_MASK_USHORT  0xFFFFFFFF
45 #elif (SIZEOF_SHORT == 8)
46 #  define CARES_MASK_SSHORT  0x7FFFFFFFFFFFFFFF
47 #  define CARES_MASK_USHORT  0xFFFFFFFFFFFFFFFF
48 #else
49 #  error "SIZEOF_SHORT not defined"
50 #endif
51
52 #if (SIZEOF_INT == 2)
53 #  define CARES_MASK_SINT  0x7FFF
54 #  define CARES_MASK_UINT  0xFFFF
55 #elif (SIZEOF_INT == 4)
56 #  define CARES_MASK_SINT  0x7FFFFFFF
57 #  define CARES_MASK_UINT  0xFFFFFFFF
58 #elif (SIZEOF_INT == 8)
59 #  define CARES_MASK_SINT  0x7FFFFFFFFFFFFFFF
60 #  define CARES_MASK_UINT  0xFFFFFFFFFFFFFFFF
61 #elif (SIZEOF_INT == 16)
62 #  define CARES_MASK_SINT  0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
63 #  define CARES_MASK_UINT  0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
64 #else
65 #  error "SIZEOF_INT not defined"
66 #endif
67
68 #if (CARES_SIZEOF_LONG == 2)
69 #  define CARES_MASK_SLONG  0x7FFFL
70 #  define CARES_MASK_ULONG  0xFFFFUL
71 #elif (CARES_SIZEOF_LONG == 4)
72 #  define CARES_MASK_SLONG  0x7FFFFFFFL
73 #  define CARES_MASK_ULONG  0xFFFFFFFFUL
74 #elif (CARES_SIZEOF_LONG == 8)
75 #  define CARES_MASK_SLONG  0x7FFFFFFFFFFFFFFFL
76 #  define CARES_MASK_ULONG  0xFFFFFFFFFFFFFFFFUL
77 #elif (CARES_SIZEOF_LONG == 16)
78 #  define CARES_MASK_SLONG  0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFL
79 #  define CARES_MASK_ULONG  0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFUL
80 #else
81 #  error "CARES_SIZEOF_LONG not defined"
82 #endif
83
84 /*
85 ** unsigned size_t to signed long
86 */
87
88 long aresx_uztosl(size_t uznum)
89 {
90 #ifdef __INTEL_COMPILER
91 #  pragma warning(push)
92 #  pragma warning(disable:810) /* conversion may lose significant bits */
93 #endif
94
95   return (long)(uznum & (size_t) CARES_MASK_SLONG);
96
97 #ifdef __INTEL_COMPILER
98 #  pragma warning(pop)
99 #endif
100 }
101
102 /*
103 ** unsigned size_t to signed int
104 */
105
106 int aresx_uztosi(size_t uznum)
107 {
108 #ifdef __INTEL_COMPILER
109 #  pragma warning(push)
110 #  pragma warning(disable:810) /* conversion may lose significant bits */
111 #endif
112
113   return (int)(uznum & (size_t) CARES_MASK_SINT);
114
115 #ifdef __INTEL_COMPILER
116 #  pragma warning(pop)
117 #endif
118 }
119
120 /*
121 ** unsigned size_t to signed short
122 */
123
124 short aresx_uztoss(size_t uznum)
125 {
126 #ifdef __INTEL_COMPILER
127 #  pragma warning(push)
128 #  pragma warning(disable:810) /* conversion may lose significant bits */
129 #endif
130
131   return (short)(uznum & (size_t) CARES_MASK_SSHORT);
132
133 #ifdef __INTEL_COMPILER
134 #  pragma warning(pop)
135 #endif
136 }
137
138 /*
139 ** signed int to signed short
140 */
141
142 short aresx_sitoss(int sinum)
143 {
144 #ifdef __INTEL_COMPILER
145 #  pragma warning(push)
146 #  pragma warning(disable:810) /* conversion may lose significant bits */
147 #endif
148
149   DEBUGASSERT(sinum >= 0);
150   return (short)(sinum & (int) CARES_MASK_SSHORT);
151
152 #ifdef __INTEL_COMPILER
153 #  pragma warning(pop)
154 #endif
155 }
156
157 /*
158 ** signed long to signed int
159 */
160
161 int aresx_sltosi(long slnum)
162 {
163 #ifdef __INTEL_COMPILER
164 #  pragma warning(push)
165 #  pragma warning(disable:810) /* conversion may lose significant bits */
166 #endif
167
168   DEBUGASSERT(slnum >= 0);
169   return (int)(slnum & (long) CARES_MASK_SINT);
170
171 #ifdef __INTEL_COMPILER
172 #  pragma warning(pop)
173 #endif
174 }
175
176 /*
177 ** signed ssize_t to signed int
178 */
179
180 int aresx_sztosi(ssize_t sznum)
181 {
182 #ifdef __INTEL_COMPILER
183 #  pragma warning(push)
184 #  pragma warning(disable:810) /* conversion may lose significant bits */
185 #endif
186
187   DEBUGASSERT(sznum >= 0);
188   return (int)(sznum & (ssize_t) CARES_MASK_SINT);
189
190 #ifdef __INTEL_COMPILER
191 #  pragma warning(pop)
192 #endif
193 }
194
195 /*
196 ** signed ssize_t to unsigned int
197 */
198
199 unsigned int aresx_sztoui(ssize_t sznum)
200 {
201 #ifdef __INTEL_COMPILER
202 #  pragma warning(push)
203 #  pragma warning(disable:810) /* conversion may lose significant bits */
204 #endif
205
206   DEBUGASSERT(sznum >= 0);
207   return (unsigned int)(sznum & (ssize_t) CARES_MASK_UINT);
208
209 #ifdef __INTEL_COMPILER
210 #  pragma warning(pop)
211 #endif
212 }
213
214 /*
215 ** signed int to unsigned short
216 */
217
218 unsigned short aresx_sitous(int sinum)
219 {
220 #ifdef __INTEL_COMPILER
221 #  pragma warning(push)
222 #  pragma warning(disable:810) /* conversion may lose significant bits */
223 #endif
224
225   DEBUGASSERT(sinum >= 0);
226   return (unsigned short)(sinum & (int) CARES_MASK_USHORT);
227
228 #ifdef __INTEL_COMPILER
229 #  pragma warning(pop)
230 #endif
231 }
232
233 #if defined(__INTEL_COMPILER) && defined(__unix__)
234
235 int aresx_FD_ISSET(int fd, fd_set *fdset)
236 {
237   #pragma warning(push)
238   #pragma warning(disable:1469) /* clobber ignored */
239   return FD_ISSET(fd, fdset);
240   #pragma warning(pop)
241 }
242
243 void aresx_FD_SET(int fd, fd_set *fdset)
244 {
245   #pragma warning(push)
246   #pragma warning(disable:1469) /* clobber ignored */
247   FD_SET(fd, fdset);
248   #pragma warning(pop)
249 }
250
251 void aresx_FD_ZERO(fd_set *fdset)
252 {
253   #pragma warning(push)
254   #pragma warning(disable:593) /* variable was set but never used */
255   FD_ZERO(fdset);
256   #pragma warning(pop)
257 }
258
259 unsigned short aresx_htons(unsigned short usnum)
260 {
261 #if (__INTEL_COMPILER == 910) && defined(__i386__)
262   return (unsigned short)(((usnum << 8) & 0xFF00) | ((usnum >> 8) & 0x00FF));
263 #else
264   #pragma warning(push)
265   #pragma warning(disable:810) /* conversion may lose significant bits */
266   return htons(usnum);
267   #pragma warning(pop)
268 #endif
269 }
270
271 unsigned short aresx_ntohs(unsigned short usnum)
272 {
273 #if (__INTEL_COMPILER == 910) && defined(__i386__)
274   return (unsigned short)(((usnum << 8) & 0xFF00) | ((usnum >> 8) & 0x00FF));
275 #else
276   #pragma warning(push)
277   #pragma warning(disable:810) /* conversion may lose significant bits */
278   return ntohs(usnum);
279   #pragma warning(pop)
280 #endif
281 }
282
283 #endif /* __INTEL_COMPILER && __unix__ */