|
1 | 1 |
|
2 |
| -/* Copyright (C) 2010-2012 by Daniel Stenberg |
| 2 | +/* Copyright (C) 2010-2013 by Daniel Stenberg |
3 | 3 | *
|
4 | 4 | * Permission to use, copy, modify, and distribute this
|
5 | 5 | * software and its documentation for any purpose and without
|
|
21 | 21 | # include <assert.h>
|
22 | 22 | #endif
|
23 | 23 |
|
| 24 | +#ifdef HAVE_LIMITS_H |
| 25 | +#include <limits.h> |
| 26 | +#endif |
| 27 | + |
24 | 28 | #if defined(__INTEL_COMPILER) && defined(__unix__)
|
25 | 29 |
|
26 | 30 | #ifdef HAVE_NETINET_IN_H
|
|
36 | 40 |
|
37 | 41 | #include "ares_nowarn.h"
|
38 | 42 |
|
39 |
| -#define CARES_MASK_USHORT (~(unsigned short) 0) |
40 |
| -#define CARES_MASK_UINT (~(unsigned int) 0) |
41 |
| -#define CARES_MASK_ULONG (~(unsigned long) 0) |
| 43 | +#if (SIZEOF_SHORT == 2) |
| 44 | +# define CARES_MASK_SSHORT 0x7FFF |
| 45 | +# define CARES_MASK_USHORT 0xFFFF |
| 46 | +#elif (SIZEOF_SHORT == 4) |
| 47 | +# define CARES_MASK_SSHORT 0x7FFFFFFF |
| 48 | +# define CARES_MASK_USHORT 0xFFFFFFFF |
| 49 | +#elif (SIZEOF_SHORT == 8) |
| 50 | +# define CARES_MASK_SSHORT 0x7FFFFFFFFFFFFFFF |
| 51 | +# define CARES_MASK_USHORT 0xFFFFFFFFFFFFFFFF |
| 52 | +#else |
| 53 | +# error "SIZEOF_SHORT not defined" |
| 54 | +#endif |
42 | 55 |
|
43 |
| -#define CARES_MASK_SSHORT (CARES_MASK_USHORT >> 1) |
44 |
| -#define CARES_MASK_SINT (CARES_MASK_UINT >> 1) |
45 |
| -#define CARES_MASK_SLONG (CARES_MASK_ULONG >> 1) |
| 56 | +#if (SIZEOF_INT == 2) |
| 57 | +# define CARES_MASK_SINT 0x7FFF |
| 58 | +# define CARES_MASK_UINT 0xFFFF |
| 59 | +#elif (SIZEOF_INT == 4) |
| 60 | +# define CARES_MASK_SINT 0x7FFFFFFF |
| 61 | +# define CARES_MASK_UINT 0xFFFFFFFF |
| 62 | +#elif (SIZEOF_INT == 8) |
| 63 | +# define CARES_MASK_SINT 0x7FFFFFFFFFFFFFFF |
| 64 | +# define CARES_MASK_UINT 0xFFFFFFFFFFFFFFFF |
| 65 | +#elif (SIZEOF_INT == 16) |
| 66 | +# define CARES_MASK_SINT 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
| 67 | +# define CARES_MASK_UINT 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
| 68 | +#else |
| 69 | +# error "SIZEOF_INT not defined" |
| 70 | +#endif |
| 71 | + |
| 72 | +#ifndef HAVE_LIMITS_H |
| 73 | +/* systems without <limits.h> we guess have 32 bit longs */ |
| 74 | +#define CARES_MASK_SLONG 0x7FFFFFFFL |
| 75 | +#define CARES_MASK_ULONG 0xFFFFFFFFUL |
| 76 | +#else |
| 77 | +#define CARES_MASK_ULONG ULONG_MAX |
| 78 | +#define CARES_MASK_SLONG LONG_MAX |
| 79 | +#endif |
46 | 80 |
|
47 | 81 | /*
|
48 | 82 | ** unsigned size_t to signed long
|
|
0 commit comments