39 |
|
|
40 |
/* In the beginning was the Word: |
/* In the beginning was the Word: |
41 |
*/ |
*/ |
42 |
#if SCM_SIZEOF_INTPTR_T != 0 && defined(INTPTR_MAX) && defined(INTPTR_MIN) |
/* On Solaris 7 and 8, /usr/include/sys/int_limits.h defines |
43 |
|
INTPTR_MAX and UINTPTR_MAX to empty, INTPTR_MIN is not defined. |
44 |
|
To avoid uintptr_t and intptr_t in this case we require |
45 |
|
UINTPTR_MAX-0 != 0 etc. */ |
46 |
|
#if SCM_SIZEOF_INTPTR_T != 0 && defined(INTPTR_MAX) && defined(INTPTR_MIN) \ |
47 |
|
&& INTPTR_MAX-0 != 0 && INTPTR_MIN-0 != 0 \ |
48 |
|
&& SCM_SIZEOF_UINTPTR_T != 0 && defined(UINTPTR_MAX) && UINTPTR_MAX-0 != 0 |
49 |
|
|
50 |
typedef intptr_t scm_t_signed_bits; |
typedef intptr_t scm_t_signed_bits; |
51 |
#define SCM_T_SIGNED_BITS_MAX INTPTR_MAX |
#define SCM_T_SIGNED_BITS_MAX INTPTR_MAX |
52 |
#define SCM_T_SIGNED_BITS_MIN INTPTR_MIN |
#define SCM_T_SIGNED_BITS_MIN INTPTR_MIN |
|
#else |
|
|
typedef signed long scm_t_signed_bits; |
|
|
#define SCM_T_SIGNED_BITS_MAX LONG_MAX |
|
|
#define SCM_T_SIGNED_BITS_MIN LONG_MIN |
|
|
#endif |
|
|
|
|
|
#if SCM_SIZEOF_UINTPTR_T != 0 && defined(UINTPTR_MAX) |
|
53 |
typedef uintptr_t scm_t_bits; |
typedef uintptr_t scm_t_bits; |
54 |
#define SIZEOF_SCM_T_BITS SCM_SIZEOF_UINTPTR_T |
#define SIZEOF_SCM_T_BITS SCM_SIZEOF_UINTPTR_T |
55 |
#define SCM_T_BITS_MAX UINTPTR_MAX |
#define SCM_T_BITS_MAX UINTPTR_MAX |
56 |
|
|
57 |
#else |
#else |
58 |
|
|
59 |
|
typedef signed long scm_t_signed_bits; |
60 |
|
#define SCM_T_SIGNED_BITS_MAX LONG_MAX |
61 |
|
#define SCM_T_SIGNED_BITS_MIN LONG_MIN |
62 |
typedef unsigned long scm_t_bits; |
typedef unsigned long scm_t_bits; |
63 |
#define SIZEOF_SCM_T_BITS SCM_SIZEOF_UNSIGNED_LONG |
#define SIZEOF_SCM_T_BITS SCM_SIZEOF_UNSIGNED_LONG |
64 |
#define SCM_T_BITS_MAX ULONG_MAX |
#define SCM_T_BITS_MAX ULONG_MAX |
65 |
|
|
66 |
#endif |
#endif |
67 |
|
|
68 |
/* But as external interface, we use SCM, which may, according to the desired |
/* But as external interface, we use SCM, which may, according to the desired |