2 /* Copyright (C) 2010-2013 by Daniel Stenberg
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.
18 #include "ares_setup.h"
28 #if defined(__INTEL_COMPILER) && defined(__unix__)
30 #ifdef HAVE_NETINET_IN_H
31 # include <netinet/in.h>
33 #ifdef HAVE_ARPA_INET_H
34 # include <arpa/inet.h>
37 #endif /* __INTEL_COMPILER && __unix__ */
39 #define BUILDING_ARES_NOWARN_C 1
41 #include "ares_nowarn.h"
44 /* systems without <limits.h> we guess have 16 bit shorts, 32bit ints and
46 # define CARES_MASK_SSHORT 0x7FFF
47 # define CARES_MASK_USHORT 0xFFFF
48 # define CARES_MASK_SINT 0x7FFFFFFF
49 # define CARES_MASK_UINT 0xFFFFFFFF
50 # define CARES_MASK_SLONG 0x7FFFFFFFL
51 # define CARES_MASK_ULONG 0xFFFFFFFFUL
53 # define CARES_MASK_SSHORT SHRT_MAX
54 # define CARES_MASK_USHORT USHRT_MAX
55 # define CARES_MASK_SINT INT_MAX
56 # define CARES_MASK_UINT UINT_MAX
57 # define CARES_MASK_SLONG LONG_MAX
58 # define CARES_MASK_ULONG ULONG_MAX
62 ** unsigned size_t to signed long
65 long aresx_uztosl(size_t uznum)
67 #ifdef __INTEL_COMPILER
68 # pragma warning(push)
69 # pragma warning(disable:810) /* conversion may lose significant bits */
72 return (long)(uznum & (size_t) CARES_MASK_SLONG);
74 #ifdef __INTEL_COMPILER
80 ** unsigned size_t to signed int
83 int aresx_uztosi(size_t uznum)
85 #ifdef __INTEL_COMPILER
86 # pragma warning(push)
87 # pragma warning(disable:810) /* conversion may lose significant bits */
90 return (int)(uznum & (size_t) CARES_MASK_SINT);
92 #ifdef __INTEL_COMPILER
98 ** unsigned size_t to signed short
101 short aresx_uztoss(size_t uznum)
103 #ifdef __INTEL_COMPILER
104 # pragma warning(push)
105 # pragma warning(disable:810) /* conversion may lose significant bits */
108 return (short)(uznum & (size_t) CARES_MASK_SSHORT);
110 #ifdef __INTEL_COMPILER
111 # pragma warning(pop)
116 ** signed int to signed short
119 short aresx_sitoss(int sinum)
121 #ifdef __INTEL_COMPILER
122 # pragma warning(push)
123 # pragma warning(disable:810) /* conversion may lose significant bits */
126 DEBUGASSERT(sinum >= 0);
127 return (short)(sinum & (int) CARES_MASK_SSHORT);
129 #ifdef __INTEL_COMPILER
130 # pragma warning(pop)
135 ** signed long to signed int
138 int aresx_sltosi(long slnum)
140 #ifdef __INTEL_COMPILER
141 # pragma warning(push)
142 # pragma warning(disable:810) /* conversion may lose significant bits */
145 DEBUGASSERT(slnum >= 0);
146 return (int)(slnum & (long) CARES_MASK_SINT);
148 #ifdef __INTEL_COMPILER
149 # pragma warning(pop)
154 ** signed ares_ssize_t to signed int
157 int aresx_sztosi(ares_ssize_t sznum)
159 #ifdef __INTEL_COMPILER
160 # pragma warning(push)
161 # pragma warning(disable:810) /* conversion may lose significant bits */
164 DEBUGASSERT(sznum >= 0);
165 return (int)(sznum & (ares_ssize_t) CARES_MASK_SINT);
167 #ifdef __INTEL_COMPILER
168 # pragma warning(pop)
173 ** signed ares_ssize_t to unsigned int
176 unsigned int aresx_sztoui(ares_ssize_t sznum)
178 #ifdef __INTEL_COMPILER
179 # pragma warning(push)
180 # pragma warning(disable:810) /* conversion may lose significant bits */
183 DEBUGASSERT(sznum >= 0);
184 return (unsigned int)(sznum & (ares_ssize_t) CARES_MASK_UINT);
186 #ifdef __INTEL_COMPILER
187 # pragma warning(pop)
192 ** signed int to unsigned short
195 unsigned short aresx_sitous(int sinum)
197 #ifdef __INTEL_COMPILER
198 # pragma warning(push)
199 # pragma warning(disable:810) /* conversion may lose significant bits */
202 DEBUGASSERT(sinum >= 0);
203 return (unsigned short)(sinum & (int) CARES_MASK_USHORT);
205 #ifdef __INTEL_COMPILER
206 # pragma warning(pop)
210 #if defined(__INTEL_COMPILER) && defined(__unix__)
212 int aresx_FD_ISSET(int fd, fd_set *fdset)
214 #pragma warning(push)
215 #pragma warning(disable:1469) /* clobber ignored */
216 return FD_ISSET(fd, fdset);
220 void aresx_FD_SET(int fd, fd_set *fdset)
222 #pragma warning(push)
223 #pragma warning(disable:1469) /* clobber ignored */
228 void aresx_FD_ZERO(fd_set *fdset)
230 #pragma warning(push)
231 #pragma warning(disable:593) /* variable was set but never used */
236 unsigned short aresx_htons(unsigned short usnum)
238 #if (__INTEL_COMPILER == 910) && defined(__i386__)
239 return (unsigned short)(((usnum << 8) & 0xFF00) | ((usnum >> 8) & 0x00FF));
241 #pragma warning(push)
242 #pragma warning(disable:810) /* conversion may lose significant bits */
248 unsigned short aresx_ntohs(unsigned short usnum)
250 #if (__INTEL_COMPILER == 910) && defined(__i386__)
251 return (unsigned short)(((usnum << 8) & 0xFF00) | ((usnum >> 8) & 0x00FF));
253 #pragma warning(push)
254 #pragma warning(disable:810) /* conversion may lose significant bits */
260 #endif /* __INTEL_COMPILER && __unix__ */