2 * Try and get a 64bit datatype...
6 # define rx_64 signed __int64
7 # define RX_64MAX _I64_MAX
8 # define rx_64u unsigned __int64
9 # define RX_64UMAX _UI64_MAX
11 # define rx_mk64u(num) (rx_64u) num##ULL
13 # define rx_mk64u(num) (rx_64u) num##ui64
15 # elif defined(__WATCOMC__) && !defined(__QNX__)
16 /* You need OpenWatcom 1.1 on Win32 or OS/2 */
17 # define rx_64 signed __int64
18 # define rx_64u unsigned __int64
19 # define rx_mk64u(num) (rx_64u) num##ui64
20 # define RX_64MAX LONGLONG_MAX
21 # define RX_64UMAX ULONGLONG_MAX
22 # elif defined(HAVE_STDINT_H)
23 # define rx_64 int64_t
24 # define rx_64u uint64_t
25 # define rx_mk64u(num) (rx_64u) num##u
26 # define RX_64MAX INT64_MAX
27 # define RX_64UMAX UINT64_MAX
28 # elif defined(__WORDSIZE) && (__WORDSIZE >= 64)
30 # define rx_64u unsigned
31 # define rx_mk64u(num) (rx_64u) num##u
33 # define RX_64MAX INT64_MAX
36 # define RX_64UMAX UINT64_MAX
38 # elif defined(WORD_BIT) && (WORD_BIT >= 64)
40 # define rx_64u unsigned
41 # define rx_mk64u(num) (rx_64u) num##u
43 # define RX_64MAX INT64_MAX
46 # define RX_64UMAX UINT64_MAX
48 # elif defined(LONG_BIT) && (LONG_BIT >= 64)
49 # define rx_64 signed long
50 # define rx_64u unsigned long
51 # define rx_mk64u(num) (rx_64u) num##ul
53 # define RX_64MAX INT64_MAX
56 # define RX_64UMAX UINT64_MAX
58 # elif defined(ULLONG_MAX) && (ULLONG_MAX != ULONG_MAX)
59 # define rx_64 signed long long
60 # define rx_64u unsigned long long
61 # define rx_mk64u(num) (rx_64u) num##ull
62 # define RX_64MAX LLONG_MAX
63 # define RX_64UMAX ULLONG_MAX
64 # elif defined(ULONG_LONG_MAX) && (ULONG_LONG_MAX != ULONG_MAX)
65 # define rx_64 signed long long
66 # define rx_64u unsigned long long
67 # define rx_mk64u(num) (rx_64u) num##ull
68 # define RX_64MAX LONG_LONG_MAX
69 # define RX_64UMAX ULONG_LONG_MAX
71 # define rx_64 signed long
72 # define rx_64u unsigned long
73 # define rx_mk64u(num) (rx_64u) num##ul
74 # define RX_64MAX LONG_MAX
75 # define RX_64UMAX ULONG_MAX