Added Text2PDF, a tool which converts text files
[AROS-Contrib.git] / regina / regina64.h
blob4108dbf207b8b36ade87124fb8f7ec28a4cdc18a
1 /*
2 * Try and get a 64bit datatype...
3 */
4 #ifndef rx_64u
5 # if defined(WIN32)
6 # define rx_64 signed __int64
7 # define RX_64MAX _I64_MAX
8 # define rx_64u unsigned __int64
9 # define RX_64UMAX _UI64_MAX
10 # ifdef __MINGW32__
11 # define rx_mk64u(num) (rx_64u) num##ULL
12 # else
13 # define rx_mk64u(num) (rx_64u) num##ui64
14 # endif
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)
29 # define rx_64 signed
30 # define rx_64u unsigned
31 # define rx_mk64u(num) (rx_64u) num##u
32 # ifdef INT64_MAX
33 # define RX_64MAX INT64_MAX
34 # endif
35 # ifdef UINT64_MAX
36 # define RX_64UMAX UINT64_MAX
37 # endif
38 # elif defined(WORD_BIT) && (WORD_BIT >= 64)
39 # define rx_64 signed
40 # define rx_64u unsigned
41 # define rx_mk64u(num) (rx_64u) num##u
42 # ifdef INT64_MAX
43 # define RX_64MAX INT64_MAX
44 # endif
45 # ifdef UINT64_MAX
46 # define RX_64UMAX UINT64_MAX
47 # endif
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
52 # ifdef INT64_MAX
53 # define RX_64MAX INT64_MAX
54 # endif
55 # ifdef UINT64_MAX
56 # define RX_64UMAX UINT64_MAX
57 # endif
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
70 # else
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
76 # endif
77 #endif