summaryrefslogtreecommitdiff
path: root/contrib/pgcrypto/imath.h
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2006-07-15 15:27:14 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2006-07-15 15:27:14 +0000
commit89e2a955894168265e73b1be29da95debefdf169 (patch)
tree0e487cf70b031682f0d4fd637c472d49909c0d09 /contrib/pgcrypto/imath.h
parent9b556322c580cf4037f33f1150c02794e0aa15cd (diff)
downloadpostgresql-89e2a955894168265e73b1be29da95debefdf169.tar.gz
Fix some pgcrypto portability issues, per Marko Kreen.
Diffstat (limited to 'contrib/pgcrypto/imath.h')
-rw-r--r--contrib/pgcrypto/imath.h29
1 files changed, 9 insertions, 20 deletions
diff --git a/contrib/pgcrypto/imath.h b/contrib/pgcrypto/imath.h
index 150c9e4047..c2ec7fcb73 100644
--- a/contrib/pgcrypto/imath.h
+++ b/contrib/pgcrypto/imath.h
@@ -2,7 +2,7 @@
Name: imath.h
Purpose: Arbitrary precision integer arithmetic routines.
Author: M. J. Fromberger <http://www.dartmouth.edu/~sting/>
- Info: $Id: imath.h,v 1.1 2006/07/13 04:15:24 neilc Exp $
+ Info: $Id: imath.h,v 1.2 2006/07/15 15:27:14 tgl Exp $
Copyright (C) 2002 Michael J. Fromberger, All Rights Reserved.
@@ -39,11 +39,15 @@ typedef unsigned char mp_sign;
typedef unsigned int mp_size;
typedef int mp_result;
#ifdef USE_LONG_LONG
-typedef unsigned int mp_digit;
-typedef unsigned long long mp_word;
+typedef uint32 mp_digit;
+typedef uint64 mp_word;
+#define MP_DIGIT_MAX 0xFFFFFFFFULL
+#define MP_WORD_MAX 0xFFFFFFFFFFFFFFFFULL
#else
-typedef unsigned short mp_digit;
-typedef unsigned int mp_word;
+typedef uint16 mp_digit;
+typedef uint32 mp_word;
+#define MP_DIGIT_MAX 0xFFFFUL
+#define MP_WORD_MAX 0xFFFFFFFFUL
#endif
typedef struct mpz {
@@ -70,21 +74,6 @@ extern const mp_result MP_BADARG;
#define MP_DIGIT_BIT (sizeof(mp_digit) * CHAR_BIT)
#define MP_WORD_BIT (sizeof(mp_word) * CHAR_BIT)
-#ifdef USE_LONG_LONG
-# ifndef ULONG_LONG_MAX
-# ifdef ULLONG_MAX
-# define ULONG_LONG_MAX ULLONG_MAX
-# else
-# error "Maximum value of unsigned long long not defined!"
-# endif
-# endif
-# define MP_DIGIT_MAX (ULONG_MAX * 1ULL)
-# define MP_WORD_MAX ULONG_LONG_MAX
-#else
-# define MP_DIGIT_MAX (USHRT_MAX * 1UL)
-# define MP_WORD_MAX (UINT_MAX * 1UL)
-#endif
-
#define MP_MIN_RADIX 2
#define MP_MAX_RADIX 36